Pretvorba analognega v digitalni (analogno branje zaporedno) - Osnove Arduina

Preizkusite Naš Instrument Za Odpravo Težav





V teh osnovah Arduina poskušamo razumeti postopek izvajanja kode, pri katerem se zunanji analogni signal dovaja na analogni vhod Arduino in prevaja ali pretvarja v ustrezno sorazmerno digitalno odčitavanje. Tu uporabljamo spremenljiv upor v obliki lonca kot analogni vir signala.

Analogno serijsko branje

V tem primeru se učimo metode odčitavanja analognega vhoda z zunanje naprave, kot je potenciometer, ki je n elektro-mehanska naprava, zasnovana za izvajanje različnega upora v vezju z ročnim upravljanjem.



Arduino lahko uporabimo za merjenje velikosti napetosti, ki prihaja iz potenciometra, za odčitavanje in prepoznavanje njegove ustrezno spreminjajoče se odpornosti. To je mogoče storiti tako, da se napetost v analogni vhodni priključek Arduino napaja kot analogna vrednost.

Tu bomo videli, kako se zgoraj uveljavlja po vzpostavitvi serijske komunikacije prek Arduina in povezanega računalnika.



Potrebna strojna oprema

Plošča Arduino

10-kilohmski potenciometer

Delovanje vezja

Kot je prikazano na zgornjem diagramu, priklopite tri žice, ki prihajajo iz lonca na vrata Arduino.

Žica enega od zunanjih vodov lonca je dodeljena tlom ali negativni črti plošče.

Drugi prosti skrajni zunanji končni kabel se poveže z + 5V plošče.

Preostalo je osrednje vodilo lonca, ki se zaključi na analogni vhod plošče Arduino.

Ko se gred lonca zavrti, se upor na sredinskem kablu in zunanjem sponki premakne od višjega proti nižjemu in obratno, odvisno od tega, na katero stran se drsnik približa.

Na primer, ko se drsna ročica zavrti proti svinčniku + 5V, se osrednji vodnik približa 5V in nagiba k pridobivanju celotne vrednosti, ko se dotakne dodeljene 5V žice. Podobno, ko se drsna gred premakne proti zemeljskemu kablu, ima osrednji vodnik ničelni potencial.

Zgornjo linearno spreminjajočo se napajalno napetost na sredinskem kablu lonca bere analogni vhod arduino za njegovo interpretacijo v ustrezno spreminjajoč se upor lonca.

Arduino priloži notranje vezje analogno-digitalnega pretvornika, ki učinkovito interpretira zgornje gibanje lonca in ga pretvori v številke med 0 in 1023.

Zaradi določenega položaja nad jaškom lonca Arduino prevede sorazmerno število med 0 in 1023, za končne vrednosti 5V in nič voltov pa sta interpretaciji očitno 0 in 1023.

V navedenem programu je treba sprožiti namestitveno funkcijo izključno za zagon serijske komunikacije s hitrostjo 9600 bitov podatkov na sekundo prek vaše plošče Arduino in računalnika.

Pričakovani ukaz je v obliki:

Serial.begin (9600)

Nato v glavni zanki vaše kode uveljavimo spremenljivko, da popravimo vrednost upora (ki bi bila, kot je razloženo med 0 in 1023, primerno za tip podatkov int), ki jo prejme od potnih vodnikov:

int sensorValue = analogRead (A0)

Za zaključek natisnite te podatke v zaporedno okno kot decimalno vrednost (DEC). Za izvedbo tega v zadnji vrstici kode lahko uporabite ukaz Serial.println ():

Serial.println (SensorValue, DEC)

Po tem se vsakič, ko se v razvojni domeni Arduino zažene Serial Monitor (to storite s klikom na gumb, ki je takoj na desni strani gumba »Naloži« v glavi programa).

videli bi dosledno verigo števk, ki bi segala od 0-1023, kar ustreza spreminjajočemu se položaju vrtenja gredi lonca.

Če v nekem trenutku ustavimo vrtenje gredi lonca, se na zaslonu Arduina prikaže ustrezna trenutna številka, kar bi se spet sorazmerno spremenilo, ko nadaljujemo s spreminjanjem položaja gredi lonca.

Koda

/ *
AnalogReadSerial
Prebere analogni vhod na nožici 0 in rezultat natisne na serijski monitor.
Sredinski zatič potenciometra pritrdite na zatič A0, zunanji zatiči pa na + 5V in ozemljite.

Ta primer kode je v javni domeni.
* /

// nastavitvena rutina se zažene enkrat, ko pritisnete reset:
void setup () {
// inicializiramo serijsko komunikacijo s 9600 bitov na sekundo:
Serial.begin (9600)
}

// rutinska zanka teče vedno znova in znova:
void loop () {
// preberemo vhod na analognem zatiču 0:
int sensorValue = analogRead (A0)
// izpišemo prebrano vrednost:
Serial.println (sensorValue)
delay (1) // zamuda med branjem zaradi stabilnosti
}




Prejšnja: Spremljanje stanja stikala (digitalno branje serijsko) - Osnove Arduina Naprej: 1.25V do 120V omrežno nastavljivo vezje regulatorja napetosti