Revizija: 1.2
Datum: 05.10.2003. |
Ovaj
projekat je objavljen
u 55. broju časopisa InfoElektronika |
|
Ovaj mali uređaj namenjen je da se koristi kao univerzalni tajmer za različite potrebe. Prvobitna namena mu je bila da isključuje uređaje nakon keog vremena (sleep - timer)
Fizički izgled uređaja |
Verovatno još od postanka čoveka on je naučio da ceni vreme. Kasnije neko je izmislio uzrečicu: "Vreme je novac!". Tako je i danas, veoma važan detalj u životu običnog čoveka je vreme, njegovo merenje, kontrola, i (zlo)upotreba. Ovaj uređaj ima dve dodirne tačke sa vremenom: prva, meri vreme koje je proteklo od START-a, i na zadato isključuje neki uređaj i druga, toliko je jednostavan da vam neće oduzeti puno vremena za izradu. :-) |
Ovaj tajmer je zasnovan na nekoliko glavnih osobina:
- selekcija vremenskog intervala se vrši samo jednim tasterom
- postoje unapred zadatih (pri pisanju programa) 7 vremenskih intervala
- indikacija selektovanog intervala realizovana je sa tri LED diode
- indikacija ON – OFF stanja sa jednom LED diodom (svetli konstantno ili blinka)
- širok spektar vremenskih intervala, koje podešavamo pri pisanju softvera (µs->dana)
- jednostavnost, i niska cena
Princip rada:
Osnovni koncept jednog tajmera izgleda otprilike ovako: osnovni oscilator (npr. 1sek) se prosledjuje brojaču čiji su izlazi povezani na komparator zadate vrednosti. Kada se poklope zadata i odbrojana vrednost, logika isključuje/uključuje kontrolisani uređaj. Manje ili više ovako izgleda i tajmer koji smo mi relizovali, sa mikrokontrolerom, s razlikom da se ceo postupak odvija unutar mikrokontrolera i to u softveru. Interni clock generator mikrokontrolera je podešen na 4Mhz, zatim se deli sa 4 pa zatim još sa 256, i dobija se upotrebljiva vremenska baza od 51200µS. Zatim se daljim množenjem sa odgovarajućim celobrojnim konstantama dobijaju vremena koja želimo. (min: 51.2 µs, max: xx dana). Ovde je bitno da uočimo da postoji greška. Recimo ako želimo vremenski interval od 2 minuta, konstanta je 2344, a 2344x51.2µS = 2.000213 minuta. Autor je ovu grešku zanemario sobzirom da je prvobitna namena ovog tajmera bila za kućnu upotrebu i u eksperimentalne svrhe. Pored ove očigledne greške, postoji i greška samog internog RC oscilatora. Pogodnijim pisanjem softvera ove greške se mogu dodatno minimizirati, ukoliko za to postoji potreba.
Opis uređaja:
Uredjaj se napaja sa 10-12V DC ili AC naponom. Na izlazu se nalazi rele koji galvanski odvaja potrošač, pa u zavisnosti od upotrebljenog releja on može biti i većih snaga i do par kW!.
Slika 1 - Električna šema veza |
|
Osnovnu kontrolu vršimo pomoću tastera B1 i to na sledeći način. Kada je tajmer u OFF režimu Info_LED V4 blinka približno svake sekunde. Sada kratkim pritiskom na taster B1 potrošač se uključuje bez vremenskog ograničenja. Info_LED V4 sada neprekidno svetli. Sve ostale LED diode ne svetle. Svakim sledećim kratkim pritiskom na taster B1 uključujemo vremeske intervale od najdužeg do najkraćeg, i tako ukrug kao što je ilustrovano na slici 2.
|
Slika 2 – Slikovit prikaz modova rada |
Kada je potrošač aktivan, odnosno tajmer je u ON režimu, dužim držanjem tastera B1 gasimo potrošač i tajmer prelazi u OFF režim.
Napomena:
Ukoliko dođe do nestanka struje, pri dolasku napona napajanja uređaj se postavlja u OFF stanje.
Moguća poboljšanja:
- stabilniji i precizniji rad upotrebom kvarc kristala kao oscilator
- modifikacija izvornog koda programa, kako bi tajmer radio preciznije
- upotreba kapacitivnog napajanja, kako bi se smanjio gabarit, izostavljanjem transformatora u napajanju
- dodatne funkcije (koliko je to moguće ograničenim brojem pinova)
Autor već mesecima koristi ovakav tajmer za funkciju Sleep tajmera, kako bi mu se audio oprema gasila automatski sa zakašnjenjem, nakon izlaska van kuće ili prilikom spavanja.
Upotrebna vrednost ovakvog tajmera, može biti višestruka: kao što sam već napomenuo Sleep tajmer, zatim jedna interesantna ideja koja potiče sa grejalice jednog hrvatskog proizvođača, na kojoj se nalazio klasični satni mehanizam i mogao se podesiti na maksimalnih 2 sata. Ukoliko smo skloni zaboravljanju, ovo je odlično rešenje. Podesimo grejalicu da radi neko vreme i ako se po isteku tog vremena ona ponovo ne uključi (naše prisustvo je obavezno) ona prestaje sa radom. Ovim se štedi struja, a sprečava se u velikoj meri i potencijalno izbijanje požara, zaboravljenom grejalicom!
Štampane pločice:
Slika 4 – Izgled štampane pločice
Ovde možete skinuti zip arhivu sa nacrtima stampane pločice i šeme veza ovog projekta |
|
Slika 5 – Izgled štampane pločice ver 2.0
Ovde možete skinuti zip arhivu sa nacrtima štampane pločice koju je poslao Nikola (pločica nije data u razmeri 1:1 pa je potrebno obratiti pažnju pri štampanju)
Napomena:
pločica je u potpunosti kompatibilna sa šemom veza sa Slike 1 i pretrpela je smao kozmetičke |
|
Firmware:
U ovoj verziji firmwera, uprogramirani su sledeći intervali: 2, 10, 30, 45, 60, 90 i 120 minuta.
Iskompajliranu hex datoteku potrebnu za programiranje mikrokontrolera možete ovde skinuti, a za dodatnu prepravku firmwera (drugi vremenski intervali) možete se javiti autoru na: npejcic@epraktikum.iz.rs
|
|
Ovde mozete preuzeti zip arhivu sa HEX fajlom (PIC12F629). v1.3
sa poboljšanim firmwerom za PIC12F629 mikrokontroler. Sada radi
preciznije, zahvaljujući kalibracionim vrednostima koje se fabrički upisuju u MCU. |
|
|
Ovde
mozete preuzeti zip arhive sa izvornim kdovoma
za ovaj projekat (PIC12F629)
na C i PASCAL peogramskom jezikur.
NAPOMENA: U ovim verzijama
nije implementirana kalibracija internog
RC oscilatora, pa su moguća delimična odstupanja
od yadatih vremena.
Kompajlere možete pronaći na adresi www.mikroelektronika.co.yu. |
Ukoliko ima nekih nejasnoca javite se na: npejcic@epraktikum.iz.rs