Nézd meg az ATmega8-on. Kétcsatornás hőmérő, óra az ATmega8-on, DS18B20, DS1307, LCD1602 Egyszerű óra az atmega8 mikrokontrolleren

Óra koncepció nagy számokkal

Szerkezetileg az eszköz két táblából áll majd - egymás felett. Az első tábla LED-ek mátrixa, amely az órákat és perceket alkotja, a második a tápegység (LED vezérlés), a logika és a tápegység. Ez a kialakítás kompaktabbá teszi az órát (tok nélkül, kb. 22 cm x 9 cm, 4-5 cm vastag) + lehetővé teszi, hogy a mátrixot egy másik projekthez csavarják, ha valami baj van.

Az erősáramú rész UL2003 meghajtó és tranzisztoros kapcsolók alapján épül fel. Logikai - Atmega8-on és DS1307-en. Tápellátás: 220V - transzformátor; logikai 5V (7805-ön keresztül), tápegység - 12V (LM2576ADJ-n keresztül). Külön rekesz lesz a 3 V-os elem számára a valós idejű óra - DS1307 - önálló tápellátásához.

Az Atmega8 és a DS1307 használatán gondolkodom (az órát a mennyezetről tervezem leakasztani, hogy áramszünet esetén ne kelljen minden alkalommal a beállítások után babrálni), azonban a tábla elrendezése azt jelenti, hogy az eszköz DS1307 nélküli működtetésének lehetősége (első alkalommal, és talán örökre - hogyan fog működni).

Így a konfigurációtól függően az óraprogram működési algoritmusa a következő lesz:

Atmega8– időszámláló időzítőnként. Munkavégzés szünetek nélküli ciklusban: billentyűzet lekérdezése, idő beállítása (ha szükséges), 4 számjegy és elválasztó megjelenítése.

Atmega8+DS1307. Munkavégzés egy ciklusban szünetek nélkül: a billentyűzet lekérdezése, a DS1307 idő beállítása (ha szükséges), az idő leolvasása a DS1307-ről, 4 számjegy és egy elválasztó megjelenítése. Vagy egy másik lehetőség - DS1307 olvasása időzítőn, a többi ciklusban (még nem tudom, hogyan lehet a legjobban).

A szegmens 4 sorba kapcsolt piros LED-ből áll. Egy számjegy – 7 szegmens közös anóddal. Nem tervezem a szegmensek szétválasztását a nyolcas számmintával, ahogy az a hagyományos indikátoroknál történik.

Az óra teljesítmény része

Az óra teljesítmény része egy UL2003 meghajtóra és VT1 és VT2 tranzisztoros kapcsolókra épül.

Az UL2003 felelős a jelző szegmensek vezérléséért, a gombok a számjegyek vezérléséért.

Az óra és perc elválasztó külön vezérelhető (K8 jel).

A szegmenseket, biteket és az elválasztót a mikrokontroller vezérli, pozitív potenciált (azaz +5 V-ot kapcsolva) a K1-K8, Z1-Z4-re.

A szegmensek és bitek jeleit szinkronban és meghatározott frekvenciával kell szolgáltatni, hogy biztosítsák az információ dinamikus kimenetét (óra és perc).

A BCP52 tranzisztor VT1 (BCP53) tranzisztorként használható.

Az óra teljesítményrészének vázlata nagy számokkal

Hétszegmenses kijelző nyomtatott áramköri lapja nagy számokkal rendelkező órához

Mint korábban mondtam, az óra két nyomtatott áramköri lapból fog állni - egy jelzőtábla + logika és egy tápegység.

Kezdjük az indikátor áramköri kártya tervezésével és gyártásával.

Nyomtatott áramköri lap fejlesztése nagyszámú óra hétszegmenses kijelzőjéhez

A "lay" formátumú, nagy számokat tartalmazó óra hétszegmenses jelzőjének nyomtatott áramköri lapja a cikk végén található, a csatolt fájlokban. A nyomtatott áramköri lapok LUT módszerrel történő gyártási technológiájáról olvashat.

Ha mindent helyesen csinált, a kész PCB valahogy így fog kinézni.

Hétszegmenses kijelző kész nyomtatott áramköri lapja nagy számokkal rendelkező órához

Hétszegmenses jelző összeszerelése

Mivel az indikátortábla kétoldalas, első lépésként rétegközi átmeneteket kell végrehajtani. Ezt a felesleges alkatrészek lábaival teszem - átfűzöm a lyukakon, és mindkét oldalon forrasztom őket. Amikor az összes átmenet elkészült, egy lapos, finom reszelővel megtisztítom - nagyon ügyes és szép lesz.

