Tartalomjegyzék:

60 Hz -es Arduino óra: 8 lépés
60 Hz -es Arduino óra: 8 lépés

Videó: 60 Hz -es Arduino óra: 8 lépés

Videó: 60 Hz -es Arduino óra: 8 lépés
Videó: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 2024, November
Anonim
60 Hz -es Arduino óra
60 Hz -es Arduino óra

Ezt az Arduino -alapú digitális órát a 60 Hz -es tápvezeték szinkronizálja. Egyszerű és olcsó közös anód 4 számjegyű 7 szegmenses kijelzővel rendelkezik, amely órákat és perceket mutat. Keresztezési érzékelőt használ annak érzékelésére, hogy a bejövő 60 Hz -es szinuszhullám keresztezi -e a nulla feszültségpontot, és 60 Hz -es négyzethullámot vezet le.

Rövid időn keresztül a tápvezetékről érkező szinuszhullám frekvenciája nagyon kismértékben változhat a terhelés hatására, de hosszú időn keresztül nagyon pontosan átlagol 60 Hz -ig. Ezt kihasználva előhívhatjuk az időzítési forrást az óra szinkronizálásához.

1. lépés: 1. lépés: Sémák

1. lépés: Vázlatok
1. lépés: Vázlatok

Az áramkörnek két változata van, attól függően, hogy egy középső csappal ellátott transzformátort vagy anélkül szeretne használni, mindkét esetben az áramkör működése majdnem azonos. Ehhez az építéshez egy fali adaptert használtam (nincs középső csap), amely 12V AC -t ad ki. Ezt a kialakítást (Digitális óra1 áramkör diagram) fogom használni az áramkör leírásához. Ne feledje, hogy fontos, hogy olyan fali adaptert használjon, amely 12 V, nem 12 V egyenáramot ad ki, hogy az időzítéshez bekapcsolhassuk az AC szinuszhullámot. Valószínűleg használhat olyan transzformátort is, amely 9V AC -t ad le, távolítsa el az R19 -et és működésbe hozza, de a 12V nagyon gyakran elérhető. Az áramkör így működik:

