Analóg olvasás soros monitorra

Egy potenciométer olvasása, és az állapotának kinyomtatása az Arduino soros monitorra.


Utolsó felülvizsgálat: 2022.02.04 16:50


Ez a példa bemutatja, hogyan olvassa le a fizikai világ analóg bemenetét potenciométer segítségével. A potenciométer egy egyszerű mechanikus eszköz, amely változó mértékű ellenállást hoz létre, amikor a tengelyét elforgatják. Ha feszültséget vezet át egy potenciométeren és a kártya analóg bemenetére, akkor megmérheti a potenciométer (vagy röviden poti) által termelt ellenállás mértékét analóg értékként. Ebben a példában figyelni fogja a potenciométer állapotát, miután soros kommunikációt létesített az Arduino és az Arduino szoftvert (IDE) futtató számítógépe között.

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 A0 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 kohm), 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.

Az Arduino kártyákon belül 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 vázlatban a setup függvényben csak annyit 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);

Végül ki kell nyomtatnia ezeket az információkat a soros monitor ablakába. Ezt a Serial.println() paranccsal teheti meg az utolsó kódsorban:

Serial.println(sensorValue);

Most, amikor megnyitja a soros monitort az Arduino szoftverben (IDE) (az objektívnek tűnő ikonra kattintva a jobb oldalon, a zöld felső sávban vagy a Ctrl+Shift+M billentyűparancs használatával), látnia kell, a 0 és 1023 közötti állandó számfolyam, amely a potméter pozíciójával korrelál. Ahogy forgatja a potenciométert, ezek a számok szinte azonnal reagálnak.

/*
  AnalogReadSerial

  Az analóg bemenetet a 0. kivezetést olvassa, az eredményt kiírja a soros monitorra.
  A grafikus ábrázolás a Serial Plotter használatával érhető el (Eszközök > Soros plotter menü).
  Csatlakoztassa a potenciométer középső csatlakozóját az A0 kivezetéshez, a külső csatlakozókat pedig a +5 V-hoz és a földhöz.

  Ez a példakód nyilvános.

  https://docs.arduino.cc/built-in-examples/basics/AnalogReadSerial
*/

// a setup (beállítási) funkció egyszer fut le, amikor megnyomja a reset gombot, vagy bekapcsolja a kártyát:
void setup() {
  // a soros kommunikáció inicializálása 9600 bit/s sebességgel:
  Serial.begin(9600);
}

// a loop (ciklus) függvény újra és újra lefut, örökké:
void loop() {
  // a bemenet, az analóg 0 kivezetés beolvasása:
  int sensorValue = analogRead(A0);
  // a beolvasott érték kinyomtatása:
  Serial.println(sensorValue);
  delay(1);        // késleltetés a leolvasások között a stabilitás érdekében
}

Tudj meg többet

További alapvető oktatóanyagokat a beépített példák részben talál.

Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.