Jó napot, folytatom Arduino szabadidejében, és ezúttal utasításokat írt egy kis meteorológiai állomás gyártására. Dátummal ellátott óraként működik, és megmutatja a hőmérsékletet a helyiségen és azon kívül. Fő vezérlőként Arduino UNO-t fogjuk használni, de egy másik tábla, amelyen Atmega328p van a fedélzeten. A megjelenítéshez a WG12864B grafikus képernyőt használjuk. Két ds18b20 hőmérséklet-érzékelőt is csatlakoztatunk. Az egyik beltéri, a második kint ki. Kezdjük!
A gyártási folyamatban házi szükségünk lesz:
- Arduino UNO (vagy bármely más Arduino kompatibilis tábla)
- WG12864B grafikus képernyő
- ds18b20 hőmérséklet-érzékelő, 2db
- Tápegység 6 - 12 V
- Ellenállások 4,7 Kom 0,25 W, 2 db.
- Ellenállások 100 ohm, 0,25 W
- Elemtartó rekesz 4 AAA „rózsaszínű” elemhez
- Doboz a SEGA konzol patrontól
- elektromos szalag
- összekötő vezetékek
- áramköri lap
- Gombok
- levélpapír kés
- forrasztópáka
- Forrasztott, kolofon
- Kétoldalas szalag
1. lépés: A WG12864B3 előkészítése.
Azokat, akik korábban nem dolgoztak a képernyőkkel, riaszthatják a képernyők nagyszámú módosítása, amelyek látszólag ugyanazok. Magyarálok egy kicsit. A legtöbb ilyen típusú képernyő a ks0107 / ks0108 chipeken működik. Az összes képernyő 4 típusra osztható:
A lehetőség: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
B opció: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Az AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1, kijelzők.
C lehetőség: Shenzhen Jinghua Displays Co Ltd. JM12864
D. lehetőség: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202
Szinte azonosak. De eltérő csatlakozási pontokkal rendelkeznek. Választottam és ajánlom neked a WG12864B3 V2.0 szoftvert, de ha a képernyő másképp érkezett, vagy ha nincs kéznél, akkor könnyen kitalálhatja a táblázat segítségével:
Rövid jellemzők:
Sok különböző kapcsolatrendszer létezik az interneten, és úgy tűnik, hogy minden működik. A helyzet az, hogy nemcsak különböző képernyők vannak, hanem csatlakoztatásuk kétféle módja is: soros és párhuzamos. Soros portos kapcsolat használata esetén csak a mikrovezérlő 3 kimenetére van szükség. Párhuzamos minimummal: 13. A választás ebben az esetben nyilvánvaló, Arduino néhány következtetéssel rendelkezik. A párhuzamos csatlakozáshoz a csatlakozási ábra a következő:
Egy soros kapcsolat esetén, amelyet használunk, a séma a következő:
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - 100 Ohm ellenálláson keresztül - + 5 V
20 (BLK) - GND
A kontraszt beállításához potenciométernek kell lennie a képernyőn. Van képernyők nélkül, de most ritkaság:
100 ohmos ellenállásra van szükség, hogy az 5 voltos feszültség ne érezze véletlenül a háttérvilágítás diódait.
2. lépés Az ügy elkészítése.
Az esethez vegye ki a dobozt a Sega előtagból. Ha nem találja ezt a négyzetet kéznél, használhat egy másik esetet. A lényeg az, hogy a képernyő és az Arduino beleférjen.
Vágja át az átlátszó filmet a doboz tetejére, hogy ne maradjon darab:
Ezután irodai késsel vágja ki a képernyőhöz 37x69 méretű ablakot.
A hátoldalon, a vágás széle mentén ragasztunk egy kétoldalas, lehetőleg fekete szalagot:
Távolítsa el a védőpapírt a ragasztószalagról, és ragasztja rá a képernyőn:
Kívülről úgy kell kinéznie:
A képernyő alatt, kétoldalas szalaggal is rögzítjük az Arduino-t, előzetesen kivágva az USB-portot és a hálózati aljzatot:
Az Arduino aljzatok kivágásait a doboz mindkét oldalán el kell végezni, hogy az szabadon bezárható legyen:
3. lépés: Hőmérséklet-érzékelők.
A DS18B20 digitális hőmérséklet-érzékelőket fogjuk használni. Ezekkel nagy mérési pontosságot kapunk, a hiba nem haladja meg a 0,5 ° C-ot, széles -55 ... + 125 ° C hőmérsékleti tartományban. Ezenkívül a digitális érzékelő maga végzi el az összes számítást, és az Arduino egyszerűen készen áll a leolvasásokra. Az érzékelő csatlakoztatásakor ne felejtsd el a 4,7 kΩ-os húzó ellenállást a DQ és a VDD érintkezők között. Számos csatlakozási lehetőség is lehetséges. Külső erővel, véleményem szerint a legjobb megoldás, ezt fogjuk használni:
Ha szeretné, használhatja a parazita energiamódot:
Vagy továbbfejlesztett parazita étel:
Bármilyen tápegységgel az érzékelők párhuzamosan vannak csatlakoztatva:
A kicsi táblára a hőmérséklet-mérő érzékelőt helyezzük el, két gombbal együtt, amelyeket az óra és az idő beállításához használunk:
A két gomb közös vezetéke a GND-hez van csatlakoztatva, az első gomb vezetéke az A0-hoz, a másodikból az A1-hez csatlakozik.
Rögzítse egy kétoldalas szalaghoz az Arduino mellett:
Az érzékelőt, amelyet állítólag a helyiségen kívül kell elhelyezni, jobb választani egy fém-, por- és nedvességálló házban:
Számítsa ki a kívánt hosszúságú huzalot úgy, hogy az érzékelőt az ablakon kívül lógni lehessen, főleg az, hogy nem haladhatja meg az 5 métert, ha több hosszúságra van szüksége, csökkentenie kell a pull-up ellenállás értékét.
A két érzékelő DQ adatbusz-vezetékét az Arduino 5. érintkezőjéhez kell csatlakoztatni.
Vdd - +5 Arduino.
GND - GND Arduino.
4. lépés Teljesítmény.
Tápellátáshoz 6–12 V feszültségű tápegységet használhat. A tápfeszültség huzal végén forrasztja meg az Arduino hálózati csatlakozóhoz megfelelő dugót:
Vagy elhelyezhet akkumulátortartót négy „AAA”, „rózsaszín” elemhez. És csatlakoztassa a pozitív vezetéket a rekeszből a Vin Arduino-hoz, és a mínusz a GND-hez.
5. lépés: A programozási környezet előkészítése.
Először le kell töltenie és telepítenie kell az Arduino IDE szoftvert hivatalos oldal
És a vázlathoz szükséges két könyvtárat is hozzá kell adni. OneWire - szükséges a ds18b20 érzékelőkkel történő kommunikációhoz:
U8glib - információ megjelenítésére szolgál a képernyőn:
Töltse le a könyvtárat. Ezután kicsomagoljuk az archívumokat, és az archívumok tartalmát áthelyezzük a „könyvtárak” mappába, amely abban a mappában található, ahol az Arduino IDE telepítve van. Az Arduino IDE segítségével könyvtárakat is felvehet. Ehhez az archívumok kicsomagolása nélkül futtassa az Arduino IDE-t, és válassza a Vázlat menü Sketch - Connect Library menüpontját. A legördülő lista tetején válassza az "Add .Zip könyvtár hozzáadása" elemet. Jelöljük a letöltött archívumok helyét. Az összes lépés után újra kell indítania az Arduino IDE-t.
6. lépés A vázlat szerkesztése.
A hőmérséklet-érzékelők az Egyvezetékes protokoll használatával működnek, és minden eszközhöz egyedi címmel rendelkeznek - 64 bites kóddal. Nem javasolt az érzékelő keresési parancsok hozzáadása a vázlathoz. Nem kell minden alkalommal betöltenie az Arduino csuklásérzékelőket.Ezért először mindent összerakva töltse ki a vázlatot Arduino-ban, amely a Fájl menüben található - Példák - Dallas hőmérséklet - OneWireSearch. Ezután futtassa az Tools - Port Monitor programot. Arduino-nak meg kell találnia érzékelőinket, meg kell írni a címeket és a hőmérsékleti értékeket. Ezeket a címeket le kell írni vagy másolni kell valahol. Most nyissa meg az Ard_Tic_Tak_WG12864B_2_x_Term_Serial vázlatot, és keresse meg a sorokat:
byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // belső cím
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // a külső érzékelő címe
Az érzékelők helyének megfelelő címeket helyettesítjük a címeinkkel.
Óráink nem használják az RTC modult (valós idejű óra), ezért az órát beállítania kell. A kényelem kedvéért vonja vissza a sort (másodpercek jelennek meg a képernyőn):
//u8g.setPrintPos (44, 50); u8g.print (sek); // Másolatok nyomtatása a kurzus helyességének ellenőrzéséhez
Állítsa be a megfelelő időt a portmonitoron. Ehhez nyissa meg a portfigyelőt, várja meg a kezdeti hőmérsékleti mérések befejezését, és írja be az aktuális dátumot és időt "nap, hónap, év, óra, perc, másodperc" formátumban. Szóköz nélkül ossza meg a számokat vesszővel vagy pontokkal.
Ha az óra siet, akkor változtassa meg az értéket nagyobbra, azt javaslom, hogy kísérletezzen 100 egység lépésekkel. Ha elmarad, csökkentse az értéket a sorban:
if (micros () - prevmicros> 494000) {// átváltás másikra igazítás céljából 500 000 volt
Empirikusan meg kell határozni azt a számot, amelyen az óra pontosan megy. A kurzus pontosságának meghatározásához és másodpercek befejezéséhez van szükség. A szám pontos kalibrálása után a másodperc kommentálható és eltávolítható a képernyőről.
Töltse ki a vázlatot.