Fórum témák
» Több friss téma |
Cikkek » Wand óra - rezgőnyelves óra
A kontroller programja a kapcsolási rajzon szereplő kiegészítéseken kívül is tartalmaz bővítéseket. Ébresztés: 40 időpontra (óra, perc) lehet megadni ébresztést, az időpont a hét napját is kezeli, lehetőség van arra, hogy beállítsuk, mely napokon legyen aktív az ébresztés. Az időpont bekövetkezésekor a kar mozgása indítható, leállítható, vagy beállítható számú csipogás adható, illetve egy relé kimenet bekapcsolható beállítható időre - az idő leteltével a relé kimenet automatikusan kikapcsol. 0 perces relé bekapcsolási idő azonnali kikapcsolással egyenértékű. Így például az órával megoldható, hogy hétköznap reggel 6:30 -kor csipogjon 3-at, indítsa el a kijelzést és kapcsolja be a kávéfőzőt 5 percre. Szombaton mindezt csak 8:00 -kor tegye és ne főzzön kávét, vasárnap hagyjon békén. Az beállítás rendelkezik egy engedélyező bittel is, mellyel az ébresztés tiltható arra az esetre, ha pl. húsvét hétfőn nem kell ébreszteni, kávét főzni, de a beállítást nem szeretnénk törölni, hiszen kedden kelleni fog. A beállított időpontok a PC -s kapcsolat segítségével állományba menthetők, illetve onnan visszaállíthatók. Az ébresztés kezelése és a DCF szinkronizálás összehangolása sok fejfájást okozott, hiszen a szinkron visszafelé is állíthatja az időt. Dátum kezelés: Az óra kezeli a szökőéveket, nem csak a 4 évenkéntieket, hanem azt is, hogy a 100 -zal osztható évek nem, de a 400 -zal oszthatók mégis szökőévek. Sajnos az éles próbát (2000 február) lekéste a fejlesztés. A hét napja: A hét napját nem kell beállítani, a PIC programja a dátumból kiszámolja. A dátumból a Julianus naptári napra (Julian Day Number) konvertál, mely egy folytonos napsorszám. A hét napja e sorszám 7-tel történő osztásának maradékaként határozható meg. A cikk írásakor (2012. május 13.) a JDN 2456061, ennek 7-tel osztott maradéka 6, azaz vasárnap van. Ha már megvan a folytonos napsorszám, akkor a hold fázisát is ki lehet számolni: a Hold teljes periódusa 29,5305889 napig tart. E művelet helyett a (256 * JDN) modulo 7560 -at számítja és a felső byte-ot veszi, azaz 29.53125 napos periódussal számol. Előbb - utóbb egy kis korrekció kell majd, de a rugó nem fogja addig kibírni. DCF77 szinkron: Talán ezzel a feladattal kínlódtam a legtöbbet. Sajnos rossz vételi körülmények voltak Janocsinál, így amikor már nálam működött rendesen, nála nem volt szinkron egyáltalán. A tapasztalataimat megírtam már a DCF-es topikokban. A Conrad -tól származó modul tápszűrése nem kielégítő, a tápot egy soros 100 Ohm-os ellenállással kapja meg, Közvetlenül a modulra csatlakoztattunk egy 33 .. 47µF tantál és egy 100nF kerámia kondenzátort. Az antennát a frankfurti irányra merőlegesen, vízszintesen elhelyezve már volt vétel. A programba egy szűrés van beépítve: a DCF jelből 200 us-onként mintát véve csökkent vagy növel egy 128 -ról indított számlálót. 100 minta után kiértékeli a számlálót (a 7. bitjét használja fel) és újra 128 -ra tölti fel. A 20ms "integrálási" idő a hálózati zavarokat is jelenősen csillapítja. A két évvel később vásárolt modulon már megtalálható a tápszűrő elektrolit kondenzátor. Kijelzés vezérlése: A propeller órában a kör 120 részre van osztva. A felbontás növelésének egyetlen akadálya van, az ott alkalmazott kontroller (16F628A) memória kapacitása. Ebben az órában nem látjuk a teljes kört, csak egy részét. Ha 10 karaktert szeretnénk kijelezni a teljes pályán, elegendő 10 * 6 byte a mintázat tárolására. Ehhez meg kellett oldani, hogy ha a kijelzés kimegy ebből a tartományból, a LED-eket kapcsoljuk ki. Kipróbáltuk a 144 és a 168 -as felosztást, a nagyobb felosztás már olvashatatlan kijelzést eredményezett. A 168 -as felosztás egy periódus alatt 28 karakter megjelenítését teszi lehetővé, de csak 10-et használunk ki, a többi ideje alatt történik a visszatérés és a két fordulás. A kar rezgése lassabb, mint a ventilátor forgása, ezért a kép halványabb és jobban vibrál. A programban az egyirányú kijelzés mellett mód van arra is, hogy a kar visszafelé mozgása alatt is kijelezzük (természetesen tükrözve) az információt, megduplázva a kijelzési frekvenciát. Csak nagyon stabil kivitelű mechanikán alkalmazható. A képeken 7 "digitális" LED-es karokat láthatunk, de a program 8 LED vezérlésére van felkészítve, a magyar ékezetes nagybetűk is kijelezhetők. A kar és a fényerő vezérlése: A két funkciót két hasonló áramkör valósítja meg. A kontroller két PWM kimenete vezérli a rezgető és a LED-ek feszültségét. A kar leállítása a tápfeszültségének 0 V-ra állításával történik. A rezgető által felvett áramot egy ellenállással és egy differenciál erősítővel feszültséggé alakítjuk és egy aluláteresztő szűrőn keresztül vezettük a kontroller A/D bemenetére. A külső fényerőt egy fototranzisztorral vagy fotoellenállásal felépített osztó méri. Lehetőség van időzített, vagy a fénymérésen alapuló fényerő állításra, illetve a fix, nappali vagy éjszakai fényerő használatára. Mivel rendelkezésünkre áll a lengésenkénti szinkronjel és egy időmérő, a program a rezgés frekvenciáját is méri. A rugó kímélése érdekében egy beállítható idő elteltével a kar automatikusan kikapcsol. Az időzítés minden aktív állapotban vett infra parancsra újraindul. Infra távirányítás: Philips RC5 formátumú csomagokkal lehet távirányítóról vezérelni az órát. A vett, sikeresen dekódolt táviratból a készülékcímet és a parancskódot a soros kapcsolaton leküldi akkor is, ha a csomag nem az órának szólt. Ez a funkció a távirányítók kódolásának kiderítése használható fel. A távirat az AaaCcc formában tartalmazza a készülékcímet (aa) és a parancskódot (cc) hexadecimális számrendszerben, a parancskód 7. bitje az un. toggle bit. Hangjelzés: Az ébresztési lehetőségen kívül egész órakor is adható egy, vagy a 12 órás számításnak megfelelő számú csipogás. A zavartalan éjszakai pihenést szem előtt tartva egy csendes periódus beállítható. I2C bővítő: A csatlakozó segítségével további 5V-os eszközöket is kezelhet az óra. A program egy portbővítővel négy nyomógombot és négy állapot kijelző LED-et kezel. A nyomógombokkal a kart indíthatjuk - megállíthatjuk, a hangjelzést kapcsolhatjuk ki, a relé kimenetet kapcsolhatjuk be és ki. A LED-ek segítségével a relé kimenet állapotát, az RTC -ből kiolvasott idő érvénytelenségét, a szűrt DCF adatot és a soros vonali aktivitást láthatjuk. Ha az áramkört 16F887-tel építjük meg, akkor a portbővítő szerepét a D port veszi át és az E port 0. bitjével egy MPXA6115 nyomásérzékelővel a légnyomás mérésére is lehetőség nyílik. Még marad két szabad láb... A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |