Analoogi teisendamine digitaalseks (analoog-loendis seeria) - Arduino põhitõed

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles Arduino põhitõdes proovime mõista koodi rakendamise protseduuri, kus väline analoogsignaal suunatakse Arduino analoogsisendisse ja teisendatakse või teisendatakse vastavalt proportsionaalseks digitaalseks näiduks. Siin kasutame analoogsignaali allikana muutuvat takistust poti kujul.

Analoogne lugejad

Selles näites õpime meetodit analoogsisendi lugemiseks välisseadmest, näiteks potentsiomeetrist, mis on n elektromehaaniline seade, mis on ette nähtud vooluahela erineva takistuse rakendamiseks käsitsi.



Arduinot saab kasutada potentsiomeetrist väljuva pinge suuruse mõõtmiseks, et lugeda selle vastavat muutuvat takistust. Seda saab teha pinge sisestamisega analoogväärtusena Arduino analoogsisendiporti.

Siit näeme, kuidas ülaltoodut rakendatakse pärast seeriaühenduse loomist Arduino ja lingitud arvuti kaudu.



Vajalik riistvara

Arduino juhatus

10-kilohommine potentsiomeeter

Ahela töö

Nagu ülaltoodud diagrammil on kujutatud, ühendage potist väljuvad kolm juhet oma Arduino porti.

Poti ühest välimisest juhtmest on traat määratud maapinna või laua negatiivse joonega.

Teine vaba äärmise välimise otsa juhe ühendatakse plaadi + 5 V-ga.

Järele jääb poti keskosa, mis lõpetatakse Arduino plaadi analoogsisendiga.

Kui potti võlli pööratakse, nihkub vastupanu üle keskjuhtme ja välimise klemmi kõrgemale madalamale ja vastupidi, sõltuvalt sellest, millisele küljele liugvarras lähemale jõuab.

Näiteks kui liugvarsi pööratakse + 5V juhtme poole, saab keskjuhe 5V-le lähemale ja kipub omandama kogu väärtuse, kui see puudutab 5V määratud juhtme külge. Samamoodi, kui liugvõlli nihutatakse maapinna juhtme poole, kipub keskmine juhe saavutama nullpotentsiaali.

Arduino analoogsisend loeb ülaltoodud lineaarselt muutuvat toitepinge üle poti keskjuhtme selle tõlgendamiseks poti vastavalt muutuvaks takistuseks.

Arduino hõlmab sisemist analoog-digitaalmuundurit, mis tõlgendab ülaltoodud poti liikumist ja teisendab selle arvudeks vahemikus 0 kuni 1023.

Konkreetne positsioon poti võlli kohal põhjustab Arduino poolt proportsionaalse arvu vahemikus 0 kuni 1023 ning lõppväärtuste 5 V ja null volti korral on tõlgendused ilmselgelt 0 ja 1023.

Viidatud programmis tuleb käivitada seadistamisfunktsioon ainult seeriaside algatamiseks, kiiruseks 9600 bitti sekundis kogu Arduino pardal ja arvutis.

Eeldatav käsk on kujul:

Serial.begin (9600)

Seejärel rakendame teie koodi põhilinguses muutuja, et fikseerida vastupanuväärtus (mis oleks arutletud vahemikus 0 kuni 1023, sobib lihtsalt int-tüüpi andmetele), mis on saadud potti juhtmetest:

int sensorValue = analogRead (A0)

Kokkuvõtteks printige see teave oma seeriaaknasse kümnendarvuna (DEC). Selle rakendamiseks koodi viimases reas saate kasutada käsku Serial.println ():

Serial.println (sensorValue, DEC)

Pärast seda, kui Serial Monitor käivitatakse Arduino arendusdomeenis (selleks klõpsake nuppu, mis asub kohe programmi päises oleva nupu 'Laadi üles' paremas servas).

näeksime järjepidevat numbrite ahelat, mis kulgeb vahemikus 0-1023, mis vastab poti võlli varieeruvale pöörlemisasendile.

Kui me peatame poti võlli pöörlemise mingil hetkel, kuvatakse Arduino ekraanil vastav hetkenumber, see muutuks taas proportsionaalselt, kui jätkame poti võlli asendi muutmist.

Kood

/ *
AnalogReadSerial
Loeb tihvti 0 analoogsisendi, prindib tulemuse jadamonitorile.
Kinnitage potentsiomeetri keskmine tihvt tihvti A0 külge ja välised tihvtid + 5 V ja maandage.

See näite kood on üldkasutatav.
* /

// häälestusrežiim töötab üks kord, kui vajutate lähtestamist:
void setup () {
// jadaühenduse initsialiseerimine kiirusega 9600 bitti sekundis:
Serial.begin (9600)
}

// tsükli rutiin jookseb ikka ja jälle igavesti:
void loop () {
// loe sisendit analoognõel 0:
int sensorValue = analogRead (A0)
// printige loetud väärtus välja:
Serial.println (sensorValue)
delay (1) // stabiilsuse tagamiseks viivitus lugemiste vahel
}




Eelmine: Lüliti oleku jälgimine (digitaalne lugemisjaam) - Arduino põhitõed Järgmine: 1,25 V kuni 120 V võrgu reguleeritav pinge regulaatori ahel