Šis laikmatis buvo sukurtas UV spindulių eksponavimo prietaisui. Žinoma, laikmatis gali būti naudojamas ir kitiems tikslams.
Laikmatį sukūriau pats panaudodamas Atmega8 mikrovaldiklį. Įgyvendinau tokias sugalvotas funkcijas:
- Laiko skaičiavimas atgal
- Laikas skaičiuojamas 0,1 (su maždaug 0,00003 sekundės paklaida) sekundės tikslumu nuo 1 iki 6000 sekundžių
- Lempos valdomos simistoriaus pagalba
- 4 skaitmenų 7 segmentų skaičių indikacija, garsinė ir papildomo dvispalvio LED indikacija
- Laiko intervalo nustatymas
- Paskutinio nustatyto laiko atmintis po maitinimo išjungimo
- Valdymas mygtukais
- Proceso pabaigos vizualinė ir garsinė indikacija su papildomu periodiniu priminimu
Schema
Išėjime “OUT” palaikomas aukštas lygis, kada laikas skaičiuojamas atgal. Prie šio išėjimo jungiau apkrovos valdymo schemą. Apkrovos valdymui panaudojau optosimistoriaus su nulio kirtimu (angl. zero crossing) ir simistoriaus junginį. Schemos principas pateiktas čia (pirmoji schema). Šiai schemutei padavus aukštą 5V lygį yra įjungiama tinklo apkrova.
Komponentai
Schemoje galima naudoti Atmega8, Atmega8A ar Atmega8L mikrovaldiklį.
Schemoje naudojamas buzeris turi būti toks, kuriam pakanka paduoti maitinimą ir jis zyzia.
Šviesos diodas dvispalvis, turintis du kontaktus (priešingomis kryptimis sujungti šviesos diodai viename korpuse).
Indikatorių naudojau bendro anodo (angl. common anode), 4 skaitmenų. Schemoje galima naudoti dviejų tipų indikatorius: ELF-512 (SURWA/GWA ar kiti pagal spalvą)) arba CA56-21 (GWA ar kiti pagal spalvą). Šie indikatoriai skiriasi tik taško simbolių pozicija ir prijungimu, o matmenys, kontaktų išdėstymas yra vienodi. Abiejų tipų indikatorius galima naudoti ir tam esu paruošęs skirtingas mikrovaldiklio programas.
Galima panaudoti atskirus bendro anodo indikatorius kiekvienam skaitmeniui, tik tada reikės kažkiek prisitaikyti schemą ir PCB
PCB
Nubraižiau vienpusę plokštę su keletu perėjimų.
Detalių išdėstymas pateiktas žemiau.
Mikrovaldiklio programa
Fuses reikia nustatyti taip, kad veiktų nuo išorinio 8 MHz kvarco. Žinoma, galima nustatyti, kad veiktų ir nuo vidinio 8 MHz RC generatoriaus. Tokiu atveju kvarco nereikės, tik veiks mažesniu tikslumu. Pateikiu fuses nustatymus abiem atvejais:
- naudojant išorinį 8 MHz kvarcą: Low: 0xFF, High: 0xD9
- naudojant vidinį 8 MHz RC generatorių: Low: 0xE4, High: 0xD9
Pateikiu sukompiliuotas programas abiejų indikatorių tipams:
Laikmačio panaudojimas
Laikmačio panaudojimas ir veikimas parodytas šiuose vaizdo įrašuose:
Lankytojo P. Sadūno variantas
Svetainės lankytojas P. Sadūnas nubraižė šio laikmačio variantą, naudodamas daugiau SMD komponentų, bei išskaidydamas viską į dvi atskiras plokštes (elektronikos ir indikatoriaus), kurios tarpusavyje sujungtos kabeliu.
Lankytojo P. Sadūno varianto Eagle failai.
Ar gali buti, kad su Proteus programa jam neveikia indikatorius?
Kiek žinau, proteus neblogai simuliuoja įvairių mikrovaldiklių darbą.
Manau, kad teisingai nubraižius schemą, užkrovus hex, bei teisingai sukonfigūravus fuse viskas turėtų veikti.
labas
mane sudomino pats sio laikmacio kodas gal gali juo pasidalinti
sumokeciau uz pati koda
atmega8l c code whats ? pcb editions rf import ok
Kokio čia indikatoriaus (7 segments 4 digit display) reikia su bendru katodu ar su bendru anodu?
Apie indikatoriaus tipą jau esu parašęs.
Priklausomai nuo indikatoriaus tipo, reikia naudoti atitinkamą programą mikrovaldikliui.
ACIU labai
O kam reikalingi tranzistoriai T1-T4? Ar mikrovaldiklis nepatrauks visų segmento diodų?
Deklaruojama Atmega8 I/O išėjimo srovė 40 mA. Vieno simbolio visi įjungti segmentai ima daug daugiau srovės. Taip pat dėl naudojamos dinaminės indikacijos segmentų srovė yra parinkta didesnė, norint turėti pakankamą ryškumą.
Žinoma, galima jungtį bendrus anodus be papildomų tranzistorių, bet tada ryškumas bus mažesnis.
Sveikas,
Esu labai dėkingas už visą išsamiai aprašytą projektą. Ši savaitgalį ant paprastos maketinės plokštės sulitavau tavo schemutę, bet kažkodėl UP ir DOWN mygtukai visiškai nereaguoja pas mane. (Bandžiau ir kita procesorių panaudoti ir trumpinti mikrovaldiklio kojas su GND per vielute, bet laikas nesikeičia). START/STOP mygtukas veikia puikiai. Gal turi minčių kas gali būti blogai? Fuse nustatymus buvau įrašęs tiek su vidiniu tiek su išoriniu generatoriumi, bet jokios sekmės.
Pagarbiai,
Robertas
Ai va, išsiaiškinau, pasirodo reikėjo abudu mygtukus vienu metu nuspausti, kad įeiti į konfigūraciją, dabar viskas veikia 🙂
Teisingai, į konfigūravimo režimą įeinama esant pradinėje būsenoje ir vienu metu paspaudus abu mygtukus +-.