Tiny Clock

Jedná se o snad nejjednodušší způsob jek zapojit něco co ukazuje kolik je hodin, de facto se v konstrukci vyskytuje jen displej a procesor.

Základní technická data:

Schéma zde:

Řízení hodin obstarává procesor ATtiny26L, toto umožňuje relativní jednoduchost celé konstrukce hodin. Čas se zobrazuje na čtyřmístném displeji ve formátu HH.MM. Displej je řízen jako tzv. dynamický displej - v jednom okamžiku je aktivní pouze jeden sedmisegment, celkové zobrazení je dosaženo rychlým střídáním jednotlivých sedmisegmentů a optickou setrvačností lidského oka. Takto sestavený displej má propojené katody segmentů jednotlivých sedmisegmentů a řízení, který sedmisegment bude svítit je zajištěno pomocí spínaní společných anod. Přímo pro takovéto aplikace je velmi vhodný displej typu HD-M512RD ( zelený ) nebo HD-M514RD ( červený ), které mají již interně propojeny všechny katody dohromady. Doba svitu jednoho segmentu je cca 5ms.

Procesor pracuje s taktovacím kmitočtem 4,0000 MHz ( T = 250ns ). K počítání času je využit Timer/Counter1 v režimu Clear Timer on Compare Match ( dá se označit jako Autoreload ), C/T1 pracuje s před děličem 1/16 a čítá do hodnoty 249, což dává celkový dělící poměr 1/4000 takže hodiny počítají s periodou 1ms. Postupně se inkrementují čítače milisekund, sekund, minut a hodin.

Aby bylo možno nastavit správný čas mají hodiny celkem 4 mikrospínače, které sdílejí stejné piny procesoru jako anody sedmisegmentů displeje. Jelikož je v čase vždy aktivní jen jeden sedmisegment lze ostatní tři piny použit jako vstupy a načítat stav mikrospínačů. Při zapojení mikrospínače přímo na 0V ( při použití interního pull-up rezistoru ) by docházelo při jeho držení k zhasnutí příslušného sedmisegmentu ( a také ke zkratu výstupního pinu ), avšak doplněním o kapacity C6 - C9 100nF lze mikrospínač držet trvale aniž by to mělo jakýkoli vliv na svit sedmisegmentu. Na pinech PB[0...3], které řídí anody sedmisegmentů se opakují tyto tři stavy:

  • · výstup log.1 - příslušný sedmisegment je aktivní a zobrazuje nějakou číslici
  • · výstup log.0 - příslušný sedmisegment je zhasnut, pokud je mikrospínač sepnut dochází k vybití ( 0V ) kapacity 100nF ( v předchozím stavu byl nabit výstupem v log.1 na 5V )
  • · vstup - čte se stav pinu, pokud je mikrospínač sepnut je na pinu log.0 - kondenzátor je vybit předchozím výstupem ve stavu log.0, takže mikrospínač lze trvale držet a při každém čtení se načte log.0, pokud je mikrospínač rozpojen interní pull-up zajistí načtení log.1

Při současné verzi firmware ( ihex ) se pro nastavení hodin používá mikrospínač S2 a pro nastavení minut S3, S1 a S4 nemají funkci a byly přidány pro možný budoucí upgrade firmware.

Napájení hodin zajišťuje nestabilizovaný síťový napáječ ( transformátor + můstek + kondenzátor ), který má výstupní napětí vyšší než 8V. Toto napětí stabilizuje 78L05 ( TO92 ). Při výpadku sítě 230VAC, lze chod hodin zálohovat pomocí 2 nebo 3 článků ( 3V / 4,5V ), diody D2 a D3 tvoří jednoduchou logiku, pro výběr napájecího zdroje.

Hodiny jsem si sestavil poté co se mi odebralo do křemíkového nebe několik procesorů ATmega8 v řídicím systému, který nejen vytápěl terária, ale v rohu displeje zobrazoval i čas a kupovat v obchodě hodiny si přeci nebudu :D

Fotky:

07.06.2007
Nový firmware ( ihex ), v1.1, přidány stopky na tlačítku S4. Čítá se do času 9.59.9 - tedy minuty.sekundy.desetiny sekund

Aktualizováno 07.06.2007