- ADC0804 és Raspberry Pi:
- Szükséges alkatrészek:
- Áramkör magyarázat:
- Programozási magyarázat:
- Dolgozó:
A Raspberry Pi egy ARM architektúra processzor alapú tábla, amelyet elektronikus mérnököknek és hobbistáknak terveztek. A PI az egyik legmegbízhatóbb projektfejlesztési platform odakinn. Nagyobb processzorsebességgel és 1 GB RAM-mal a PI számos nagy horderejű projekthez használható, például képfeldolgozáshoz és a tárgyak internetéhez.
Bármely nagy horderejű projekt megvalósításához meg kell érteni a PI alapvető funkcióit. Ezekben az oktatóanyagokban a Raspberry Pi összes alapvető funkciójára kitérünk. Minden oktatóanyagban megvitatjuk a PI egyik funkcióját. A Raspberry Pi oktatósorozat végére egyedülálló projekteket készíthet. Nézze át az alábbi oktatóanyagokat:
- Az első lépések a Raspberry Pi-vel
- Raspberry Pi konfiguráció
- LED villog
- Málna Pi gomb összekapcsolása
- Raspberry Pi PWM generáció
- Az egyenáramú motor vezérlése a Raspberry Pi segítségével
- Léptetőmotor-vezérlés Raspberry Pi-vel
- Interfacing Shift Register a Raspberry Pi-vel
Ebben az oktatóanyagban összekapcsolunk egy ADC (Analog-Digital Conversion) chipet a Raspberry Pi-vel. Ismerjük az analóg összes paraméterét, vagyis folyamatosan változnak az idő múlásával. Mondjuk a helyiség hőmérsékletének példányát, a helyiség hőmérséklete az idő függvényében folyamatosan változik. Ez a hőmérséklet decimális számokkal van megadva. De a digitális világban nincsenek tizedesjegyek, ezért az Analog értéket digitálisra kell konvertálnunk. Ez az átalakítási folyamat ADC technikával történik. Tudjon meg többet az ADC-ről itt: Bevezetés az ADC0804-be
ADC0804 és Raspberry Pi:
A normál vezérlők rendelkeznek ADC csatornákkal, de a PI esetében nincsenek ADC csatornák, amelyeket belsőleg biztosítanának. Tehát, ha bármilyen analóg érzékelőt össze akarunk kapcsolni, szükségünk van egy ADC átalakító egységre. Tehát ebből a célból az ADC0804 interfészre megyünk a Raspberry Pi-vel.
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. Legfeljebb 5 V mérési feszültség esetén minden 19,5 mV-ra változik. 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.
Tudjon meg többet a Raspberry Pi GPIO Pins-jéről itt, és nézze át korábbi oktatóanyagainkat.
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
- 220Ω vagy 1KΩ ellenállás (17 darab)
- 10K pot
- 0,1µF kondenzátor (2 db)
- ADC0804 IC
- Kenyérlap
Áramkör magyarázat:
+ 5v tápfeszültségen működik, és változtatható feszültségtartományt képes mérni 0-5V tartományban.
Az ADC0804 és a Raspberry PI összekötésére szolgáló kapcsolatokat a fenti kapcsolási rajz mutatja.
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.
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 program további magyarázatát az alábbi Kód szakasz tartalmazza.
Dolgozó:
A program megírása és végrehajtása után a képernyőn megjelenik a '0' jel. A "0" azt jelenti, hogy 0 volt a bemenetnél.
Ha beállítjuk a chiphez csatlakoztatott 10K potot, akkor a képernyőn láthatjuk az értékek változását. A képernyőn látható értékek folyamatosan görgetnek, ezeket a PI értékei digitálisan értékelik.
Tegyük fel, hogy ha a potot eljutjuk a középpontig, akkor az ADC0804 bemenetnél + 2,5 V van. Tehát 128-at látunk a képernyőn, az alábbiak szerint.
+ 5V analóg érték esetén 255 lesz.
Tehát a pot változtatásával 0 és + 5 V közötti feszültséget változtatunk az ADC0804 bemeneten. Ezzel a PI-vel 0 és 255 közötti értékeket olvashatunk. Az értékeket a képernyőre nyomtatja.
Tehát összekötöttük az ADC0804-et a Raspberry Pi-vel.