- Zahtevane komponente
- Modul ADC / DAC PCF8591
- I2C zatiči v Raspberry Pi
- Povezava modula ADC / DAC PCF8591 z Raspberry Pi
- Program Python za analogno v digitalno pretvorbo (ADC)
Analogna v digitalno pretvorbo je zelo pomembna naloga vgrajene elektronike, saj večina senzorjev zagotavlja izhodne podatke kot analogne vrednosti in jih za napajanje v mikrokrmilnik, ki razume le binarne vrednosti, moramo pretvoriti v digitalne vrednosti. Da bi lahko mikrokrmilniki lahko obdelali analogne podatke, potrebujejo analogno-digitalni pretvornik.
Nekateri mikrokrmilniki imajo vgrajen ADC, kot so Arduino, MSP430, PIC16F877A, nekateri mikrokrmilniki pa ga nimajo, na primer 8051, Raspberry Pi itd. Spodaj najdete različne primere ADC z različnimi mikrokrmilniki:
- Kako uporabljati ADC v Arduino Uno?
- Vadnica za ADC Raspberry Pi
- Povezava ADC0808 z mikrokrmilnikom 8051
- 0-25V digitalni voltmeter z uporabo mikrokrmilnika AVR
- Kako uporabljati ADC v STM32F103C8
- Kako uporabljati ADC v MSP430G2
- Kako uporabljati ADC v ARM7 LPC2148
- Uporaba modula ADC mikrokrmilnika PIC z MPLAB in XC8
V tej vadnici se bomo naučili, kako povezati modul ADC / DAC PCF8591 z Raspberry Pi.
Zahtevane komponente
- Raspberry-pi
- PCF8591 ADC modul
- 100K lonec
- Jumper kabli
Predpostavlja se, da imate v njem nameščen Raspberry Pi z najnovejšim operacijskim sistemom Raspbian in veste, kako SSH vstaviti v Pi s pomočjo terminalske programske opreme, kot je kit. Če šele uporabljate Raspberry Pi, sledite temu članku, če želite začeti z Raspberry Pi. Še vedno, če se soočate s kakršno koli težavo, vam lahko pomagamo na veliko vadnic Raspberry Pi.
Modul ADC / DAC PCF8591
PCF8591 je 8-bitni analogno-digitalni ali 8-bitni digitalno-analogni pretvorniški modul, kar pomeni, da lahko vsak zatič bere analogne vrednosti do 256. Na plošči je na voljo tudi LDR in vezje termistorja. Ta modul ima štiri analogne vhode in en analogni izhod. Deluje na komunikaciji I 2 C, zato obstajajo zatiči SCL in SDA za serijsko uro in naslov serijskih podatkov. To zahteva 2.5-6V napajalne napetosti in imajo nizko stand-by tok. Z vhodno napetostjo lahko manipuliramo tudi z nastavitvijo gumba potenciometra na modulu. Na deski so tudi trije skakalci. J4 je priključen za izbiro vezja za dostop do termistorja, J5 je povezan za izbiro vezja za dostop LDR / foto uporain J6 je priključen za izbiro nastavljivega tokokroga za dostop. Na krovu D1 in D2-D1 sta dve LED diodi, ki prikazujeta intenziteto izhodne napetosti, D2 pa prikazuje intenzivnost napajalne napetosti. Višja kot je izhodna ali napajalna napetost, večja je jakost LED D1 ali D2. Te LED lahko preizkusite tudi z uporabo potenciometra na VCC ali na zatiču AOUT.
I2C zatiči v Raspberry Pi
Če želite uporabiti PCF8591 z Raspberry Pi, morate najprej vedeti priključke vrat I2C Raspberry Pi in konfigurirati vrata I2C v Raspberry pi.
Spodaj je shema pinov modela Raspberry Pi 3 Model B +, v tej vadnici pa so uporabljeni zatiči I2C GPIO2 (SDA) in GPIO3 (SCL).
Konfiguriranje I2C v Raspberry Pi
Privzeto je I2C v Raspberry Pi onemogočen. Torej najprej mora biti omogočena. Omogočanje I2C v Raspberry Pi
1. Pojdite na terminal in vnesite sudo raspi-config.
2. Zdaj se prikaže orodje za konfiguracijo programske opreme Raspberry Pi.
3. Izberite Interfacing options in nato omogočite I2C.
4. Po omogočitvi I2C znova zaženite Pi.
Optično branje naslova I2C PCF8591 z uporabo Raspberry Pi
Zdaj, da začne komunikacija s PCF8591 IC, mora Raspberry Pi poznati svoj naslov I2C. Najti naslov najprej priključite SDA in SCL pin PCF8591 na SDA in SCL pin Raspberry Pi. Povežite tudi zatiča + 5V in GND.
Zdaj odprite terminal in vnesite spodnji ukaz, če želite vedeti naslov povezane naprave I2C, sudo i2cdetect –y 1 ali sudo i2cdetect –y 0
Po iskanju naslova I2C je zdaj čas za izdelavo vezja in namestitev potrebnih knjižnic za uporabo PCF8591 z Raspberry Pi.
Povezava modula ADC / DAC PCF8591 z Raspberry Pi
Shema vezja za povezovanje PCF8591 z Raspberry Pi je preprosta. V tem primeru povezovanja bomo prebrali analogne vrednosti s katerega koli analognega zatiča in jih prikazali na terminalu Raspberry Pi. Vrednosti lahko spremenimo z uporabo 100K lonca.
VCC in GND povežite z GPIO2 in GPIO Raspberry Pi. Nato povežite SDA in SCL na GPIO3 oziroma GPIO5. Na koncu 100K lonec povežite z AIN0. Za prikaz vrednosti ADC lahko dodate tudi LCD 16x2, namesto da bi ga prikazovali na terminalu. Več o povezovanju 16x2 LCD z Raspberry Pi preberite tukaj.
Program Python za analogno v digitalno pretvorbo (ADC)
Celoten program in delovni video je podan na koncu tega učbenika.
Najprej uvozite knjižnico smbus za komunikacijo vodila I 2 C in knjižnico časa, da dobite čas mirovanja med tiskanjem vrednosti.
uvoz smbus čas uvoza
Zdaj definirajte nekaj spremenljivk. Prva spremenljivka vsebuje naslov vodila I 2 C, druga spremenljivka pa naslov prvega analognega vhodnega zatiča.
naslov = 0x48 A0 = 0x40
Nato smo naredili objekt funkcije SMBus (1) knjižnice smbus
avtobus = smbus.SMBus (1)
Zdaj, medtem ko prva vrstica pove IC, da izvede analogno meritev na prvem analognem vhodnem zatiču. Druga vrstica shrani naslov, prebran na analognem zatiču, v spremenljivo vrednost . Končno natisnite vrednost.
medtem ko je True: bus.write_byte (naslov, A0) vrednost = bus.read_byte (naslov) print (value) time.sleep (0.1)
Zdaj končno shranite kodo python v neko datoteko z razširitvijo.py in jo zaženite v terminalu Raspberry Pi z uporabo spodnjega ukaza. "
python filename.py
Pred zagonom kode se prepričajte, da ste omogočili komunikacijo I 2 C in da so vsi zatiči povezani, kot je prikazano na diagramu, sicer se prikažejo napake. Analogne vrednosti se morajo začeti prikazovati na terminalu, kot spodaj. Prilagodite gumb lonca in videli boste postopno spreminjanje vrednosti. Preberite več o zagonu programa v
Popolna koda pythona in video sta podana spodaj.