A 60 V -os 120 V -os váltóáramot a TR1 transzformátor 12 V -ra váltja. Ezt a D4 dióda táplálja és kiegyenlíti, hogy a C3 kondenzátor csak +ve feszültséget vezessen be, és hullámzással közelítse egyenletesre. A C3 feszültségét a 7805 feszültségszabályozó (U6) táplálja az R19 ellenálláson keresztül. Az R19 a C3 feszültségének csökkentésére szolgál, amelyet az én esetemben körülbelül 15VDC -on mértem. Ezt a 7805 szabályozhatja, de ezzel a bemeneti szinttel a 7805 -nek körülbelül 10 VDC -t kell esnie, és ennek következtében nagyon felmelegszik. Ha az R19 segítségével csökkenti a feszültséget körülbelül 10 V egyenáramra, megakadályozzuk az U6 túlmelegedését. Ez tehát nem hatékony teljesítményátalakítási technika, de a mi céljainknak megfelel. MEGJEGYZÉS: itt legalább 1/2W ellenállást használjon. Az áramkör körülbelül 55 ma -t vesz fel, így az R19 teljesítményvesztesége körülbelül 1/3W P = I ** 2*R vagy P = 55ma x 55ma x 120 ohms = 0,363W alapján. A következő U6 tiszta 5 V egyenáramú kimenetet bocsát ki C4 és C5 kimeneten, hogy kiszűrje a zajt az 5 V -os tápvezetéken. Ez az 5 V DC táplálja az összes IC -t a táblán. A TR1 -ből mintát veszünk a szűretlen váltóáramú jelből is, és betápláljuk az RV1 potenciométerbe, amely a kereszteződés -érzékelőbe táplált szint beállítására szolgál. Az R18 és R17 feszültségmegosztót képez, hogy tovább csökkentse a bejövő váltakozó feszültséget. Ne feledje, hogy ez 12 V váltakozó áramú tápfeszültségnél jön be, és ezt 5 V alá kell csökkentenünk, hogy működjön a keresztező érzékelővel, amely csak 5VDC táplálja. Az R15 és R16 áramkorlátozást biztosít, míg a D1 és D2 az op-amp U5 túlhajtását hivatott megakadályozni. A bemutatott konfigurációban az U5 kimenete az 1. érintkezőn +5V és 0V között váltakozik minden alkalommal, amikor a bejövő szinuszhullám pozitívról negatívra változik. Ez 60 Hz -es négyzethullámot generál, amelyet az U4 mikrokontroller táplál. Az U4 -re betöltött program ezt a 60 Hz -es négyzethullámot használja, hogy percenként és óránként növelje az órát. Ennek módjáról a szoftverprogramról szóló részben és a szoftver megjegyzéseiben lesz szó. U7 a 74HC595 váltásregisztert használják, mert korlátozott számú digitális tüske van a mikroprocesszoron, így a kimenetek számának bővítésére szolgál. A mikroprocesszoron 4 digitális tűt használunk, de a 74HC595 segítségével 7 szegmenst vezérelhetünk a kijelzőn. Ez úgy valósítható meg, hogy a mikrovezérlőben tárolt, és minden megjelenítendő számjegyet jelző bitek előre meghatározott mintáit eltolja a shift regiszterbe. Az itt használt kijelző közös anód, ezért a szegmens bekapcsolásához meg kell fordítanunk a 74HC595 -ből érkező jelszintet. Amikor egy szegmenst be kell kapcsolni, a 74HC595 kimeneti tűből érkező jel +5 V lesz, de szükségünk van arra, hogy a kijelzőről táplált csap 0 V legyen, hogy bekapcsoljuk a kijelző szegmenst. Ehhez szükségünk van U2 és U3 hexa inverterekre. Sajnos egy inverter IC csak 6 inverziót képes kezelni, így kettőre van szükségünk, bár a másodiknál csak a 6 kapu egyikét használjuk. Pazarló sajnos. Megkérdezheti, hogy miért nem használ itt egy közös katód típusú kijelzőt, és nem szünteti meg az U2 és U3 -at? Nos, a válasz az, hogy lehet, csak véletlenül van egy közös anódtípusom az alkatrész -kínálatomban. Ha közös katód típusú kijelzővel rendelkezik, vagy azt szeretné használni, csak szüntesse meg az U2 és U3 csatlakozásokat, és kösse újra a Q1 - Q4 kábeleket, hogy a tranzisztoros kollektorok a kijelző érintkezőihez, a tranzisztoros kibocsátók pedig a földhöz legyenek csatlakoztatva. Q1 - Q4 szabályozza, hogy a négy 7 szegmenses kijelző közül melyik aktív. Ezt a mikrokontroller vezérli, a Q1 - Q4 tranzisztorok bázisához csatlakoztatott csapokon keresztül. A növekmény és a beállítás gombokkal manuálisan állíthatja be a pontos órát, amikor az órát ténylegesen használja. Ha a Set gombot egyszer megnyomja, a Növelés gomb segítségével lépkedhet a kijelzőn megjelenő órák között. A Set gomb ismételt megnyomásakor a növekmény gomb segítségével lépkedhet a kijelzőn megjelenített percekben. Amikor a Set gombot harmadszor is megnyomja, beállítja az időt. Az R13 és R14 használaton kívül lehúzza a gombokhoz tartozó mikrovezérlő csapokat. Vegye figyelembe, hogy itt levettük az U4 -et (Atmega328p) a tipikus Arduino UNO prototípus tábláról, és az áramkörünk többi részével a prototípus táblára tettük. Ehhez legalább biztosítani kell az X1 kristályt és a C1 és C2 kondenzátorokat, hogy órajelet biztosítsanak a mikrovezérlőnek, az 1 -es rögzítőcsapot, a visszaállító csapot magasnak, és 5VDC tápellátást biztosítsanak.

2. lépés: 2. lépés: Breadboard prototípus

2. lépés: Breadboard prototípus
2. lépés: Breadboard prototípus
2. lépés: Breadboard prototípus
2. lépés: Breadboard prototípus

Függetlenül attól, hogy az áramkört pontosan a kapcsolási rajzon látható módon építi fel, vagy esetleg egy kissé eltérő transzformátort, kijelzőtípust vagy más alkatrészeket használ, először az áramkört kell lefednie annak biztosítása érdekében, hogy működik, és megértse, hogyan működik.

A képeken látható, hogy a kenyérsütéshez az egészhez szükség volt pár deszka, valamint egy Arduino Uno tábla. Tehát a mikrokontroller programozásához vagy kísérletezéshez vagy a szoftver módosításához először szüksége lesz egy mikrokontroller IC -re egy UNO táblán, hogy USB -kábelt csatlakoztathasson hozzá és a számítógépéhez a program feltöltéséhez vagy a szoftver módosításához. Miután beállította az órát a kenyértáblán, és beprogramozta a mikrokontrollert, húzza ki a konnektorból, és csatlakoztassa a prototípus -táblán lévő végleges állandó óra aljzatához. Feltétlenül kövesse az antisztatikus óvintézkedéseket. A mikroprocesszor kezelése közben használjon antisztatikus csuklópántot.

