Analogno u digitalno pretvaranje vrlo je važan zadatak u ugrađenoj elektronici, budući da većina senzora daje izlaz kao analogne vrijednosti i da bi ih uložili u mikrokontroler koji razumije samo binarne vrijednosti, moramo ih pretvoriti u digitalne vrijednosti. Da bi mikrokontroleri mogli obrađivati analogne podatke, trebaju analogni u digitalni pretvarač.
Neki mikrokontroleri imaju ugrađeni ADC poput Arduina, MSP430, PIC16F877A, ali neki mikrokontroleri ga nemaju poput 8051, Raspberry Pi itd., A mi moramo koristiti neke vanjske IC-ove analognog u digitalni pretvarač poput ADC0804, ADC0808. Ispod možete pronaći razne primjere ADC-a s različitim mikrokontrolerima:
- Kako koristiti ADC u Arduino Uno?
- Vodič za ADC za Raspberry Pi
- Povezivanje ADC0808 s 8051 mikrokontrolerom
- 0-25V digitalni voltmetar pomoću AVR mikrokontrolera
- Kako koristiti ADC u STM32F103C8
- Kako koristiti ADC u MSP430G2
- Kako koristiti ADC u ARM7 LPC2148
- Korištenje ADC modula PIC mikrokontrolera s MPLAB i XC8
U ovom uputstvu provjerit ćemo kako povezati PCF8591 ADC / DAC modul s Arduinom.
Potrebne komponente
- Arduino UNO
- ADF modul PCF8591
- Pot 100K
- Jumper kabeli
PCF8591 ADC / DAC modul
PCF8591 je 8-bitni analogno-digitalni ili 8-bitni digitalno-analogni pretvarački modul, što znači da svaki pin može čitati analogne vrijednosti do 256. Na ploči također ima LDR i termistorski krug. Ovaj modul ima četiri analogna ulaza i jedan analogni izlaz. Radi na I 2 C komunikaciji, tako da postoje SCL i SDA pinovi za serijski sat i adresu serijskih podataka. Potreban mu je naponski napon od 2,5-6V i mala je struja u stanju pripravnosti. Također možemo manipulirati ulaznim naponom podešavanjem gumba potenciometra na modulu. Na ploči su i tri skakača. J4 je spojen za odabir pristupnog kruga termistora, J5 je spojen za odabir pristupnog kruga LDR / foto otpornika i J6 je spojen za odabir podesivog naponskog pristupnog kruga. Za pristup ovim krugovima morate koristiti adrese ovih kratkospojnika: 0x50 za J6, 0x60 za J5 i 0x70 za J4. Na ploči D1 nalaze se dvije LED diode, a D2-D1 prikazuje intenzitet izlaznog napona, a D2 intenzitet napona napajanja. Što je veći izlazni ili opskrbni napon, veći je i intenzitet LED D1 ili D2. Također možete testirati ove LED diode pomoću potenciometra na VCC ili na AOUT pinu.

Povezivanje modula ADC / DAC PCF8591 s Arduinom
Kompletan program i radni videa daje na kraju ovog vodiča.
Prvo, moramo definirati knjižnicu za I 2 C komunikaciju i LCD zaslon.
#include
Zatim definirajte neke makronaredbe. Prva makronaredba je za definiranje adrese sabirnice podataka za IC, a druga makronaredba za definiranje adrese prvog ulaznog pina modula, gdje je dan ulaz iz lonca.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
Zatim definirajte pin veze LCD-a s Arduinom i inicijalizirajte vrijednost koju dobivamo na analognom pinu.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LCD LiquidCrystal (rs, en, d4, d5, d6, d7); int Vrijednost = 0;
Sada, idemo na funkciju postavljanja . Ovdje smo u prvom retku inicijalizirali komunikaciju I 2 C. A u drugom smo retku inicijalizirali LCD zaslon na kojem ispisujemo analogne vrijednosti. Ovdje saznajte više o povezivanju LCD-a 16x2 s Arduinom.
void setup () { Wire.begin (); lcd.početak (16,2); }
U funkciji petlje , prvi redak započinje prijenos, tj. Započinje PCF8591. Drugi redak govori IC-u da izvrši analogno mjerenje na prvom analognom ulaznom pinu. Treća linija završava prijenos, a četvrta linija dobiva izmjerene podatke s analognog pina.
petlja void () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
U sljedeći dio stavite vrijednost očitanu s analognog pina na prethodno definiranu varijablu Value . I u sljedećim redovima ispišite tu vrijednost na LCD.
Vrijednost = Wire.read (); lcd.print ("ADC vrijednost ="); lcd.print (vrijednost); kašnjenje (500); lcd.clear ();}
Napokon prenesite kôd u Arduino i pokrenite ga. Analogne vrijednosti počet će se prikazivati na LCD zaslonu. Podesite gumb lonca i vidjet ćete postupnu promjenu vrijednosti.