Rétegközi fiolák az indikátortáblán

A következő lépés valójában az indikátor összeszerelése. Miért van szükségünk egy csomag piros (zöld, fehér, kék) LED-re? Én például ezeket vettem.

Az indikátor összeszerelésének előkészítése

A diódák telepítésekor ne felejtsük el, hogy egy közös anóddal rendelkező indikátort készítünk - pl. A "+" diódákat össze kell kötni. A nyomtatott áramköri lapokon elterjedt anódok nagy rézdarabok. Ügyeljen az elválasztópont anódjára.

Az anódok elhelyezkedése az indikátor nyomtatott áramköri lapján

Ennek eredményeként 2 óra fáradságos munka után ezt kell kapnia:

Hétszegmens jelző

Az óra digitális része

Az óra digitális részét nagy számokkal állítjuk össze a következő séma szerint:

Óradiagram nagy számokkal

Az óraáramkör elég átlátszó, így nem látom értelmét elmagyarázni, hogyan működik. A nyomtatott áramkör *.lay formátumban a cikk végén letölthető. Megjegyzem, hogy a nyomtatott áramköri lapot elsősorban felületre szerelhető alkatrészekhez tervezték.

Tehát az általam használt elemalap:

1. DFA028 diódahíd (bármilyen kompakt, felületre szerelhető);
2. LM2576ADJ feszültségszabályozók D2PAK házban, 78M05 HSOP3-P-2.30A házban;
3. BCP53 (SOT223 ház) és BC847 (SOT23 ház) tranzisztoros kapcsolók;
4. Atmega8 mikrokontroller (TQFP);
5. Valós idejű óra DS1307 (SO8);
6. Tápfeszültség 14V 1,2A valami régi készülékről;
7. A fennmaradó részek tetszőleges típusúak, méretükben nyomtatott áramköri lapra szerelhetőek.

Természetesen, ha más alkatrészcsomagokat szeretne használni, néhány változtatást kell végrehajtania a PCB-n.

Ügyeljen az R3 és R4 ellenállásértékekre - pontosan olyannak kell lenniük, mint a diagramon - nem több, nem kevesebb. Ez annak érdekében történik, hogy az LM2576ADJ feszültségszabályozó kimenetén pontosan 12 V feszültséget biztosítson. Ha még mindig nem talál ilyen ellenállásértékeket, akkor az R4 ellenállás értéke a következő képlettel számítható ki:

R4=R3(12/1,23-1) vagy R4=8,76R3

A digitális rész összeszerelése. 1-es verzió, DS1307 nélkül

Ha az óra nyomtatott áramköri lapjának elkészítésekor betartotta a pontban foglalt ajánlásokat, akkor felesleges-e emlékeztetni, hogy összeszerelés előtt a nyomtatott áramköri lapot meg kell fúrni, minden látható rövidzárlatot meg kell szüntetni rajta, ill. a táblát le kell fedni folyékony gyantával? Ezután elkezdjük összeszerelni az órát.

Azt javaslom, hogy kezdje a tápegység összeszerelésével, és csak ezután szerelje be a digitális részt. Ez egy általános ajánlás az eszközök önálló összeszereléséhez. Miért? Egyszerűen azért, mert ha a tápegységet hibásan szerelik össze, akkor elégetheti az összes alacsony feszültségű elektronikát, amelyet ennek a tápegységnek kell táplálnia.

Ha mindent helyesen csinált, a tápegységnek azonnal működnie kell. Ellenőrizzük a tápegység összeszerelését - mérjük meg a feszültséget a vezérlőpontokon.

Az ábra azokat a vizsgálati pontokat mutatja, ahol a tápfeszültséget ellenőrizni kell. Ha a feszültség megfelel a deklaráltnak, megkezdheti az óra digitális részének összeszerelését. Ellenkező esetben ellenőrizzük a tápelemek beszerelését és működését.

Tesztpontok és feszültségértékek az óra tápegységéhez

A tápegység ellenőrzése után folytatjuk az óra digitális részének összeszerelését - az összes többi elemet a nyomtatott áramköri lapra szereljük. Ellenőrizzük a rövidzárlatokat, különösen az Atmega mikrokontroller és az UL2003 meghajtó lábaiban.

Az óra digitális részének beszerelése