3. lépés: 3. lépés: Végső felépítés

3. lépés: Végső felépítés
3. lépés: Végső felépítés
3. lépés: Végső felépítés
3. lépés: Végső felépítés

Az áramkör egy prototípuslapra van felépítve, és pontról pontra huzalozva #30 AWG huzalköteg -huzal segítségével. Kemény és megbízható eredményt nyújt. Mivel a nálam lévő transzformátornak van egy 5 mm -es dugója a kábel végén, a megfelelő hüvelyes aljzatot a tábla hátoldalára szereltem fel egy 1/2 széles, lapos alumínium csík darabolásával, hajlításával és fúrásával. konzolt, majd csavarozva a táblához kis 4-40 anyával és csavarral. Csak levághatja a csatlakozót, és forraszthatja a fennmaradó tápvezetékeket a táblához, és megmentheti magát körülbelül 20 perces munkától, de nem akartam, hogy a transzformátor tartósan rögzítve legyen a táblához.

4. lépés: 4. lépés: Hozzon létre egy aljzatot a kijelzőhöz és adjon hozzá lábakat

4. lépés: Hozzon létre egy aljzatot a kijelzőhöz és adjon hozzá lábakat
4. lépés: Hozzon létre egy aljzatot a kijelzőhöz és adjon hozzá lábakat
4. lépés: Hozzon létre egy aljzatot a kijelzőhöz és adjon hozzá lábakat
4. lépés: Hozzon létre egy aljzatot a kijelzőhöz és adjon hozzá lábakat
4. lépés: Hozzon létre egy aljzatot a kijelzőhöz és adjon hozzá lábakat
4. lépés: Hozzon létre egy aljzatot a kijelzőhöz és adjon hozzá lábakat

Mivel a kijelző 16 tűvel rendelkezik, mindkét oldalon 8 db, és a tűk közötti távolság szélesebb, mint a szabványos 16 tűs IC aljzat, ezért a foglalat méretét úgy kell beállítani, hogy illeszkedjen a kijelzőhöz. Ezt úgy teheti meg, hogy egyszerűen használ egy pár drótvágót a foglalat két oldalát összekötő műanyag levágásához, szétválasztásához és külön forrasztásához a táblához, olyan távolsággal, amely megfelel a kijelzőn lévő csapok távolságának. Előnyös ezt úgy tenni, hogy ne kelljen közvetlenül a kijelző csapjaihoz forrasztani, és ne tegye ki a kijelzőt túlzott hőnek. A fenti képen a tábla tetején látható az aljzat, amellyel ezt megtettem.

Annak érdekében, hogy a kijelző megfelelően felálljon, két 1 -os csavart csavaroztam a prototípus tábla alsó két saroklyukába, amint a képeken látható, hogy egy egyszerű állványt készítsünk. Ez elég ütős volt, ezért ha ezt megteszi, valami nehéz dolgot szeretne tenni a csavarok hátuljára, hogy stabilizálja.

5. lépés: 5. lépés: Az áramköri lap huzalozásának ellenőrzése és a kalibrálás előkészítése

5. lépés: Az áramköri lap huzalozásának ellenőrzése és a kalibrálás előkészítése
5. lépés: Az áramköri lap huzalozásának ellenőrzése és a kalibrálás előkészítése

Az áramköri lap bekötése után, de mielőtt az IC -ket vagy a kijelzőt csatlakoztatná, vagy bekapcsolná, jó ötlet ellenőrizni a kártya csatlakozásait egy DVM -el. A legtöbb DVM -et beállíthatja úgy, hogy sípoljanak, ha van folyamatosság. Állítsa a DVM -et ebbe az üzemmódba, majd kövesse a kapcsolási rajzot, és ellenőrizze a lehető legtöbb áramköri csatlakozást. Ellenőrizze, hogy nincs -e megszakadt áramkör, vagy annak közelében a +5V és a földelési pontok között. Szemrevételezéssel ellenőrizze, hogy minden alkatrész a megfelelő csapokhoz van -e csatlakoztatva.

Ezután csatlakoztassa a transzformátort az áramkörhöz, és kapcsolja be. Mielőtt bármilyen IC -t vagy a kijelzőt csatlakoztatna, ellenőrizze, hogy pontosan 5V DC van -e az 5V -os tápkábelben, hatókörrel vagy DVM -el. Következő lépésként CSAK az Op-Amp U5 IC-t csatlakoztassa a következő lépés előkészítéséhez. Itt ellenőrizni fogjuk, hogy a keresztező áramkörünk négyzethullámot generál, és az RV1 potenciométert tiszta 60 Hz -es jelre állítjuk be.

