Tutorial 08: analogRead() és Serial Port Communications

analogRead() és Serial Port Communications

tudván, hogy valami be vagy ki rendkívül hasznos lehet, de gyakran érdemes többet tudni. Mennyire fényes a fény?

milyen gyorsan mozog a műhold? Az ilyen típusú válaszok gyakran analógak – az értékek széles skáláját fedik le, nem csak be-vagy kikapcsolva.

az Arduino az analóg bemeneteket 6 dedikált tűvel kezeli, A0-tól A5-ig. Ezek a csapok hozzáférhetnek egy analóg-digitális átalakítóhoz, amely a bemeneti értékek tartományát veszi fel, és a tartomány apró darabokra vágásával digitális verziót hoz létre. Mindezt a színfalak mögött kezelik – mindössze annyit kell tennie, hogy néhány nagyon egyszerű funkciót használ, és megkapja, amire szüksége van.

szüksége lesz

  1. potenciométer (bármilyen Ellenállási tartomány működni fog)
  2. áthidaló vezetékek – legalább 3
  3. kerékpár gumiabroncs

lépésenkénti utasítások

  1. helyezze a potenciométert bele a deszkádba.
  2. futtasson egy áthidaló vezetéket az Arduino 5 voltos csapjától a potenciométer egyik külső csapjához.
  3. futtasson egy másik áthidaló vezetéket az Arduino (GND címkével ellátott) egyik földelőcsapjától a potenciométer másik külső csapjához.
  4. futtassa az utolsó áthidaló vezetéket az Arduino A0 tűjétől a potenciométer középső csapjáig.
  5. csatlakoztassa az Arduino-t a számítógépéhez.
  6. nyissa meg az Arduino IDE-t.
  7. nyissa meg ennek a szakasznak a vázlatát.
  8. kattintson a képernyő bal felső sarkában található Ellenőrzés gombra. Narancssárgává válik, majd vissza kékké, ha elkészült.
  9. kattintson a Feltöltés gombra (az ellenőrzés gomb mellett). Narancssárgává válik, majd vissza kékké, ha elkészült.
  10. a menüsoron LÉPJEN az eszközök > Soros Monitor – ez megnyitja a Soros Monitor ablakot – a képernyőn lefelé gördülő számokat kell látnia.
  11. most állítsa be a potenciométer gombját, és nézze meg a Soros monitor ablakot. A számoknak 0 és 1023 között kell állniuk.

az Arduino analogread and map funkció használata potenciométerrel az A0 tűnél

ez a kép Fritzing segítségével készült.

az Arduino kód

/* AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor. Graphical representation is available using serial plotter (Tools > Serial Plotter menu) Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. This example code is in the public domain.*/// the setup routine runs once when you press reset:void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600);}// the loop routine runs over and over again forever:void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability}

beszéljétek meg a vázlatot

ez a vázlat egy többsoros megjegyzéssel kezdődik, amely leírja a vázlatot és az áramkört. Valószínűleg észreveszi, hogy az első kódblokk a setup() függvény – a vázlat elején nem deklarálunk vagy inicializálunk változókat – ehelyett ezt a hurok() függvényen belül fogjuk megtenni, mint az utolsó példában. A setup() göndör zárójelében újra meglátogatjuk a Soros könyvtárat, és használjuk a Soros funkciót.kezdődik ().

void setup() {// initialize serial communication at 9600 bits per second:Serial.begin(9600);}

ha felidézi az utolsó leckét, Soros.a begin() argumentumként veszi az adatátviteli sebességet (ez szinte mindig 9600 lesz). Ez a funkció lehetővé teszi egy kommunikációs csatorna beállítását a számítógép és az Arduino között. Mint mostanra már tudhatja, a setup () csak egyszer fut, majd továbblépünk a következő kódblokkra.

de várj! Nem kell beállítanunk a használni kívánt tű módját? Nagyszerű pont!

amit az Arduino csinál, alapértelmezés szerint a táblán lévő összes csapot bemenetként állítja be, hacsak másképp nem mondja. Tehát sok esetben nem kell kifejezetten beállítania a pin-kódot bemenetként a pinMode() függvény segítségével. Ennek ellenére-egyébként is szokásommá teszem ezt–, mert világossá teszi számomra a dolgokat – és ez megéri térben és erőfeszítésben.

tehát merem, állítsa be a pin módját a pinMode(A0, INPUT) funkcióval a setup () göndör zárójelében– nem fogja megbánni.

a loop() függvényre lépve egy változó deklarációval és inicializálással kezdjük.

int sensorValue = analogRead(A0);

deklarálunk egy sensorValue nevű változót, és inicializáljuk egy új függvény kimenetére. Ez az új funkció az elbűvölő analogRead (). Tehát, hogy egy vad hiszem, mi ez az új funkció analogRead () nem. Leolvassa a választott analóg tű értékét – ebben az esetben az A0 analóg tű, ahol a potenciométer középső csapja van csatlakoztatva. Az A0 tű feszültsége 0 és 1023 közötti számra lesz leképezve, és ez az érték a sensorValue változóhoz lesz rendelve.

ha fentről emlékeztet, az A0 – as tű tényleges feszültsége 0 és 5 Volt között lesz, attól függően, hogy hol állítja be a potenciométert – ez az érték az analóg-digitális átalakító segítségével a 0-1023 tartományba kerül. Tehát van egy változónk, amely rögzítette az értéket a potenciométerünkön – mi a következő lépés? Nos, nézzük meg az értéket. Ehhez ki kell nyomtatnunk az Arduino-ból a számítógépünkre – és kitaláltad, hogy a Println () Soros könyvtár funkciót használjuk erre…

Serial.println(sensorValue);

itt nincs nagy meglepetés-érvként elküldjük a sensorValue változót a Soros függvényhez.a println () és a Soros monitor ablakunk megjeleníti a kapott értékeket.

a vázlat befejezéséhez meghívjuk a delay() függvényt egy milliszekundumra, hogy megbizonyosodjunk arról, hogy a következő olvasat stabil, és újra elkezdjük a hurok() tetején. Új értéket rögzítünk az analogRead () segítségével, elmentjük a sensorValue változóba, majd kinyomtatjuk a számítógépre.

mindez jó és jó, lehet, hogy gondolkodik, de mi köze van a potenciométernek az érzékelőkhöz? A potenciométer nem érzékel semmit! Igaza van – de érdekes módon sok érzékelő ugyanazt az elvet alkalmazza, mint a potenciométer – az ellenállás beállítása. Készítsen például egy fényképellenállást – használható a fény érzékelésére–, mert az ellenállás A fény fényereje alapján változik, amelynek ki van téve-ez az ellenállás-változás beállítja a feszültség mennyiségét, amelyet a fogadó végén lévő csap kap. Tehát most a labda a bíróságon van-mire használhatja az analogRead () – t?

próbálja meg saját

  • változtassa meg az analóg pin-t A2-re. Módosítsa a kódot és az áramkört.
  • próbáljon ki egy másik potenciométert az áramkörben, befolyásolja-e a megjelenített értéktartományt?

további olvasmányok

  • analogRead ()
  • analóg bemeneti Csapok
  • potenciométer bemutató-ez jó

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.