Kérjük, vegye figyelembe, hogy az órát a DS1307 valós idejű óra felszerelése nélkül szereljük össze, azonban ennek a chipnek az összes vezetékezését el kell végezni. A jövőben, ha szükség lesz rá, ezzel időt takaríthatunk meg a második verzió óramódosításán, ahol továbbra is a DS1307-en különálló, független valós idejű óra lesz használatban.

Az ATMEGA8 mikrokontroller előzetes tesztelése

A mikrokontroller helyességének és működőképességének ellenőrzéséhez szükségünk van:

1. Programozó például.
2. a mikrokontroller áramkörön belüli programozására.
3. AVRDUDESHELL program.

Csatlakoztatjuk az óratáblát az adatkábelhez. Csatlakoztatjuk az adatkábelt a programozóhoz. Programozó olyan számítógéphez, amelyre az AVRDUDESHELL program telepítve van. Az óralapot nem szabad 220 V-os tápegységhez csatlakoztatni.

Sikeres adatolvasás a mikrokontrollerről az AVRDUDESHELL programmal

Ha problémák merülnek fel a biztosítékok leolvasása során, ellenőrizze a telepítést - lehet, hogy valahol rövidzárlat vagy „hiányzó csatlakozás” van. Egy másik tipp - talán a mikrokontroller alacsony sebességű programozási módban van, akkor csak kapcsolja át a programozót ebbe az üzemmódba (


- riasztó.
- hőmérő.

1. Funkciók.

– jelzés. Felváltva.

PLUSZMÍNUSZ

2. Beállítás.

2.2. Egy gomb megnyomásávalMENÜKÉSZLET

Csoport CLOC:

- percek;

- néz;

PLUSZ vagy MÍNUSZ);

Val vel".

Csoport Szárnyas:

TovábbKI" ha le van tiltva;

Csoport diSP:

tc

tt

EF, Ar

P

Csoport LIGH:

A", a fiatalabbakban" TovábbNAK,-NEK

L_ ".

L¯ ".

L".

2.4. A gombok nyomva tartásávalPLUSZ/ MÍNUSZ

3. Jegyzetek.

tantárgy .

Videó a program működéséről t felhasználófarkas2000.

– óra digitális pontosságkorrekcióval.
- riasztó.
- hőmérő.
– kijelzés egy hétszegmenses kijelzőn.
– a jelzőfény fényerejének automatikus beállítása.

1. Funkciók.

– óra, időkijelzési formátum 24 órás, óra:perc.

– digitális pontosság korrekció. Napi korrekció ±25 mp. A beállított 1 óra 0 perc 30 másodperc érték hozzáadódik/levonódik az aktuális időből.

- riasztó. A megadott időpontban egy percig rövid, kettős hangjelzés hallható. A hangot a tervezett időpont előtt kikapcsolhatja bármelyik gomb megnyomásával. Ha az ébresztőóra be van kapcsolva, az idő kijelzésekor egy pont jelenik meg a legkisebb jelentőségű számjegyben.

- hőmérő. A mért hőmérséklet tartománya -55,0 ÷ 125,0 o C. Ha a hőmérséklet 99,9 o C felett vagy -9,9 o C alatt van, a tized fok nem jelenik meg.

– jelzés. Felváltva.

– testreszabható animáció a változó olvasmányokhoz.

– a mikrokontroller nem felejtő memóriájának használata a beállítások mentéséhez, amikor a tápellátást kikapcsolják.

– ha fő módban megnyomja a gombotPLUSZ, majd az idő megjelenik a jelzőkön, ha rákattintMÍNUSZ- hőfok. A gombok elengedésekor folytatódik a leolvasások automatikus változása.

– a jelzőfény fényerejének automatikus beállítása a megvilágítástól függően.

2. Beállítás.

2.1. A tápfeszültség bekapcsolásakor az óra fő üzemmódban van.

2.2. Egy gomb megnyomásávalMENÜbelép a beállítások módba, és kiválasztja a telepítendő paraméterek csoportját. Egy csoporton belül a gombbal lehet kiválasztani a beállítandó paramétertKÉSZLET. Felváltva telepíthető:

Csoport CLOC:

- percek;

- néz;

– másodperc (a gombok megnyomásakor nullázza visszaPLUSZ vagy MÍNUSZ);

– korrekciós érték. A legmagasabb sorrendben a " szimbólum Val vel".

Csoport Szárnyas:

– az ébresztőóra aktiválása. A jelzőn "Tovább"ha az ébresztőóra be van kapcsolva"KI" ha le van tiltva;

