- Szükséges alkatrészek
- PCF8591 ADC / DAC modul
- I2C csapok a Raspberry Pi-ben
- Összekötő PCF8591 ADC / DAC modul és Raspberry Pi
- Python program analóg-digitális átalakításhoz (ADC)
Az analóg-digitális átalakítás nagyon fontos feladat a beágyazott elektronikában, mivel az érzékelők többsége analóg értékként szolgáltatja a kimenetet, és csak egy bináris értékeket megértő mikrovezérlőbe táplálja őket, ezeket digitális értékekké kell átalakítanunk. Tehát az analóg adatok feldolgozásához a mikrovezérlőknek analóg-digitális átalakítóra van szükségük.
Néhány mikrovezérlő beépítette az ADC-t, mint az Arduino, az MSP430, a PIC16F877A, de néhány mikrovezérlőnél nincs ilyen, mint a 8051, a Raspberry Pi stb., És néhány külső analóg-digitális átalakító IC-t kell használnunk, például ADC0804, ADC0808. Az alábbiakban különféle példákat találhat az ADC-ről különböző mikrovezérlőkkel:
- Hogyan kell használni az ADC-t az Arduino Uno-ban?
- Raspberry Pi ADC bemutató
- Az ADC0808 összekapcsolása a 8051 mikrokontrollerrel
- 0-25V digitális feszültségmérő AVR mikrokontrollerrel
- Az ADC használata az STM32F103C8 fájlban
- Az ADC használata az MSP430G2-ben
- Az ADC használata az ARM7 LPC2148 fájlban
- A PIC mikrokontroller ADC moduljának használata MPLAB-mal és XC8-mal
Ebben az oktatóanyagban megtanuljuk, hogyan kell összekapcsolni a PCF8591 ADC / DAC modult a Raspberry Pi-vel.
Szükséges alkatrészek
- Raspberry Pi
- PCF8591 ADC modul
- 100K pot
- Jumper kábelek
Feltételezzük, hogy Raspberry Pi-t telepített a legújabb Raspbian operációs rendszerrel, és tudja, hogyan kell SSH-t SS-be juttatni a Pi-be egy olyan terminálszoftverrel, mint a gitt. Ha még nem ismeri a Raspberry Pi alkalmazást, akkor kövesse ezt a cikket a Raspberry Pi használatának megkezdéséhez. Mégis, ha bármilyen problémával szembesül, rengeteg Raspberry Pi oktatóanyag segíthet.
PCF8591 ADC / DAC modul
A PCF8591 egy 8 bites analóg-digitális vagy 8 bites digitális-analóg átalakító modul, vagyis minden érintkező 256-ig képes leolvasni az analóg értékeket. Az alaplapon található LDR és termisztor áramkör is. Ez a modul négy analóg bemenettel és egy analóg kimenettel rendelkezik. I 2 C kommunikáción működik, ezért vannak SCL és SDA csapok a soros óra és a soros adatcím számára. 2,5-6 V tápfeszültséget igényel, és alacsony a készenléti áram. A bemeneti feszültséget a modul potenciométer gombjának beállításával is manipulálhatjuk. A táblán három ugró is található. J4 csatlakozik a termisztor hozzáférési áramkörének kiválasztásához, J5 csatlakozik az LDR / fotóellenállás hozzáférési áramkörének kiválasztásáhozés a J6 csatlakozik az állítható feszültség hozzáférési áramkör kiválasztásához. Két LED van a D1 fedélzeten, és D2-D1 a kimeneti feszültség intenzitását, a D2 pedig a tápfeszültség intenzitását mutatja. Nagyobb kimeneti vagy tápfeszültség, nagyobb a D1 vagy D2 LED intenzitása. Ezeket a LED-eket kipróbálhatja a VCC vagy az AOUT tű potenciométerével is.
I2C csapok a Raspberry Pi-ben
Annak érdekében, hogy a PCF8591- et használhassa a Raspberry Pi-vel, az első dolog, hogy ismerje a Raspberry Pi I2C port csapjait és konfigurálja az I2C portot a Raspberry pi-ben.
Az alábbiakban a Raspberry Pi 3 B + modell tűdiagramja látható, és az I2C GPIO2 (SDA) és a GPIO3 (SCL) csapokat használjuk ebben az oktatóanyagban.
Az I2C beállítása Raspberry Pi-ben
Alapértelmezés szerint az I2C le van tiltva a Raspberry Pi alkalmazásban. Tehát először engedélyezni kell. Az I2C engedélyezése a Raspberry Pi-ben
1. Lépjen a terminálhoz, és írja be a sudo raspi-config parancsot.
2. Most megjelenik a Raspberry Pi szoftverkonfiguráló eszköz.
3. Válassza az Interfacing opciókat, majd engedélyezze az I2C-t.
4. Az I2C engedélyezése után indítsa újra a Pi-t.
A PCF8591 I2C címének beolvasása a Raspberry Pi segítségével
A PCF8591 IC-vel való kommunikáció megkezdéséhez a Raspberry Pi-nek ismernie kell az I2C címét. A cím megkereséséhez először csatlakoztassa a PCF8591 SDA és SCL tűjét a Raspberry Pi SDA és SCL tűjéhez. Csatlakoztassa a + 5V és a GND csapokat is.
Most nyissa meg a terminált, és írja be az alábbi parancsot a csatlakoztatott I2C eszköz címének megismeréséhez, sudo i2cdetect –y 1 vagy sudo i2cdetect –y 0
Miután megtalálta az I2C címet, itt az ideje, hogy felépítse az áramkört és telepítse a PCF8591 Raspberry Pi használatához szükséges könyvtárakat.
Összekötő PCF8591 ADC / DAC modul és Raspberry Pi
A PCF8591 és a Raspberry Pi összekapcsolásának kapcsolási rajza egyszerű. Ebben az összekötő példában az analóg értékeket leolvassuk bármelyik analóg csapról, és megmutatjuk a Raspberry Pi terminálon. 100K pot segítségével megváltoztathatjuk az értékeket.
Csatlakoztassa a VCC-t és a GND-t a Raspberry Pi GPIO2-hez és GPIO-jához. Ezután csatlakoztassa az SDA-t és az SCL-t a GPIO3-hoz, illetve a GPIO5-höz. Végül csatlakoztasson egy 100K-os edényt az AIN0-hoz. Hozzáadhat 16x2 LCD-t is az ADC-értékek megjelenítéséhez ahelyett, hogy a Terminálon jelenítené meg. Itt többet megtudhat a 16x2 LCD és a Raspberry Pi összekapcsolásáról.
Python program analóg-digitális átalakításhoz (ADC)
A teljes program és a működő videó a bemutató végén található.
Először importálja az smbus könyvtárat az I 2 C busz kommunikációhoz és az időkönyvtárhoz , hogy alvási időt biztosítson az érték nyomtatása között.
import smbus import idő
Most adjon meg néhány változót. Az első változó tartalmazza az I 2 C busz címét, a második változó pedig az első analóg bemeneti tű címét.
cím = 0x48 A0 = 0x40
Ezután készítettünk egy objektumot az SMBus (1) függvényből a könyvtár smbus-jából
busz = smbus. SMBus (1)
Most, míg az első sor azt mondja az IC-nek, hogy végezze el az analóg mérést az első analóg bemeneti tűnél. A második sor az analóg csapon olvasott címet változó értékben tárolja. Végül nyomtassa ki az értéket.
míg True: bus.write_byte (address, A0) value = bus.read_byte (address) print (value) time.sleep (0.1)
Most végül mentse el a python kódot valamilyen fájlba,.py-vel, és futtassa a kódot a málna Pi terminálban az alábbi paranccsal ”
python fájlnév.py
A kód futtatása előtt ellenőrizze, hogy engedélyezte-e az I 2 C kommunikációt, és az összes érintkező csatlakozik-e az ábrán látható módon, különben hibákat mutat. Az analóg értékeknek el kell kezdenie megjelenni a terminálon, mint az alábbiak. Állítsa be a fazék gombját, és látni fogja az értékek fokozatos változását. További információ a program futtatásáról
A teljes python kód és videó alább található.