Pretvaranje analognog u digitalno (analogno serijsko čitanje) - Osnove Arduina

Pretvaranje analognog u digitalno (analogno serijsko čitanje) - Osnove Arduina

U ovim osnovama Arduina pokušavamo razumjeti postupak implementacije koda u kojem se vanjski analogni signal dovodi na Arduino analogni ulaz i prevodi ili pretvara u odgovarajuće proporcionalno digitalno očitanje. Ovdje koristimo promjenjivi otpor u obliku lonca kao analognog izvora signala.



Serijski analogni čitač

U ovom primjeru učimo metodu čitanja analognog ulaza s vanjskog uređaja, takvog potenciometra, koji je n elektro-mehanički uređaj dizajniran za provođenje različitog otpora u krugu ručnim radom.

Arduino se može koristiti za mjerenje veličine napona koji izlazi iz potenciometra kako bi se očitao i utvrdio njegov odgovarajući promjenjivi otpor. To se može postići napajanjem napona u analogni ulazni priključak Arduino kao analogne vrijednosti.





Ovdje ćemo vidjeti kako se gore navedeno provodi nakon uspostavljanja serijske komunikacije preko Arduina i povezanog računala.

Potreban hardver

Arduino ploča



Potenciometar od 10 kilohm

Kružni rad

Kao što je prikazano na gornjem dijagramu, spojite tri žice koje izlaze iz lonca na vaše Arduino priključke.

Žica s jednog od vanjskih izvoda lonca dodjeljuje se tlu ili negativnoj liniji ploče.

Drugi slobodni krajnji vanjski krajni kabel spaja se s + 5V ploče.

Preostalo je središnje vodstvo lonca, koje se završava na analogni ulaz Arduino ploče.

Kad se osovina lonca zakrene, otpor na središnjem kablu i vanjskom priključku pomiče se s više na niže i obrnuto, ovisno o tome kojoj se strani klizač približava.

Na primjer, kada se klizač okrene prema odvodu + 5V, središnji se kabel približi 5V i nastoji postići cijelu vrijednost dok dodiruje dodijeljeni odvod od 5V. Slično tome, kada se klizno vratilo pomiče prema uzemljenom vodilu lonca, središnji kabel nastoji postići nulti potencijal.

Gornji linearno promjenjivi napon napajanja preko središnjeg kabela lonca očitava analogni ulaz arduino radi interpretacije u odgovarajući promjenjivi otpor lonca.

Arduino obuhvaća interni sklop analogno-digitalnog pretvarača koji učinkovito interpretira gornji pokret lonca i pretvara ga u brojeve između 0 i 1023.

Određeni položaj nad osovinom lonca rezultira proporcionalnim brojem između 0 i 1023 koji Arduino prevodi, a za krajnje vrijednosti 5V i nula volti interpretacije su očito 0 i 1023.

U navedenom programu funkciju postavljanja treba pokrenuti samo za pokretanje serijske komunikacije, brzina je 9600 bita podataka u sekundi, preko vaše ploče Arduino i računala.

Očekivana naredba je u obliku:

Serial.begin (9600)

Nakon toga, u glavnoj petlji vašeg koda, prisiljavamo varijablu kako bismo popravili vrijednost otpora (koja bi bila onakva kako se raspravljalo između 0 i 1023, upravo prikladna za int tip podataka) primljenu iz pot vodiča:

int sensorValue = analogRead (A0)

Za kraj, ispišite ove podatke u svoj serijski prozor kao decimalnu (DEC) vrijednost. Za ovo možete primijeniti naredbu Serial.println () u posljednjem retku koda:

Serial.println (SensorValue, DEC)

Nakon toga, kad god se pokrene Serial Monitor u razvojnoj domeni Arduino (to se radi klikom na gumb koji se nalazi odmah s desne strane gumba 'Upload' u zaglavlju programa).

vidjeli bismo postojani lanac znamenki koji se kreću od 0-1023, što odgovara promjenljivom položaju rotacije osovine lonca.

Ako u nekom trenutku zaustavimo rotaciju osovine lonca, odgovarajući trenutni broj prikazat će se na zaslonu Arduina, to bi se opet proporcionalno promijenilo kako nastavljamo mijenjati položaj osovine lonca.

Kod

/ *
AnalogReadSerial
Čita analogni ulaz na pin 0, ispisuje rezultat na serijski monitor.
Pričvrstite središnji zatik potenciometra na zatik A0, a vanjske zatik na + 5V i uzemljenje.

Ovaj primjer koda je u javnoj domeni.
* /

// rutina postavljanja izvodi se jednom kad pritisnete reset:
void setup () {
// inicijalizacija serijske komunikacije brzinom od 9600 bita u sekundi:
Serial.begin (9600)
}

// rutina petlje zauvijek iznova i iznova:
petlja void () {
// očitavanje ulaza na analognom pinu 0:
int sensorValue = analogRead (A0)
// ispisati vrijednost koju ste pročitali:
Serial.println (SensValue)
delay (1) // kašnjenje između čitanja radi stabilnosti
}




Prethodno: Nadgledanje stanja preklopnika (digitalni serijski čitač) - Osnove Arduina Dalje: Strujni krug regulatora napona od 1,25 V do 120 V