Az analóg konvertálása digitálisra (analóg olvasási sor) - Arduino alapjai

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben az Arduino alapismeretben megpróbáljuk megérteni azt a kódmegvalósítási eljárást, amelyben egy külső analóg jelet táplálunk az Arduino analóg bemenetére, és lefordítjuk vagy átalakítjuk ennek megfelelően arányos digitális leolvasássá. Itt analóg jelforrásként változó ellenállást alkalmazunk pot formájában.

Analóg olvasási sorozat

Ebben a példában megtanuljuk az analóg bemenet leolvasásának módszerét egy külső eszközről, például egy potenciométerről, amely egy n elektromechanikus eszköz, amelyet arra terveztek, hogy változó ellenállást valósítson meg egy áramkörben kézi működtetéssel.



Az Arduino használható a potenciométerből kimenő feszültség nagyságának mérésére annak megfelelően változó ellenállásának leolvasása és azonosítása érdekében. Ez úgy valósítható meg, hogy a feszültséget analóg értékként táplálja az Arduino analóg bemeneti portjába.

Itt láthatjuk, hogyan hajtják végre a fentieket, miután soros kommunikációt hoztak létre az Arduino és a kapcsolódó számítógépen keresztül.



Hardver szükséges

Arduino Board

10 kilohmos potenciométer

Áramkör működtetése

Ahogy a fenti ábra mutatja, csatlakoztassa a bankból kijövő három vezetéket Arduino portjaihoz.

Az edény egyik külső vezetékének huzalját a földdel vagy a tábla negatív vonalával rendelték hozzá.

A másik szabad szélső külső végvezeték csatlakozik a tábla + 5 V-jához.

Maradt az edény középső vezetéke, amely az Arduino kártya analóg bemenetére kerül.

Amikor a fazék tengelyét elforgatják, a középső vezeték és a külső kapocs közötti ellenállás magasabbról alacsonyabbra, és fordítva változik, attól függően, hogy a csúszó kar melyik oldalhoz kerül közelebb.

Például, amikor a csúszó kart az + 5 V vezeték felé forgatják, a középső vezeték közelebb kerül az 5 V-hoz, és hajlamos megszerezni a teljes értéket, amikor megérinti az 5 V-os vezetéket. Hasonlóképpen, amikor a csúszó tengelyt a talajvezeték felé mozgatják, a középső vezeték nulla potenciált ér el.

A fenti, lineárisan változó tápfeszültséget a fazék középső vezetékén át az arduino analóg bemenet olvassa le, hogy azt a fazék ennek megfelelően változó ellenállására értelmezze.

Az Arduino egy belső analóg-digitális átalakító áramkört tartalmaz, amely hatékonyan értelmezi a fenti edénymozgást, és 0 és 1023 közötti számokká alakítja.

A fazék tengelyének egy bizonyos helyzete azt eredményezi, hogy az Arduino lefordítja a 0 és 1023 közötti arányos számot, és az 5 V és nulla volt végértékek esetében az értelmezések nyilvánvalóan 0 és 1023.

A hivatkozott programban a beállítási funkciót csak a soros kommunikáció kezdeményezéséhez kell aktiválni, 9600 bit / másodperc sebességgel az Arduino táblán és a számítógépen.

A várt parancs a következő formában van:

Serial.begin (9600)

Ezt követően a kód fő hurokjában végrehajtunk egy változót annak érdekében, hogy rögzítsük a pot leadektől kapott ellenállási értéket (amely 0 és 1023 között tárgyalt lenne, csak egy int típusú adattípusra alkalmas):

int sensorValue = analogRead (A0)

Végezetül nyomtassa ki ezeket az adatokat a soros ablakába decimális (DEC) értékként. Használhatja a Serial.println () parancsot ennek végrehajtására a kód utolsó sorában:

Serial.println (sensorValue, DEC)

Ezt követően, amikor a Serial Monitor elindul az Arduino fejlesztési tartományban (erre a program fejlécében található 'Feltöltés' gomb jobb oldalán található gombra kattintva kerül sor).

következetes számjegyláncot láthatunk, amely 0-1023 között mozog, ami megfelel a fazék tengelyének változó forgási helyzetének.

Ha valamely pillanatban leállítjuk a fazék tengelyének forgását, akkor a megfelelő pillanatnyi szám megjelenik az Arduino képernyőn, ez ismét arányosan változik, miközben a fazék tengelyének helyzetét változtatjuk.

A kód

/ *
AnalogReadSerial
Olvas egy analóg bemenetet a 0 tűn, kinyomtatja az eredményt a soros monitornak.
Csatlakoztassa a potenciométer középső csapját az A0 csaphoz, a külső csapokat + 5V-hoz és földelje.

Ez a példakód nyilvános.
* /

// a beállítási rutin egyszer fut, amikor megnyomja a reset gombot:
void setup () {
// inicializálja a soros kommunikációt 9600 bit / s sebességgel:
Serial.begin (9600)
}

// a ciklus rutin örökké újra és újra fut:
void loop () {
// beolvassa a bemenetet a 0 analóg tűn:
int sensorValue = analogRead (A0)
// kinyomtatja az elolvasott értéket:
Serial.println (sensorValue)
delay (1) // késés az olvasások között a stabilitás érdekében
}




Korábbi: A kapcsoló állapotának figyelése (digitális olvasási sor) - Arduino alapjai Következő: 1,25 V - 120 V hálózati állítható feszültségszabályozó áramkör