ADC (analog til digital omformer) er en teknikk som vi kan konvertere analoge verdier til digitale verdier. Hvorfor trenger vi denne konvertering av analog til digital og også hva er forskjellen mellom analoge og digitale verdier? Verdiene som bare har to mulige tilstander enten en eller null er kjent som binære verdier som utgangen fra en trykknapp; Enten vil den være åpen (null) eller lukket (1). I motsetning til det, er noen verdier kontinuerlige som hyppigheten av menneskelige lyder, den genererer den kontinuerlige lydbølgen som har forskjellige verdier, slike verdier er kjent som analoge verdier.
Maskinene forstår bare binære verdier som er i kombinasjonen av nuller og ene, mens de digitale verdiene er representasjoner av de binære tallene. I denne oppskrivningen diskuteres utnyttelsen av ADC-er i Arduino, og også dens konverteringsprosess er forklart.
Hva er ADC -ene i Arduino
I Arduino er forskjellige sensorer og elektriske komponenter koblet til som legger inn de analoge signalene, mens Arduino bare kan forstå digitale signaler. For å løse dette har hvert styre i Arduino noen innebygde ADC-er som konverterer den analoge inngangen til digitale verdier som er lesbare av Arduino. Vi vil diskutere ADCSof Arduino UNO, den har 6 pinner for å ta inngangen som er betegnet med A0, A1, A2, A3, A4 og A5.
Disse seks pinnene har 10-bit ADC, slik at de vil konvertere de analoge verdiene til digitale verdier i området 0 til 1023, og denne verdien er kjent som oppløsningen fordi den representerer de diskrete verdiene.
Hvordan ADCS fungerer i Arduino
I Arduino blir de analoge verdiene kartlagt til de digitale verdiene med faktoren 5MV (denne verdien på 5MV kommer ved å dele VREF -verdien til 1023), noe som betyr at den vil øke den digitale verdien med en på økningen av hver 5 MV -analog verdi.
Tenk på følgende tabell for en bedre forståelse:
Analog verdi | Verdi i biter | Digital verdi |
---|---|---|
0 volt | 0000000000 | 0 |
5 mV | 0000000001 | 1 |
10 mV | 0000000010 | 2 |
5 volt | 1111111111 | 1023 |
Hva er den analoge til digitale formelen
Det er en matematisk ligning som vi kan konvertere de analoge verdiene til digitale verdier og formelen er:
((Oppløsning av ADC)/(inngangsspenning)) = ((ADC -lesing)/(analog målt verdi))
For å forstå ligningen ovenfor, bør du vurdere følgende verdier for å finne ut ADC -avlesningen:
Oppløsning av ADC = 1024 (ADC i Arduino Uno er 10-bit)
Inngangsspenning = 10 volt
ADC Reading = x (det er å finne)
Analog målt verdi = 3 volt (antar at sensoren leser verdien av 3 volt)
I henhold til ligningen ovenfor:
x = (1024/5)*3 = 614
Så den digitale verdien som leses av Arduino mot den analoge verdien på 3 volt vil være 614.
For å forstå det, vil vi konfigurere kretsen ved å bruke potensiometeret, der vi vil variere den analoge inngangsspenningen, og deretter vil vise de analoge og digitale verdiene på seriemonitoren. Arduino -koden for dette formålet vil være:
int potpin = a3, d_value = 0;
float a_value = 0.00;
void setup ()
Serie.Begynn (9600);
void loop ()
d_value = analograad (potpin);
Serie.print ("digital verdi =");
Serie.print (d_value);
a_value = (d_value * 5.00)/1023.00;
Serie.print ("analog spenning =");
Serie.println (a_value);
forsinkelse (1000);
Forklaring av kode: Vi har erklært to heltallsvariabler potpin med verdi A3 (potensiometer vil være koblet på pinne A3) og d_value med 0 verdi. En variabel av float -datatype som er en_value og lagrer null i den. I løkken leser vi verdiene til et potensiometer og lagrer verdiene i D_Value -variabelen. Deretter bruker du den matematiske formelen som er forklart ovenfor, konverter D_Value til analog og lagrer den i variabelen A_Variable. Vi viste begge verdiene på seriemonitoren gjennom seriell kommunikasjon og ga en forsinkelse på 1 sekund i hver iterasjon av løkken.
Maskinvare og simulering
Vi trenger følgende komponenter:
Koble det ene benet av potensiometeret med bakken, det andre benet med 5 volt og mellombenet med den analoge kanalen til A3. Kretsdiagrammet for kretsen til potensiometer med Arduino vil være:
I kretsen ovenfor, når vi endrer verdiene til en analog pinne, kan vi visualisere de tilsvarende digitale verdiene på en seriemonitor. Simulering av sanntid av kretsen ovenfor vil være:
Maskinvarekonfigurasjonen vil være slik:
Seriell monitorutgangen vil like denne ved å variere motstanden til potensiometeret:
Konklusjon
ADC -ene i Arduino brukes til konvertering av analoge inngangsverdier til digitale verdier fordi de analoge verdiene ikke kan behandles av Arduino; maskiner og mikrokontrollere fordi de bare forstår de digitale verdiene. I denne oppskrivningen blir ADC-ene forklart med deres arbeid i Arduino og demonstrerte også et eksempel på arbeid av ADC i Arduino.