Analog til digital konvertering er en veldig viktig oppgave i innebygd elektronikk, ettersom de fleste sensorene gir utgang som analoge verdier, og for å mate dem til mikrokontroller som bare forstår binære verdier, må vi konvertere dem til digitale verdier. Så for å kunne behandle analoge data, trenger mikrokontrollere Analog til Digital Converter.
Noen mikrokontroller har innebygd ADC som Arduino, MSP430, PIC16F877A, men noen mikrokontroller har den ikke som 8051, Raspberry Pi osv., Og vi må bruke noen eksterne analoge til digitale omformere som ADC0804, ADC0808. Nedenfor finner du forskjellige eksempler på ADC med forskjellige mikrokontrollere:
- Hvordan bruke ADC i Arduino Uno?
- Raspberry Pi ADC opplæring
- Grensesnitt ADC0808 med 8051 mikrokontroller
- 0-25V digitalt voltmeter ved hjelp av AVR-mikrokontroller
- Hvordan bruke ADC i STM32F103C8
- Hvordan bruke ADC i MSP430G2
- Hvordan bruke ADC i ARM7 LPC2148
- Bruker ADC-modul fra PIC-mikrokontroller med MPLAB og XC8
I denne opplæringen skal vi sjekke hvordan du kan grensesnitt PCF8591 ADC / DAC-modul med Arduino.
Nødvendige komponenter
- Arduino UNO
- PCF8591 ADC-modul
- 100K gryte
- Jumperkabler
PCF8591 ADC / DAC-modul
PCF8591 er en 8 bit analog til digital eller 8 bit digital til analog omformermodul som betyr at hver pinne kan lese analoge verdier opp til 256. Den har også LDR og termistorkrets på kortet. Denne modulen har fire analoge innganger og en analoge utganger. Det fungerer på I 2 C-kommunikasjon, så det er SCL- og SDA-pinner for seriell klokke og seriell datadresse. Det krever 2,5-6V forsyningsspenning og har lav standby-strøm. Vi kan også manipulere inngangsspenningen ved å justere knotten til potensiometeret på modulen. Det er også tre hoppere på brettet. J4 er koblet til for å velge tilgangskrets for termistor, J5 er koblet for å velge tilgangskrets for LDR / fotomotstand og J6 er koblet til for å velge den justerbare spenningstilgangskretsen. For å få tilgang til disse kretsene må du bruke adressene til disse hopperne: 0x50 for J6, 0x60 for J5 og 0x70 for J4. Det er to lysdioder ombord D1 og D2-D1 viser utgangsspenningsintensiteten og D2 viser intensiteten på forsyningsspenningen. Høyere utgangs- eller forsyningsspenning, høyere intensitet på LED D1 eller D2. Du kan også teste disse lysdiodene ved å bruke et potensiometer på VCC eller på AOUT-pinnen.
Grensesnitt PCF8591 ADC / DAC-modul med Arduino
Hele programmet og arbeidsvideoen er gitt på slutten av denne veiledningen.
For det første må vi definere biblioteket for I 2 C-kommunikasjon og LCD-skjerm.
#inkludere
Definer deretter noen makroer. Den første makroen er for å definere adressen til databussen for IC og den andre makroen er for å definere adressen til den første inngangspinnen til modulen, der inngangen fra potten er gitt.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
Definer deretter pin-tilkoblingene til LCD med Arduino og initialiser verdien vi får ved analog pin.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Verdi = 0;
La oss nå komme til oppsettfunksjonen . Her, i første linje, har vi initialisert I 2 C-kommunikasjonen. Og i den andre linjen har vi initialisert LCD-skjermen som vi skriver ut de analoge verdiene på. Lær mer om grensesnitt 16x2 LCD med Arduino her.
ugyldig oppsett () { Wire.begin (); lcd.begin (16,2); }
I sløyfefunksjon er den første linjen å begynne overføringen, dvs. at den starter PCF8591. Den andre linjen forteller ICen å foreta den analoge målingen ved den første analoge inngangspinnen. Tredje linje avslutter overføringen og fjerde linje får de målte dataene fra analog pin.
ugyldig sløyfe () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
I neste del setter du verdien som er lest fra analog pin til Value- variabel som ble definert tidligere. Og i neste linje skriver du ut verdien til LCD-skjermen.
Verdi = Wire.read (); lcd.print ("ADC Value ="); lcd.print (verdi); forsinkelse (500); lcd.clear ();}
Endelig last opp koden i Arduino og kjør den. De analoge verdiene begynner å vises på LCD-skjermen. Juster pottens knott, og du vil se den gradvise endringen i verdiene.