– perc, amikor az ébresztő megszólal;

– ébresztőóra óra.

Csoport diSP:

– az aktuális idő kijelzésének ideje. A legnagyobb számjegyekben a "tc". Beállítási tartomány 0÷99 mp. Ha 0-ra van állítva, az idő nem jelenik meg;

– hőmérséklet kijelzési idő. A legnagyobb számjegyekben a "tt". Beállítási tartomány 0÷99 mp. Ha 0-ra van állítva, a hőmérséklet nem jelenik meg;

– animációs hatás kiválasztása. A legnagyobb számjegyekben a "EF". Ha 0-ra van állítva, az információ módosítása hatások nélkül történik, ha az automatikus mód van kiválasztva (szimbólum A"), akkor az effektusok egyenként változnak. Ha a módot választjar, akkor a hatások véletlenszerűen változnak.

– válassza ki az animáció sebességét. A legmagasabb sorrendben a " szimbólumP". A beállítási tartomány 0÷99. Egy egység körülbelül 2 ms-nak felel meg, minél magasabb az érték, annál lassabb az animáció.

Csoport LIGH:

– engedélyezze a jelzőfény fényerejének automatikus szabályozását. A legjelentősebb számjegyben a "A", a fiatalabbakban" Tovább"ha az automatikus szabályozás engedélyezve van",NAK,-NEK" ha a fényerőt manuálisan állítja be;

– minimális fényerő küszöb az automatikus üzemmódhoz. A legnagyobb számjegyekben a "L_ ".

– maximális fényerő küszöb automatikus üzemmódhoz. A legnagyobb számjegyekben a "L¯ ".

– fényerősség kézi üzemmódban. A legnagyobb számjegyekben a "L".

2.3. A beállított paraméter villog.

2.4. A gombok nyomva tartásávalPLUSZ/ MÍNUSZa paraméter gyorsan beállítható.

3. Jegyzetek.

1. A minimális és maximális fényerősségi küszöbnél a beállítási tartomány 0 ÷ 99, de a program korlátozásokat vezet be: a minimum nem lehet nagyobb vagy egyenlő a maximummal és fordítva.

2. A fényerő paramétereinek beállításakor a kijelzőn lévő információk a kiválasztott fényerő értékkel együtt jelennek meg.

3. Össze kell hasonlítani az animáció sebességét és az információ megjelenítési idejét. Ha lassú animációt és rövid megjelenítési időt választunk, előfordulhat, hogy az információnak nincs ideje teljesen frissíteni a következő műszak előtt.

Létrehoztunk egy témát a cikk anyagainak megvitatására.

Videó a program működéséről t felhasználófarkas2000.

Ez az Atmega8 mikrokontrollerre épített elektronikus óra jól leolvasható LED-kijelzővel, szundi funkcióval rendelkező ébresztőórával és áram-visszaállítási funkcióval rendelkezik.

Az óra specifikációi

  • idő megjelenítési formátuma: óra, perc;
  • ébresztőóra szundi funkcióval;
  • egyszerű vezérlés 2 gombbal;
  • Akkumulátoros működés támogatása;
  • tápfeszültség: 7…12V / 0,2 A;
  • két nyomtatott áramköri lap méretei: 60×21 mm, 58×44 mm.

Az óra sematikus diagramja az alábbi ábrán látható. Az óraáramkört 7...12V tartományban állandó feszültséggel kell táplálni. Ez bármilyen lehet, legalább 200 mA áramterheléssel.

A kártya CON5 csatlakozójára egy generátoros berregő csatlakoztatható, amely riasztó jelzésként működik. A gombok a nyomtatott áramköri lap SA1 és SA2 kapcsaihoz csatlakoznak, amelyek a beállítások megadására és az óra működtetésére szolgálnak.

Az idő és az ébresztés beállítása

Az SA1 gomb megnyomásával a „Set1” óra menübe jutunk, ahol lehetőségünk van az aktuális idő beállítására, az SA1 gomb újabb rövid megnyomásával pedig a „Set2” ébresztési idő beállítási menüjébe jutunk.

A beállítások kiválasztásához és módosításához használja az SA2 gombot. Az időbeállítási módban és az ébresztés beállítási módban történő kiválasztása után az első számjegy villogni kezd a kijelzőn, majd az SA2 gombbal több tucat órát állíthat be.

Az SA1 ismételt megnyomásával a második számjegy villogni kezd, az SA2 gombbal pedig beállíthatja az óra mértékegységét. Az SA1 következő két megnyomásával több tíz percet és percegységet állíthat be. Az órák és percek beállításakor mindig csak egy számjegy van beállítva. Az SA1 ötödik megnyomásával az óra visszatér a normál működéshez. Ezenkívül a telepítési folyamatot leállítja, ha hosszú ideig nem nyom meg semmilyen gombot.

Amíg az óra jár, az SA2 gomb hosszan tartó lenyomása be-/kikapcsolja az ébresztőt. Amikor az ébresztő aktiválódik, néhány másodpercre megjelenik a kezdési idő. A riasztás állapotát a negyedik számjegyben található pont jelzi. Amikor a riasztás aktív, ez a jelzőfény világít.

Az ébresztő bekapcsolása után bármelyik gomb megnyomásával kikapcsolhatja azt körülbelül 5 percre, ekkor a szundi funkció aktiválódik. Ezt a tényt egy villogó pont jelzi a mutató negyedik számjegyén. 5 perc elteltével ismét megszólal az ébresztő. Bármelyik gomb újbóli megnyomásával újabb 5 perccel el lehet halasztani stb.

A riasztási jelzés teljesen kikapcsol az SA2 gomb hosszan tartó megnyomása után, vagy körülbelül másfél perces reakcióhiány után.

Az óra működését a Proteusban tesztelték:

Ha az óra működése közben kiderül, hogy az óra jelentősen lemaradt vagy siet, megpróbálhatja csökkenteni vagy növelni a C1 kondenzátor értékét.

(34,7 Kb, letöltések: 1 923)

Nézd meg az ATmega8-on.

  • 10 riasztás a hét minden napjára.
  • A késleltetett jelzés, ha az ébresztőt nem kapcsolják ki, körülbelül 5 perc múlva elalszik.
  • Két ébresztőóra külön MK lábon, terhelés be/ki.
  • Két DS18B20 hőmérséklet-érzékelő (otthon és kültéren).
  • Hőmérséklet-kijelző kiválasztása (nulla kioltása).
  • Időzítő 99 óra.
  • A kijelző fényereje nappali és éjszakai időre állítható.
  • A változó paraméter simán változtatja a fényerőt.
  • Ha 220 voltot veszít, az akkumulátor fogyasztása kevesebb, mint 40 mikroamper.
  • Az ébresztő bármilyen üzemmódban bekapcsol.
  • Az óra legfeljebb 8 üzemmódot tud megjeleníteni.
  • Az áramkörben közös anóddal vagy katóddal rendelkező indikátorok használhatók.

Az óra maximum 8 módot tud megjeleníteni, amelyhez tizenöt megjelenítési formátum közül választhat egyet, a megjelenítési időt és az átugrások számát.

Megjelenítési formátumok.
0

Dátum, a hét napja, óra-perc.

1

Óra-perc-másodperc.

2

Órák és percek.

3

Óra-perc, a hét napja.

4

Hónap_napja_hét napja.

5

Nap hónap év.

6

Nap hónap év a hét napja.

7
8

1. hőmérséklet-érzékelő (házi érzékelő).

9

2. hőmérséklet-érzékelő (érzékelő kívül).

A

Hőmérséklet 1 érzékelő, óra-perc.

b

Hőmérséklet 2 érzékelő, óra-perc.

C

1. hőmérséklet érzékelő, 2. hőmérséklet érzékelő.

d

1. hőmérséklet érzékelő, 2. hőmérséklet érzékelő.

E

A hét napja szám hónap év.

F

Nap hónap év.

Azokban az üzemmódokban, ahol a tized fokok nincsenek feltüntetve, a pont több mint 0,5 fokot határoz meg.

F gomb – kilépés az üzemmódból. 3 fő mód közül választhat.
SET gomb - belép a kiválasztott módba. Ezután lépjen a következő paraméterre (villogó mező).
PLUSZ gomb - plusz/be. BEÁLLÍTÁS módban görgessen végig a főmenükön.
MÍNUSZ gomb - mínusz/__(ki). BEÁLLÍTÁS módban görgessen végig a főmenükön.

A nulla és az időzítő mód kivételével minden üzemmód rendelkezik időlezárással. Ha 30 másodpercnél hosszabb ideig nem történik megnyomás, az üzemmód nullára áll.

HÍVÁS módban

BEÁLLÍTÁS mód.
Az értékek EEPROM-ba írásához meg kell erősítenie az összes értéket az almódban a SET megnyomásával.
Példa: LIGHT ->SET-> L.ooooo ->SET-> HO4b L.2 ->SET-> LIGHT .

PORT mód.

Óra mód.

A másodpercek beállítása. A MÍNUSZ gomb megnyomásával a másodpercek nullázódnak. Ha több mint 31 másodperc volt, akkor a percek növekszik.
Ezután következik a percek és órák beállítása.
Telepítve:
dátum, hónap, év és a hét napja.
Órakorrekció. Ezt az értéket óránként hozzáadja vagy kivonja. Lépés 0,008 másodperc. (50 érték), maximális érték 0,391. Számítási példa: nullával egyenlő korrekciónál az óraeltolódást mérjük, például 5 nap alatt az óra 3 másodpercet elszaladt, ekkor a korrekció pontosan 3/(5*24)=0,025.

Állítsa be a SEE módot.

Nulla módban az óra felváltva legfeljebb 8 módot mutat, amelyekhez a tíz megjelenítési formátum és a megjelenítési idő egyike van kiválasztva. (felső táblázat).
1 mód kiválasztása.
r 5 válasszon egyet a tizenöt megjelenítési formátum közül.
Val vel 03 másodpercben megadva, hogy a kiválasztott mód látható legyen.
n 0 hányszor kell kihagyni (ne mutasd) mód. Példa:
1 r0 c03n0
2 r5 c03n0
3 r4 c02n1
r0; r5; r4; r0; r5; r4; r0; r5; r4; r0; r5; r4; ..
r4; — látható, r4; - nem fogadott.
Ha az idő 00, az üzemmód le van tiltva.

Mode USt Bud. Riasztás beállításai.

Bip riasztó jelzés - PWM.
Pin riasztójelzés - száj 1 kimeneti rügyben.
Mindkét Alátét és kimenet.
Jel késleltetés.
Beállítja a jelkésleltetések számát.
Amikor kikapcsolt A Szundi (00) bármely gomb megnyomásával kikapcsolja az ébresztést.
Amikor bekapcsolva ébresztő szundi kikapcsolva F gombbal, a SET PLUS MINUS gombok megnyomásakor a jel kikapcsol, de kb. 5 perc múlva újra működik.
Ha a jelkésleltetés aktív, nulla üzemmódban az utolsó számjegy pontja villog.
A késleltetés letiltása (ha nincs jel). 0 módban a SET gomb megnyomásával. ezt a módot. Az aktív késleltetés jelenléte indukálja a szimbólumot O a 4. ismerkedési helyen. A PLUSZ MÍNUSZ gomb megnyomása kikapcsolja a késleltetést.

DS18B20 mód.

Fény mód.

Jelzési mód.

Reset mód.

Műveletek nulla üzemmódban.

F - mód kiválasztása.
SET - jel késleltetés törlési mód
PLUSZ – A SEE mód beállítása.
MÍNUSZ - riasztások beállítása.

Óránként egy másodpercre beállítja a PB2(16) tűt.

A megtakarítás érdekében a jel késleltetése tilos akkumulátoros üzemmódban. Az időzítő is leáll.

Forrás: WinAVR-20060421. Firmware anód, katód és firmware nagy kijelzőkkel rendelkező áramkörhöz. Automatikus átállással a nyári/téli időszámításra.
Nincs átállás nyári/téli időszámításra.
Diagram a nagy indikátorokhoz. Alekszej küldte.



Egy egyszerű diagramot és tervet ajánlok figyelmükbe. Kétcsatornás hőmérő, óra az ATmega8-on, DS18B20, DS1307, LCD (ZhK) 1602«.
A kialakítás lehetővé teszi az aktuális idő, dátum, hónap, a hét napja és az aktuális hőmérséklet megjelenítését két digitális hőmérsékletérzékelőről egy kétsoros szimbólum jelzőn.

Kétcsatornás hőmérő és óra diagramja

A dizájn egy ATmega8-16PU mikrokontrollerre, egy DS1307 valós idejű óra chipre DIP-csomagban, DS18B20 digitális hőmérséklet-érzékelőkre és egy LCD1602 LCD kijelzőre épül.


Az eszközdiagram a programban készült
A hőmérséklet-érzékelők a DS1 és DS2 csatlakozókhoz csatlakoznak:
— 1. érintkező — az érzékelő GND érintkezőjéhez
— 2. érintkező — az érzékelő DQ érintkezőjéhez
— 3. érintkező — az érzékelő Vcc érintkezőjéhez

A diagramon szereplő érzékelő csatlakozások nem felelnek meg a nyomtatott áramköri lapnak.
A program a nyomtatott áramköri lapra van szabva, csatlakoztatni kell:
- 1. érzékelő a PB1-hez (15. érintkező)
— 2. érzékelő a PB2-hez (16. érintkező)

Felhívom a figyelmet a mikrokontroller D portjának érintkezőinek a jelző érintkezőihez való csatlakoztatására:
- A mikrokontroller PD0-ja - az indikátor D7 érintkezőjéhez
- A mikrokontroller PD1-je - a jelző D6 érintkezőjéhez
- A mikrokontroller PD2-je - a jelző D5 érintkezőjéhez
- A mikrokontroller PD3-a - az indikátor D4 érintkezőjéhez
Ezt a csatlakozást azért választották, hogy leegyszerűsítsék a sávok elrendezését a nyomtatott áramköri lapon

A tervezés során használt részletek:

Az LCD kijelző 2 soros, 16 karakteres negatív, fehér karakterek sötétkék alapon, fehér háttérvilágítással. Használhat bármilyen hasonló karakterszintetizáló (szimbolikus) kétsoros, 16 karakteres jelzőt, cirill támogatással vagy anélkül, amely támogatja a HD44780 típusú vezérlő parancsrendszerét:
— STN (FSTN) Negatív (kék vagy fekete) háttérvilágítással (ezt használják a tervezésben) — az ilyen jelzők csak háttérvilágítással működnek
— FSTN pozitív, TN pozitív, HTN pozitív — háttérvilágítással vagy anélkül
A használt kínai LCD-kijelző nem rendelkezik beépített cirill ábécével, ezért a hét napjának egyértelműbb megjelenítése érdekében a karaktergenerátor RAM-jába (CGRAM) egyéni karaktereket írnak be - „P”, „n” , „t”, „Ch”, „b” és két karakter fordított formában „D” és „U”.

Kétcsatornás hőmérő és óra nyomtatott áramköri lapja

A kialakítás egyoldalas nyomtatott áramköri lapra van összeszerelve, minden használt alkatrész „kimenet”
A programban elkészült a készülék nyomtatott áramköri lapja.
Három jumper található a táblán - P1, P2, P3
A kvarc rezonátor a táblára „fekve” van felszerelve, a rezonátortestet áthidaló segítségével a rezonátor alatti táblán lévő érintkező alátétre kell forrasztani.

Kétcsatornás hőmérő és óra működésének leírása

A "D" tervezés alapja kétcsatornás hőmérő, óra" egy mikrokontroller ATmega8 1 MHz órajel-frekvenciájú DIP-csomagban egy belső RC áramkörrel rendelkező beépített oszcillátorból. A FUSE bitek alapértelmezés szerint be vannak állítva, nem kell semmit módosítani.
Valós idejű óra chipet használnak az aktuális idő meghatározására DS1307, amely másodperceket, perceket, órákat, hónap dátumát, hónapot, hét napját és évet számol 2100-ig érvényes szökőévi kompenzációval.
Csak a következők jelennek meg:
- aktuális idő - óra ​​és perc
- hónap dátuma
- hónap
- a hét napja
Két digitális hőmérséklet-érzékelőt használnak hőmérséklet-érzékelőként DS18B20, amelyek lehetővé teszik az aktuális hőmérséklet mérését -45 fok és +125 Celsius fok között 0,5 fokos pontossággal.
Az egyes érzékelők aktuális hőmérséklete 0,1 °C felbontással jelenik meg
Az egyes hőmérsékletek értéke előtt a „D” és „U” szimbólumok fordított formában jelennek meg:
- „D” - hőmérséklet a házban
— „U” – külső hőmérséklet

A program működését a T1 időzítő 4 másodpercenkénti túlcsordulási megszakításai szervezik. Az aktuális idő 4 másodpercenként frissül, az érzékelők aktuális hőmérsékletei felváltva, 4 másodpercenként.

A készülék 5 V feszültségű stabilizált áramforrásról működik, használhat töltőt mobiltelefonról vagy autonóm áramforrásról - akkumulátorról; Az áramfelvétel a háttérvilágítás fényességétől függ (az R3 ellenállás értéke), és adott esetben 12 mA.

A készülék két gombbal vezérelhető:
— S1 — „Kiválasztás”
— S2 — „Telepítés”

Az eszköz első bekapcsolásakor (vagy minden alkalommal, amikor a DS1307 - BAT1 tartalék tápegység hiányában bekapcsolja), az eszköz „Teljes” telepítési módba lép. Ebben az esetben be kell állítani az aktuális évet, hónapot, dátumot, a hét napját és az aktuális időt - órát és percet. Ebben a módban a magyarázó információkat nem fordították le oroszra (a hét napjának jelzésével ellentétben), minden magyarázat angolul jelenik meg (a teljes telepítést rendkívül ritkán hajtják végre, nem nehéz megérteni):

Az év beállítása:
A villogó kurzor fehér téglalap formájában jelzi, hogy hol és mit kell beírni:
— a „Telepítés” gombbal – több tíz évre állítottuk be
- a „Kiválasztás” gombbal - folytassa az év mértékegységeinek beállításával
— a „Beállítás” gombbal — állítsa be az év mértékegységeinek értékét
— a „Kiválasztás” gombbal – lépjen a következő beállításra

A hónap beállítása "Hónap"
- hasonlóan az év beállításához

A hónap „Adat” napjának beállítása:
- hasonlóan az év beállításához

A hét napjának beállítása „Hét”:
- hasonlóan az év beállításához: - 1 - H, 2 - K, 3 - Sze, 4 - Cs, 5 - P, 6 - Szo, 7 - V

Az aktuális idő beállítása „Hour_Min”
Például a jelenlegi idő 17 óra 39 perc:
— a „Telepítés” gombbal – több tíz órát állítunk be – 1
— a „Select” gombbal – folytassa az óra mértékegységeinek beállításával
— a „Beállítás” gombbal — állítsa be az óra mértékegységeit — 7
— a „Kiválasztás” gombbal — lépjen a több tíz perc beállításához — 4
— a „Setup” gombbal – állítsa a perc mértékegységét -0-ra
— a másodpercek már „00”-ként jelennek meg a kijelzőn
— pontosan 17 óra 40 perckor nyomja meg a „Select” gombot, és a pillanatnyi idő 17 óra 40 perc 00 másodperc kerül rögzítésre a DS1307-ben

Üzemmódban a „Kiválasztás” és „Telepítés” gombok segítségével a következő módokra válthat:
Kiválasztás gomb— időkorrekció (ebben az esetben csak a „Hour_Min” aktuális idő van beállítva a fent leírtak szerint)
"Telepítés" gomb— „Teljes” telepítés
A kívánt módba való belépéshez nyomja meg a megfelelő gombot, és tartsa lenyomva, amíg a képernyő ki nem tisztul. A kijelző megtisztítása után engedje fel a gombot, és egy másodperc múlva a kiválasztott módba lépünk.

A tervezést kenyérsütőlapon fejlesztették ki és tesztelték, nem szerelték össze.
Sok észrevétel érkezett arról, hogy a készülék nem működik, és a nyomtatott áramköri kártya nem illik az áramköri rajzhoz.
Úgy döntöttek, hogy az eszközt hardveresen újra létrehozzák.
Az alábbiakban az ezen az oldalon közzétett áramkör, nyomtatott áramköri kártya és firmware szerint összeszerelt készülék fényképei láthatók.
A készülék azonnal működni kezdett, semmi probléma nem észlelhető.
A nyomtatott áramköri kártya LUT módszerrel készül. A mikroáramkörök táblára történő telepítésének hibája miatt ki kellett forrasztani és át kell rendezni őket (és van egy lyuk az öregasszonyban), ami a nyomtatott vezetők sérüléséhez vezetett, és ennek következtében a megjelenés nem túl jó jó, a nyomtatott vezetékek oldalára P2 jumper van felszerelve (nem fúrt lyukakat), a DS1 érzékelő kb 1 méter hosszú kábellel van csatlakoztatva (úgy, hogy a padlótól kb. 30 cm magasságban legyen, a DS2 érzékelőt egy 5 méter hosszú kábellel csatlakoztatják, és az ablakon keresztül hozzák ki.

Egy probléma volt - az RTC DS1307 nem indult el azonnal, az ok a kvarccsapok közötti gyanta volt. A deszka mosása után az óra működni kezdett.

(10,8 KiB, 1990 találat)

(27,3 KiB, 1471 találat)

(390,1 KiB, 1288 találat)

(51,7 KiB, 2476 találat)

Letöltés a YandexDiskről (ráadásul - orosz nyelvű adatlapok)

A „Kétcsatornás hőmérő, óra ATmega8, DS18B20, Ds1307” összeszereléséhez szükséges összes alkatrészt, beleértve a programozott mikrokontrollert, megrendelheti a weboldal webáruházában.