- Componente necesare
- Modulul PCF8591 ADC / DAC
- Pinii I2C în Raspberry Pi
- Interfațarea modulului PCF8591 ADC / DAC cu Raspberry Pi
- Program Python pentru conversie analogică la digitală (ADC)
Conversia analogică la digitală este o sarcină foarte importantă în electronica încorporată, deoarece majoritatea senzorilor furnizează ieșiri ca valori analogice și pentru a le alimenta în microcontroler care înțelege doar valorile binare, trebuie să le convertim în valori digitale. Deci, pentru a putea procesa datele analogice, microcontrolerele au nevoie de convertor analog la digital.
Unele microcontrolere au ADC încorporat, cum ar fi Arduino, MSP430, PIC16F877A, dar unele microcontrolere nu îl au ca 8051, Raspberry Pi etc. Mai jos puteți găsi diverse exemple de ADC cu diferite microcontrolere:
- Cum se utilizează ADC în Arduino Uno?
- Tutorial ADC Raspberry Pi
- Interfațarea ADC0808 cu microcontrolerul 8051
- Voltmetru digital 0-25V folosind microcontrolerul AVR
- Cum se utilizează ADC în STM32F103C8
- Cum se utilizează ADC în MSP430G2
- Cum se utilizează ADC în ARM7 LPC2148
- Utilizarea modulului ADC al microcontrolerului PIC cu MPLAB și XC8
În acest tutorial, vom învăța cum să interfațăm modulul PCF8591 ADC / DAC cu Raspberry Pi.
Componente necesare
- Raspberry-pi
- Modul ADC PCF8591
- Oală de 100K
- Cabluri jumper
Se presupune că aveți Raspberry Pi cu cel mai recent sistem de operare Raspbian instalat și știți cum să SSH în Pi utilizând un software terminal ca chitul. Dacă sunteți nou în Raspberry Pi, urmați acest articol pentru a începe cu Raspberry Pi. Totuși, dacă vă confruntați cu orice problemă, există o mulțime de tutoriale Raspberry Pi care vă pot ajuta.
Modulul PCF8591 ADC / DAC
PCF8591 este un modul convertor analogic digital pe 8 biți sau digital convertor analogic pe 8 biți, ceea ce înseamnă că fiecare pin poate citi valori analogice până la 256. Are, de asemenea, LDR și circuit termistor furnizat pe placă. Acest modul are patru intrări analogice și o ieșire analogică. Funcționează pe comunicația I 2 C, deci există pin SCL și SDA pentru ceasul serial și adresa de date seriale. Necesită tensiune de alimentare de 2,5-6V și are un curent de stand-by redus. De asemenea, putem manipula tensiunea de intrare reglând butonul potențiometrului de pe modul. Există, de asemenea, trei săritori pe tablă. J4 este conectat pentru a selecta circuitul de acces la termistor, J5 este conectat pentru a selecta circuitul de acces la rezistorul LDR / fotoiar J6 este conectat pentru a selecta circuitul reglabil de acces la tensiune. Există două LED-uri la bordul D1 și D2-D1 arată intensitatea tensiunii de ieșire și D2 arată intensitatea tensiunii de alimentare. Cu cât tensiunea de ieșire sau de alimentare este mai mare, cu atât este mai mare intensitatea LED-urilor D1 sau D2. De asemenea, puteți testa aceste LED-uri utilizând un potențiometru pe VCC sau pe pinul AOUT.
Pinii I2C în Raspberry Pi
Pentru a utiliza PCF8591 cu Raspberry Pi, primul lucru de făcut este să cunoașteți pinii portului Raspberry Pi I2C și să configurați portul I2C în Raspberry pi.
Mai jos este diagrama Pin a Raspberry Pi 3 Model B +, iar pinii I2C GPIO2 (SDA) și GPIO3 (SCL) sunt utilizați în acest tutorial.
Configurarea I2C în Raspberry Pi
În mod implicit, I2C este dezactivat în Raspberry Pi. Deci, mai întâi trebuie activat. Pentru a activa I2C în Raspberry Pi
1. Mergeți la terminal și tastați sudo raspi-config.
2. Acum apare Raspberry Pi Software Configuration Tool.
3. Selectați Opțiuni de interfață și apoi activați I2C.
4. După activarea I2C, reporniți Pi.
Scanarea adresei I2C a PCF8591 utilizând Raspberry Pi
Acum, pentru a începe comunicarea cu IC-ul PCF8591, Raspberry Pi trebuie să-și cunoască adresa I2C. Pentru a găsi adresa, conectați mai întâi pinul SDA și SCL al PCF8591 la pinul SDA și SCL al Raspberry Pi. De asemenea, conectați pinii + 5V și GND.
Acum deschideți terminalul și tastați comanda de mai jos pentru a cunoaște adresa dispozitivului I2C conectat, sudo i2cdetect –y 1 sau sudo i2cdetect –y 0
După ce ați găsit adresa I2C, acum este timpul să construiți circuitul și să instalați bibliotecile necesare pentru utilizarea PCF8591 cu Raspberry Pi.
Interfațarea modulului PCF8591 ADC / DAC cu Raspberry Pi
Diagrama circuitului pentru interfațarea PCF8591 cu Raspberry Pi este simplă. În acest exemplu de interfață, vom citi valorile analogice de la oricare dintre pinii analogici și le vom arăta pe terminalul Raspberry Pi. Putem schimba valorile folosind un pot de 100K.
Conectați VCC și GND la GPIO2 și GPIO ale Raspberry Pi. Apoi, conectați SDA și SCL la GPIO3 și respectiv GPIO5. În cele din urmă, conectați un pot de 100K cu AIN0. De asemenea, puteți adăuga un ecran LCD de 16x2 pentru a afișa valorile ADC în loc să le afișați pe terminal. Aflați mai multe despre interfața LCD 16x2 cu Raspberry Pi aici.
Program Python pentru conversie analogică la digitală (ADC)
Programul complet și videoclipul de lucru sunt date la sfârșitul acestui tutorial.
În primul rând, importați biblioteca smbus pentru comunicația de autobuz I 2 C și biblioteca de timp pentru a oferi un timp de repaus între imprimarea valorii.
import timp de import smbus
Acum definiți câteva variabile. Prima variabilă conține adresa magistralei I 2 C, iar a doua variabilă conține adresa primului pin de intrare analogic.
adresa = 0x48 A0 = 0x40
Apoi, am creat un obiect al funcției SMBus (1) a bibliotecii smbus
autobuz = smbus.SMBus (1)
Acum, în timp ce prima linie îi spune IC să facă măsurarea analogică la primul pin analogic de intrare. A doua linie stochează adresa citită la pinul analogic într-o valoare variabilă. În cele din urmă tipăriți valoarea.
în timp ce este adevărat: bus.write_byte (address, A0) value = bus.read_byte (address) print (value) time.sleep (0.1)
Acum salvați în cele din urmă codul python într-un fișier cu entensie.py și rulați codul în terminalul raspberry Pi folosind comanda de mai jos ”
python filename.py
Înainte de a rula codul, asigurați-vă că ați activat comunicarea I 2 C și că toți pinii sunt conectați așa cum se arată în diagramă, altfel va apărea erori. Valorile analogice trebuie să înceapă să apară pe terminal ca mai jos. Reglați butonul potului și veți vedea schimbarea treptată a valorilor. Aflați mai multe despre rularea programului în
Codul complet Python și videoclipul sunt prezentate mai jos.