Analogisen muuntaminen digitaaliseksi (analoginen lukusarja) - Arduinon perusteet

Analogisen muuntaminen digitaaliseksi (analoginen lukusarja) - Arduinon perusteet

Tässä Arduinon perusteissa yritämme ymmärtää koodin toteutusmenettelyn, jossa ulkoinen analoginen signaali syötetään Arduino-analogituloon ja muunnetaan tai muunnetaan vastaavasti suhteelliseksi digitaaliseksi lukemaksi. Tässä käytämme vaihtelevaa vastusta potin muodossa analogisena signaalilähteenä.

Analoginen lukusarja

Tässä esimerkissä opitaan menetelmä analogisen tulon lukemiseksi ulkoisesta laitteesta, kuten potentiometristä, joka on n sähkömekaaninen laite, joka on suunniteltu vaihtelevan vastuksen toteuttamiseksi piirissä manuaalisen toiminnan avulla.



Arduinoa voidaan käyttää potentiometristä tulevan jännitteen suuruuden mittaamiseen, jotta voidaan lukea ja tunnistaa sen vastaavasti vaihteleva vastus. Tämä voidaan tehdä syöttämällä jännite Arduinon analogiatuloporttiin analogisena arvona.



Täällä näemme, miten yllä mainittu toteutetaan, kun sarjamuotoinen yhteys on muodostettu Arduinon ja linkitetyn tietokoneen yli.

Tarvitaan laitteisto

Arduino-lauta



10 kilohmin potentiometri

Piirin käyttö

Kuten yllä olevassa kaaviossa on esitetty, kytke kolme potista ulos tulevaa johtoa Arduino-portteihisi.



Johdin yhdestä potin ulkojohdosta on liitetty maan tai negatiivisen viivan kanssa.

Toinen vapaa ääripääkaapeli liitetään levyn + 5V: iin.

Jäljellä on potin keskijohto, joka päätetään Arduino-kortin analogiatuloon.

Kun potin akselia pyöritetään, vastus keskijohdon ja ulkoliittimen poikki siirtyy korkeammasta alempaan ja päinvastoin riippuen siitä, mihin puoleen liukuvarsi pääsee lähemmäksi.

Esimerkiksi kun liukusäädintä käännetään kohti + 5 V: n johtoa, keskijohto lähestyy 5 V: tä ja pyrkii saamaan koko arvon kosketettaessa 5 V: n osoitettua johtoa. Vastaavasti, kun liukusäädintä liikutetaan kohti maadoitusjohtoa, keskijohto pyrkii saavuttamaan nollapotentiaalin.

Arduino-analogitulo lukee yllä olevan lineaarisesti vaihtelevan syöttöjännitteen potin keskijohdon yli tulkitsemaan sen vastaavasti vaihtelevaksi potin vastukseksi.

Arduino sulkee sisäisen analogia-digitaalimuunninpiirin, joka tulkitsee yllä olevan potin liikkeen tehokkaasti ja muuntaa sen numeroiksi välillä 0-1023.

Erityinen sijainti potin akselin päällä johtaa siihen, että Arduino kääntää suhteellisen luvun välillä 0 ja 1023, ja 5 V: n ja nollan voltin loppuarvoille tulkinnat ovat ilmeisesti 0 ja 1023.

Viitatussa ohjelmassa asetustoiminto on käynnistettävä vain sarjaliikenteen aloittamiseksi, nopeuden ollessa 9600 bittiä sekunnissa, Arduino-kortillesi ja tietokoneellesi.

Odotettu komento on muodossa:

Sarjan alku (9600)

Myöhemmin pakotamme koodisi pääsilmukassa muuttujan vahvistamaan potin johtimista saatu vastusarvo (joka olisi keskusteltu välillä 0-1023, sopii vain int-tietotyypille):

int sensorValue = analoginen luku (A0)

Lopuksi, tulosta nämä tiedot sarjaikkunaan desimaaliarvona (DEC). Voit käyttää komentoa Serial.println () tämän toteuttamiseksi koodin viimeisellä rivillä:

Serial.println (sensorValue, DEC)

Tämän jälkeen, kun Serial Monitor käynnistetään Arduino-kehitystoimialueella (tämä tapahtuu napsauttamalla painiketta, joka on heti ohjelman otsikossa olevan Lataa-painikkeen oikealla puolella).

näemme yhdenmukaisen numeroketjun, joka kulkee välillä 0-1023, mikä vastaa potin akselin vaihtelevaa pyörimisasentoa.

Jos lopetamme potin akselin pyörimisen jossain hetkessä, vastaava hetkellinen numero näkyy Arduinon näytöllä, tämä muuttuisi jälleen suhteellisesti, kun muutamme potin akselin asentoa.

Koodi

/ *
Analoginen lukusarja
Lukee analogisen tulon nastasta 0, tulostaa tuloksen sarjavalvontaan.
Kiinnitä potentiometrin keskitappi tapiin A0 ja ulkotapit + 5V: iin ja maahan.

Tämä esimerkkikoodi on julkinen.
* /

// asennusohjelma suoritetaan kerran, kun painat nollaus-painiketta:
void setup () {
// alusta sarjaliikenne nopeudella 9600 bittiä sekunnissa:
Sarjan alku (9600)
}

// silmukkarutiini kulkee yhä uudelleen ikuisesti:
void loop () {
// lue analogisen nastan 0 tulo:
int sensorValue = analoginen luku (A0)
// tulosta lukemasi arvo:
Serial.println (sensorValue)
delay (1) // viive lukemien välillä vakauden takaamiseksi
}




Edellinen: Kytkimen tilan valvonta (digitaalinen lukusarja) - Arduino Basics Seuraava: 1,25 V - 120 V verkkovirralla säädettävä jännitteen säätimen piiri