Olvassa az analóg bemenetet, és kiírja a feszültséget a soros monitorra.
Utolsó felülvizsgálat: 2022.02.04 16:50
Ez a példa bemutatja, hogyan kell beolvasni egy analóg bemenetet a 0-s analóg kivezetésen, hogyan alakíthatja át az analogRead() értékeit feszültséggé, és hogyan nyomtathatja ki az Arduino Software (IDE) soros monitorára.
Hardver szükséglet
Arduino kártya
10 kohm-os potenciométer
Az áramkör

Csatlakoztassa a potenciométer három vezetékét a kártyához. Az első a potenciométer egyik szélső csatlakozójától a földig megy. A második a potenciométer másik szélső csatlakotójától az 5 voltra megy. A harmadik a potenciométer középső csatlakozójától az analóg 0 kivezetésre csatlakozik.
A potenciométer tengelyének elfordításával a csúszka mindkét oldalán változtatja az ellenállás mértékét, amely a potenciométer középső csapjához csatlakozik. Ez megváltoztatja a feszültséget a középső csatlakozón. Ha a középső és az 5 voltra csatlakoztatott oldal közötti ellenállás közel nulla (és a másik oldalon az ellenállás közel 10 k ohm), a középső érintkező feszültsége megközelíti az 5 voltot. Ha a potenciométer szélső vezetékeit felcseréljük, a középső érintkező feszültsége megközelíti a 0 voltot, vagyis a testet. Ez a feszültség az analóg feszültség, amelyet bemenetként olvas.
A kártya mikrokontrollerében van egy analóg-digitális konverternek vagy ADC-nek nevezett áramkör, amely beolvassa ezt a változó feszültséget, és 0 és 1023 közötti számmá alakítja. Ha a tengelyt teljesen egy irányba fordítjuk, a kivezetésre 0 volt megy, a bemeneti érték pedig 0. Ha a tengelyt teljesen az ellenkező irányba forgatjuk, akkor 5 volt megy a kivezetésre, és a bemeneti érték 1023. A kettő között az analogRead() egy 0 és 1023 közötti számot ad vissza, amely arányos a kivezetésre adott feszültség mértékével.
Vázlat

A kód
Az alábbi programban a setup függvényben a legelső dolog, amit meg kell csinálunk, hogy soros kommunikációt indítunk 9600 bit/másodperc sebességgel a kártya és a számítógép között a következő paranccsal:
Serial.begin(9600);
Ezután a kód fő ciklusban létre kell hoznia egy változót, amely tárolja a potenciométerből érkező ellenállásértéket (amely 0 és 1023 között lesz, tökéletes hozzá az int
adattípus):
int sensorValue = analogRead(A0);
Ahhoz, hogy a kivezetésen olvasott 0-1023 közötti értéket a feszültségnek megfelelő tartományra módosítsa, létre kell hoznia egy másik változót, egy lebegőpontosat, és egy kicsit számolnia kell. A számok 0,0 és 5,0 közötti skálázásához ossza el az 5,0-t 1023,0-val, és szorozza meg a sensorValue értékkel: