- ADC0804 és Raspberry Pi:
- LM35 hőmérséklet-érzékelő:
- Szükséges alkatrészek:
- Áramkör és működési magyarázat:
- Programozási magyarázat:
A Raspberry Pi bemutató sorozatunkban többnyire a Raspberry Pi-vel összekötő összes alapkomponensre kiterjedt. Az összes oktatóanyagot egyszerűen és részletesen áttekintettük, hogy bárki, függetlenül attól, hogy a Raspberry Pi-vel dolgozott-e vagy sem, könnyen tanulhat ebből a sorozatból. Az összes oktatóanyag elvégzése után néhány magas szintű projektet készíthet a Raspberry Pi használatával.
Tehát itt tervezzük az első alkalmazást a korábbi oktatóanyagok alapján. Az első alapvető alkalmazás a Raspberry Pi által készített olvasótermi hőmérséklet. A számítógépen pedig figyelemmel kísérheti az olvasmányokat.
Amint arról a korábbi oktatóanyagok is beszámoltak, a Raspberry Pi-n belül nincsenek ADC-csatornák. Tehát, ha bármilyen analóg érzékelőt össze akarunk kapcsolni, szükségünk van egy ADC átalakító egységre. Az egyik oktatóanyagunkban az ADC0804 chipet összekötöttük a Raspberry Pi-vel, hogy analóg értéket olvassunk. Tehát menjen át rajta, mielőtt felépítené ezt a szobahőmérséklet-hőmérőt.
ADC0804 és Raspberry Pi:
Az ADC0804 egy chip, amelyet analóg jel 8 bites digitális adatgá történő átalakítására terveztek. Ez a chip az ADC egyik legnépszerűbb sorozata. Ez egy 8 bites konverziós egység, tehát vannak értékeink vagy 0–255 értékünk. Ennek a chipnek a felbontása az általunk választott referenciafeszültség alapján változik, erről később beszélünk. Az alábbiakban látható az ADC0804 pinout-ja:
Most egy másik fontos dolog az, hogy az ADC0804 5 V feszültségen működik, és így 5 V logikai jelként szolgáltatja a kimenetet. 8 tűs kimenetben (amely 8 bitet képvisel) minden pin + 5 V kimenetet biztosít a logika'1 'ábrázolásához. Tehát a probléma az, hogy a PI logika + 3,3 V, tehát nem adhat + 5 V logikát a PI 3,3 V GPIO tűjéhez. Ha + 5V-t ad a PI bármely GPIO-tűjéhez, a kártya megsérül.
Tehát a logikai szint + 5V-ról történő csökkentéséhez feszültségosztó áramkört fogunk használni. Megbeszéltük a Feszültségosztó áramkört, korábban keressük a további tisztázást. Amit meg fogunk tenni, az az, hogy két ellenállást használunk az + 5 V-os logika 2 * 2,5 V-os logikára történő felosztására. Tehát az osztás után + 2,5v logikát adunk a PI-nek. Tehát, amikor az ADC0804 bemutatja az '1' logikát, + 5V helyett + 2,5V-t fogunk látni a PI GPIO Pin-en.
LM35 hőmérséklet-érzékelő:
Most Reading hőmérséklet szoba, szükségünk van egy érzékelő. Itt az LM35 hőmérséklet-érzékelőt fogjuk használni. A hőmérsékletet általában „Celsius-fokban” vagy „Fahrenheitben” mérik. Az „LM35” érzékelő kimenetet nyújt Celsius fokban.
Amint az ábrán látható, az LM35 három tűs tranzisztorszerű eszköz. A csapok száma:
PIN1 = Vcc - Tápellátás (+ 5V-hoz csatlakoztatva)
PIN2 = Jel vagy kimenet (ADC chiphez csatlakozik)
PIN3 = föld (földre csatlakozik)
Ez az érzékelő változó feszültséget biztosít a kimeneten, a hőmérséklet alapján. Minden +1 Celsius-fokos hőmérséklet-emelkedésnél + 10 mV-mal nagyobb feszültség lesz a kimeneti csapon. Tehát, ha a hőmérséklet 0 ° C, az érzékelő kimenete 0 V lesz, ha a hőmérséklet 10 ° C, akkor az érzékelő kimenete + 100 mV, ha a hőmérséklet 25 ° C, az érzékelő kimenete + 250 mV lesz.
Szükséges alkatrészek:
Itt a Raspberry Pi 2 Model B-t használjuk Raspbian Jessie operációs rendszerrel. Az összes alapvető hardver- és szoftverkövetelményt korábban megbeszéltük, megnézheti a Raspberry Pi bevezetőjében, a szükségesek kivételével:
- Csatlakozó csapok
- 1KΩ ellenállás (17 darab)
- 10K pot
- 0,1µF kondenzátor
- 100µF kondenzátor
- 1000µF kondenzátor
- ADC0804 IC
- LM35 hőmérséklet-érzékelő
- Kenyérlap
Áramkör és működési magyarázat:
A Raspberry ADC0804 és LM35 csatlakoztatásához szükséges csatlakozásokat az alábbi kapcsolási rajz mutatja.
Az LM35 kimenetnek sok feszültségingadozása van; tehát egy 100uF kondenzátort használnak a kimenet simításához, amint az az ábrán látható.
Az ADC-nél mindig sok a zaj, ez a zaj nagyban befolyásolhatja a teljesítményt, ezért a zajszűréshez 0,1uF kondenzátort használunk. E nélkül sok ingadozás lesz a kimeneten.
A chip RC (Resistor-Capacitor) oszcillátorórán működik. Amint azt az áramköri ábra mutatja , a C2 és R20 egy Órát alkotnak. Fontos megjegyezni, hogy a C2 kondenzátor alacsonyabb értékre állítható a magasabb ADC konverziós arány érdekében. Nagyobb sebesség esetén azonban csökken a pontosság. Tehát, ha az alkalmazás nagyobb pontosságot igényel, válassza a nagyobb értékű kondenzátort, nagyobb sebességhez pedig az alacsonyabb értékű kondenzátort.
Mint korábban elmondtuk, az LM35 + 10 mV-ot biztosít minden centigrádhoz. Az LM35-vel mérhető maximális hőmérséklet 150º Celsius fok. Tehát az LM35 kimeneti terminálon legfeljebb 1,5 V lesz. De az ADC0804 alapértelmezett referenciafeszültsége + 5 V. Tehát ha ezt a referenciaértéket használjuk, a kimenet felbontása alacsony lesz, mert a digitális kimeneti tartomány maximum (5 / 1,5) 34% -át használnánk.
Szerencsére az ADC0804 rendelkezik egy állítható Vref tűvel (PIN9), amint az a fenti Pin diagramján látható. Tehát a chip Vref-jét + 2 V-ra állítjuk. A Vref + 2V beállításához + 1V (VREF / 2) feszültséget kell biztosítanunk a PIN9-nél. Itt 10K potot használunk, hogy a PIN9 feszültségét + 1V-ra állítsuk. Használja a voltmérőt a pontos feszültség eléréséhez.
Korábban az LM35 hőmérséklet-érzékelőt használtuk a szobahőmérséklet leolvasására Arduino és AVR mikrokontrollerrel. Az Arduino segítségével ellenőrizze a páratartalom és a hőmérséklet mérését is
Programozási magyarázat:
Miután minden a kapcsolási rajz szerint össze van kapcsolva, bekapcsolhatjuk a PI-t, hogy PYHTON-ba írjuk a programot.
Néhány parancsról fogunk beszélni, amelyeket a PYHTON programban fogunk használni, GPIO fájlt fogunk importálni a könyvtárból, az alábbi funkció segítségével programozhatjuk a PI GPIO csapjait. A „GPIO” -ot „IO” -ra is átnevezzük, így a programban, amikor csak GPIO-csapokra akarunk utalni, az „IO” szót fogjuk használni.
importálja az RPi.GPIO-t IO-ként
Néha, amikor a GPIO csapok, amelyeket megpróbálunk használni, más funkciókat is elláthatnak. Ebben az esetben figyelmeztetéseket kapunk a program futtatása közben. Az alábbi parancs arra utasítja a PI-t, hogy figyelmen kívül hagyja a figyelmeztetéseket, és folytassa a programot.
IO.setwarnings (hamis)
Hivatkozhatunk a PI GPIO csapjaira, akár a fedélzeten található PIN-kód, akár a funkciójuk száma alapján. A táblán lévő „PIN 29” -hez hasonlóan a „GPIO5”. Tehát itt elmondjuk, hogy vagy itt fogjuk ábrázolni a „29” vagy „5” betűket.
IO.setmode (IO.BCM)
8 csapot állítunk be bemeneti csapokként. Ezekkel a csapokkal 8 bit ADC adatot fogunk felismerni.
IO.setup (4, IO.IN) IO.setup (17, IO.IN) IO.setup (27, IO.IN) IO.setup (22, IO.IN) IO.setup (5, IO.IN) IO.setup (6, IO.IN) IO.setup (13, IO.IN) IO.setup (19, IO.IN)
Abban az esetben, ha a zárójelben szereplő feltétel igaz, a cikluson belüli utasítások egyszer végrehajtásra kerülnek. Tehát, ha a GPIO 19. tű magasra kerül, akkor az IF cikluson belüli utasítások egyszer végrehajtásra kerülnek. Ha a GPIO 19 tű nem megy magasra, akkor az IF cikluson belüli utasítások nem kerülnek végrehajtásra.
ha (IO.input (19) == Igaz):
Az alábbi parancsot örök ciklusként használják, ezzel a paranccsal a ciklus belsejében lévő utasítások folyamatosan végrehajtódnak.
Míg 1:
A kód további magyarázatát az alábbi Kód szakasz tartalmazza.
A program megírása után ideje végrehajtani. A program futtatása előtt összefoglalóként beszélje meg, mi történik az áramkörben. Az első LM35 érzékelő érzékeli a helyiség hőmérsékletét és analóg feszültséget biztosít a kimenetén. Ez a változó feszültség a hőmérsékletet lineárisan ábrázolja + 10 mV / ºC-val. Ezt a jelet az ADC0804 chipre táplálják, ez a chip az analóg értéket digitális értékdé alakítja 255/200 = 1,275 / 10mv-os vagy 1,275-os számmal 1degree-re. Ezt a számlálást a PI GPIO veszi át. A program a számlálást hőmérsékleti értékre konvertálja és megjeleníti a képernyőn. A PI által leírt tipikus hőmérséklet az alábbiakban látható, Ezért mi ez a Raspberry Pi hőmérséklet-monitor.