6. lépés: 6. lépés: Áramkör kalibrálása

6. lépés: Áramkör kalibrálása
6. lépés: Áramkör kalibrálása
6. lépés: Áramkör kalibrálása
6. lépés: Áramkör kalibrálása

Az egyetlen kalibrálás, amelyet el kell végezni, az RV1 potenciométer beállítása a keresztirányú érzékelőt tápláló jel megfelelő szintjéhez. Ennek két módja van:

1. Helyezzen egy szondát az U5 1. tűjére, és győződjön meg arról, hogy a szonda földelővezetékét az áramkör testéhez csatlakoztatta. Ezután állítsa be az RV1 értéket, amíg tiszta négyzethullámot nem kap, amint az a fenti képen látható. Ha az RV1 -et túl messzire állítja, akkor vagy nincs négyzethullám, vagy torz négyzethullám. Győződjön meg arról, hogy a négyzethullám frekvenciája 60 Hz. Ha modern hatókörrel rendelkezik, akkor valószínűleg meg fogja mondani a frekvenciát. Ha olyan ősi hatókörrel rendelkezik, mint én, akkor győződjön meg arról, hogy a négyzethullám időtartama körülbelül 16,66 ms vagy 1/60 másodperc. 2. Frekvencia üzemmódban frekvenciaszámláló vagy DVM használatával mérje meg a frekvenciát az U5 1. tűjén, és állítsa be az RV1 -et pontosan 60 Hz -re. A kalibrálás befejezése után kapcsolja ki az áramkört, és csatlakoztassa az összes IC -t és a kijelzőt az áramkör felépítésének befejezéséhez.

7. lépés: 7. lépés: Arduino program

A program teljes mértékben kommentált, így minden lépés részleteit kitalálhatja. A program összetettsége miatt nehéz minden lépést leírni, de nagyon magas szinten ez így működik:

A mikroprocesszor fogadja a bejövő 60 Hz -es négyzethullámot, és 60 ciklust számlál, és minden 60 ciklus után növeli a másodpercek számát. Amint a másodpercek száma eléri a 60 másodpercet vagy 3600 ciklust, a percek számát növelik, és a másodpercek száma nullázódik. Amint a percek száma eléri a 60 percet, az órák száma növekszik, és a percszámláló nullázódik. az óraszám 13 óra után visszaáll 1 -re, tehát ez 12 órás óra. Ha 24 órás órát szeretne, csak módosítsa a programot, hogy 24 óra után nullára állítsa az órákat. Ez egy kísérleti projekt, ezért megpróbáltam egy Do-while ciklus segítségével elnyomni a kapcsoló ugrálását a Set és a Increment gombokon. Viszonylag jól működik. Ha a Set gombot egyszer megnyomja, a Növelés gomb segítségével lépkedhet a kijelzőn megjelenő órák között. A Set gomb ismételt megnyomásakor a növekmény gomb segítségével lépkedhet a kijelzőn megjelenő percekben. Amikor a Set gombot harmadszor is megnyomja, beállítja az időt, és az óra futni kezd. A 0 és 1 minták, amelyek a 7 szegmenses kijelzőkön minden szám megjelenítésére szolgálnak, a Seven_Seg nevű tömbben kerülnek tárolásra. Az aktuális órától függően ezeket a mintákat a 74HC595 IC táplálja és elküldi a kijelzőre. A kijelző 4 számjegye közül melyiket kapcsolja be egyszerre az adatok fogadásához, a mikroprocesszor vezérli a Dig 1, 2, 3, 4 pin kijelzőn keresztül. Amikor az áramkör be van kapcsolva, a program először futtat egy tesztrutinot Test_Clock néven, amely elküldi a megfelelő számjegyeket, hogy minden kijelző megvilágítson 0 és 9 közötti számmal. Tehát ha ezt látja, amikor bekapcsol, akkor tudja, hogy mindent helyesen épített fel.

8. lépés: 8. lépés: PCBWay ajánlat

Ezzel befejeződött a bejegyzés, de ennek a projektnek a támogatója a PCBWay, aki akkor ünnepli fennállásának 5. évfordulóját. Nézze meg a https://www.pcbway.com/anniversary5sales.html címen, és ne felejtse el, hogy összeszerelési szolgáltatásuk már 30 dollárnál is alacsonyabb.

Ajánlott: