Analoginio konvertavimas į skaitmeninį (analoginis skaitymas) - „Arduino“ pagrindai

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame „Arduino“ pagrinde mes bandome suprasti kodo įgyvendinimo procedūrą, kai išorinis analoginis signalas tiekiamas į „Arduino“ analoginį įėjimą ir paverčiamas arba paverčiamas atitinkamai proporcingu skaitmeniniu rodmeniu. Čia mes naudojame kintamą atsparumą puodo pavidalu kaip analoginį signalo šaltinį.

Analoginio skaitymo serija

Šiame pavyzdyje mes sužinome analoginio įvesties nuskaitymo iš išorinio įrenginio, tokio potenciometro, metodą, kuris yra n elektromechaninis įtaisas, suprojektuotas kintamam atsparumui grandinėje įgyvendinti rankiniu būdu.



„Arduino“ gali būti naudojamas matuoti įtampos, gaunamos iš potenciometro, dydį, siekiant nuskaityti ir nustatyti jo atitinkamai skirtingą varžą. Tai galima padaryti tiekiant įtampą į „Arduino“ analoginio įvesties prievadą kaip analoginę vertę.

Čia pamatysime, kaip aukščiau išvardyti dalykai vykdomi, užmezgus nuoseklų ryšį per „Arduino“ ir susietą kompiuterį.



Būtina aparatinė įranga

„Arduino“ lenta

10 kilohm potenciometras

Grandinės valdymas

Kaip parodyta aukščiau pateiktoje diagramoje, prikabinkite tris laidus, išeinančius iš puodo, prie savo „Arduino“ prievadų.

Viela iš vieno iš išorinių puodo laidų priskiriama žemei arba neigiamai lentos linijai.

Kitas laisvas kraštinis išorinio galo laidas sujungiamas su plokštės + 5 V įtampa.

Liko centrinis puodo laidas, kuris baigiasi analogišku „Arduino“ plokštės įėjimu.

Pasukus puodo veleną, pasipriešinimas per centrinį laidą ir išorinį gnybtą pasislenka iš aukštesnio į žemesnį ir atvirkščiai, priklausomai nuo to, kuriai pusei artėja slankiklio svirtis.

Pvz., Kai slankiklio svirtis pasukama link + 5V laido, centrinis laidas priartėja prie 5V ir linkęs įgyti visą vertę palietęs paskirtą 5V laidą. Panašiai, kai slankiklio velenas yra judamas link grunto puodo, centrinis laidas linkęs pasiekti nulinį potencialą.

Aukščiau pateiktą tiesiai besikeičiančią maitinimo įtampą per puodo centrinę laidą nuskaito „arduino“ analoginė įvestis, kad ji būtų interpretuojama į atitinkamai skirtingą puodo atsparumą.

„Arduino“ apima vidinę analoginio-skaitmeninio keitiklio schemą, kuri efektyviai interpretuoja pirmiau minėtą puodo judėjimą ir paverčia jį skaičiais nuo 0 iki 1023.

Tam tikra vieta ant puodo koto reiškia, kad „Arduino“ išverčia proporcingą skaičių nuo 0 iki 1023, o galutinėms 5 V ir nulio voltų vertėms aiškinimas yra akivaizdžiai 0 ir 1023.

Nurodytoje programoje sąrankos funkciją reikia suaktyvinti tik norint pradėti nuoseklųjį ryšį, kurio greitis yra 9600 duomenų bitų per sekundę, per „Arduino“ plokštę ir kompiuterį.

Laukiama komanda yra tokios formos:

Serial.begin (9600)

Vėliau pagrindiniame jūsų kodo cikle mes vykdome kintamąjį, kad nustatytume pasipriešinimo vertę (kuri būtų, kaip aptarta nuo 0 iki 1023, tinka tik int duomenų tipui), gautą iš puodo:

int sensorValue = analogRead (A0)

Pabaigai išspausdinkite šią informaciją į nuoseklųjį langą kaip dešimtainę (DEC) reikšmę. Norėdami tai įgyvendinti paskutinėje kodo eilutėje, galite naudoti komandą Serial.println ():

„Serial.println“ (sensorValue, DEC)

Po to, kai „Serdu Monitor“ pradedama „Arduino“ kūrimo srityje (tai daroma spustelėjus mygtuką, esantį iškart programos dešinėje esančiame mygtuke „Įkelti“ programos antraštėje).

matytume nuoseklią skaičių grandinę, einančią nuo 0-1023, atitinkančią skirtingą puodo veleno sukimosi padėtį.

Jei sustabdysime puodo veleno sukimąsi, „Arduino“ ekrane pasirodys atitinkamas momentinis skaičius, kuris vėl pasikeis proporcingai keičiant puodo veleno padėtį.

Kodas

/ *
„AnalogReadSerial“
Nuskaito analoginę įvestį 0 kaištyje, išspausdina rezultatą serijiniame monitoriuje.
Pritvirtinkite centrinį potenciometro kaištį prie kaiščio A0, o išorinius kaiščius - prie + 5 V ir įžeminkite.

Šis kodo pavyzdys yra viešasis.
* /

// sąrankos programa vykdoma vieną kartą, kai paspausite „reset“
negaliojanti sąranka () {
// inicijuoti nuoseklųjį ryšį 9600 bitų per sekundę greičiu:
Serial.begin (9600)
}

// ciklo rutina vėl ir vėl amžinai:
negaliojanti kilpa () {
// perskaitykite 0 analoginio kaiščio įvestį:
int sensorValue = analogRead (A0)
// atsispausdinkite perskaitytą vertę:
Serial.println (sensorValue)
delay (1) // vėlavimas tarp nuskaitymų, kad būtų stabilumas
}




Pora: Jungiklio būklės stebėjimas (skaitmeninė skaitymo serija) - „Arduino“ pagrindai Kitas: nuo 1,25 V iki 120 V įtampos reguliavimo įtampos reguliatoriaus grandinė