ESP32 ADC – Analóg értékek olvasása Arduino IDE-vel

ez a cikk bemutatja, hogyan lehet analóg bemeneteket olvasni az ESP32-vel az Arduino IDE használatával. Az analóg olvasás hasznos a változó ellenállások, például a potenciométerek vagy az analóg érzékelők értékeinek olvasásához.

ESP32 ADC Analóg értékek olvasása az Arduino IDE segítségével

az analóg bemenetek olvasása az ESP32-vel ugyanolyan egyszerű, mint az analogRead(GPIO) funkció használata, amely argumentumként elfogadja az olvasni kívánt GPIO-t.

mi is más útmutatók, hogyan kell használni analóg csapok ESP fórumon:

  • ESP8266 ADC-Analóg értékek olvasása Arduino IDE, MicroPython és Lua
  • ESP32 Analóg értékek MicroPython

nézze meg a videót

meg lehet nézni a videó bemutató, vagy olvassa tovább ezt az oldalt az írásbeli utasításokat.

Analóg bemenetek (ADC)

az analóg érték leolvasása az ESP32-vel azt jelenti, hogy 0 V és 3,3 V közötti feszültségszinteket mérhet.

a mért feszültséget ezután 0 és 4095 közötti értékhez rendeljük, amelyben a 0 V 0-nak, a 3,3 V pedig 4095-nek felel meg. A 0 V és 3,3 V közötti feszültség között a megfelelő értéket kapjuk.

ESP32 ADC Analóg olvasási bemeneti tartomány értéke

az ADC nemlineáris

ideális esetben lineáris viselkedésre számíthat az ESP32 ADC csapok használatakor. Ez azonban nem történik meg. Amit kapsz, az a következő ábrán látható viselkedés:

ez a viselkedés azt jelenti, hogy az ESP32 nem képes megkülönböztetni a 3-at.3 V-tól 3,2 V. mindkét feszültségnél ugyanazt az értéket kapja: 4095.

ugyanez történik a nagyon alacsony feszültségű értékeknél is: 0 V és 0,1 V esetén ugyanazt az értéket kapjuk: 0. Ezt szem előtt kell tartania az ESP32 ADC csapok használatakor.

van egy vita GitHub erről a témáról.

analogRead() funkció

analóg bemenet olvasása az ESP32-vel az Arduino IDE használatával ugyanolyan egyszerű, mint az analogRead() funkció használata. Érvként elfogadja az olvasni kívánt GPIO-t:

analogRead(GPIO);

az ESP32 18 különböző csatornán támogatja a méréseket. Csak 15 érhető el a DEVKIT V1 DOIT fórumon (30 GPIOs verzió).

fogja meg az ESP32 tábla pinout-ját, és keresse meg az ADC csapokat. Ezeket az alábbi ábrán piros szegéllyel emeljük ki.

ESP32 ADC GPIOs Csapok

Tudjon meg többet az ESP32 GPIOs-ról: ESP32 Pinout referencia.

ezek az analóg bemeneti csapok 12 bites felbontásúak. Ez azt jelenti, hogy ha analóg bemenetet olvas, annak tartománya 0-tól 4095-ig változhat.

Megjegyzés: Az ADC2 csapok nem használhatók Wi-Fi használata esetén. Tehát, ha Wi-Fi-t használ, és problémái vannak az érték megszerzésével egy ADC2 GPIO-ból, akkor fontolóra veheti az ADC1 GPIO használatát, ami megoldhatja a problémát.

egyéb hasznos funkciók

vannak más fejlettebb funkciók az ADC tűkkel, amelyek hasznosak lehetnek más projektekben.

  • analogReadResolution(resolution): állítsa be a minta biteket és felbontást. Értéke 9 (0 – 511) és 12 bit (0 – 4095) között lehet. Az alapértelmezett 12 bites felbontás.
  • analogSetWidth(szélesség): állítsa be a minta biteket és felbontást. Értéke 9 (0 – 511) és 12 bit (0 – 4095) között lehet. Az alapértelmezett 12 bites felbontás.
  • analogSetCycles(ciklusok): állítsa be a ciklusok számát mintánként. Az alapértelmezett érték 8. Hatótávolság: 1-től 255-ig.
  • analogSetSamples(samples): állítsa be a tartományban lévő minták számát. Az alapértelmezett érték 1 minta. Ez növeli az érzékenységet.
  • analogSetClockDiv(csillapítás): állítsa be az ADC óra elválasztóját. Az alapértelmezett érték 1. Hatótávolság: 1-től 255-ig.
  • analogSetAttenuation(csillapítás): beállítja az összes ADC-tű bemeneti csillapítását. Az alapértelmezett érték az ADC_11db. Elfogadott értékek:
    • ADC_0db: nincs csillapítás beállítása. Az ADC akár 800 mV-ot is képes mérni (1V bemenet = 1088 ADC leolvasása).
    • ADC_2_5db: az ADC bemeneti feszültsége gyengül, a mérési tartományt kb. 1100 mV. (1V bemenet = 3722 ADC olvasása).
    • ADC_6db: az ADC bemeneti feszültsége gyengül, a mérési tartományt kb. 1350 mV. (1V bemenet = 3033 ADC olvasása).
    • ADC_11db: az ADC bemeneti feszültsége gyengül, a mérési tartományt kb. 2600 mV. (1V bemenet = 1575 ADC olvasása).
  • analogSetPinAttenuation(pin, attenuation): a megadott pin bemeneti csillapításának beállítása. Az alapértelmezett érték az ADC_11db. A csillapítási értékek megegyeznek az előző funkcióval.
  • adcAttachPin(pin): csatlakoztasson egy csapot az ADC-hez (törli a többi analóg módot is, amely be lehet kapcsolva). Igaz vagy hamis eredményt ad vissza.
  • adcStart(pin), adcBusy(pin) és resultadcEnd(pin): elindítja az ADC átalakítást a csatolt pin buszán. Ellenőrizze, hogy a pin ADC buszán jelenleg fut-e a konverzió (TRUE vagy FALSE értéket ad vissza). Szerezd meg a konverzió eredményét: 16 bites egész számot ad vissza.

van egy nagyon jó videó elmagyarázza ezeket a funkciókat, hogy meg lehet nézni itt.

olvassa el az analóg értékeket egy Potenciométerről az ESP32

segítségével, hogy megnézze, hogyan kapcsolódik össze minden, egyszerű példát készítünk egy analóg érték olvasására egy potenciométerről.

ebben a példában a következő részekre van szükség:

  • ESP32 doit DEVKIT V1 tábla (olvassa el a legjobb ESP32 Fejlesztő táblák)
  • potenciométer
  • Breadboard
  • áthidaló vezetékek

használhatja az előző linkeket, vagy közvetlenül a MakerAdvisor.com/tools ahhoz, hogy megtalálja az összes alkatrész a projektek a legjobb áron!

vázlatos

csatlakoztasson egy potenciométert az ESP32 készülékhez. A potenciométer középső csapját a GPIO 34-hez kell csatlakoztatni. Referenciaként használhatja a következő sematikus ábrát.

olvassa el az értéket az ESP32 Arduino IDE Potenciométerről

Kód

az ESP32-t az Arduino IDE használatával programozzuk, ezért a folytatás előtt ellenőrizze, hogy telepítve van-e az ESP32 kiegészítő:

  • Windows utasítások-ESP32 tábla Arduino IDE-ben
  • Mac és Linux utasítások-ESP32 tábla Arduino IDE-ben

nyissa meg az Arduino IDE-t, és másolja a következő kódot.

// Potentiometer is connected to GPIO 34 (Analog ADC1_CH6) const int potPin = 34;// variable for storing the potentiometer valueint potValue = 0;void setup() { Serial.begin(115200); delay(1000);}void loop() { // Reading potentiometer value potValue = analogRead(potPin); Serial.println(potValue); delay(500);}

View raw code

ez a kód egyszerűen beolvassa a potenciométer értékeit, és kinyomtatja azokat a Soros monitoron.

a kódban először meg kell határozni azt a GPIO-t, amelyhez a potenciométer csatlakozik. Ebben a példában a GPIO 34.

const int potPin = 34;

a setup () programban inicializáljon egy soros kommunikációt 115200 átviteli sebességgel.

Serial.begin(115200);

a hurok(), használja a analogRead()funkció olvasni az analóg bemenet a potPin.

potValue = analogRead(potPin);

végül nyomtassa ki a potenciométerről leolvasott értékeket a Soros monitoron.

Serial.println(potValue);

töltse fel a megadott kódot az ESP32-re. Győződjön meg arról, hogy a megfelelő tábla és COM port van kiválasztva az Eszközök menüben.

a példa tesztelése

a kód feltöltése és az ESP32 reset gomb megnyomása után nyissa meg a Soros monitort 115200 átviteli sebességgel. Forgassa el a potenciométert, és nézze meg az értékek változását.

olvassa el a potenciométert ESP32 analogRead

a maximális érték 4095, a minimális érték pedig 0.

olvassa el a potenciométert ESP32 analogRead soros monitor Arduino IDE bemutató

csomagolás

ebben a cikkben megtanulta, hogyan kell olvasni az analóg bemeneteket az ESP32 használatával az Arduino IDE-vel. Összefoglalva:

  • az ESP32 DEVKIT V1 DOIT kártya (30 tűs verzió) 15 ADC tűvel rendelkezik, amelyek segítségével analóg bemeneteket olvashat.
  • ezek a csapok felbontása 12 bit, ami azt jelenti, hogy 0-tól 4095-ig kaphat értékeket.
  • az Arduino IDE értékének olvasásához egyszerűen használja az analogRead() függvényt.
  • az ESP32 ADC csapok nem lineáris viselkedést mutatnak. Valószínűleg nem fog tudni különbséget tenni 0 és 0.1 V, vagy 3.2 és 3.3 V között.ezt szem előtt kell tartania az ADC csapok használatakor.

reméljük, hogy hasznosnak találta ezt a rövid útmutatót. Ha többet szeretne megtudni az ESP32-ről, jelentkezzen be tanfolyamunkra: Ismerje meg az ESP32-et az Arduino IDE segítségével.

Egyéb ESP32 útmutatók, amelyek szintén tetszhetnek:

  • ESP32 OLED kijelző Arduino IDE
  • ESP32 DHT hőmérséklet és páratartalom érzékelő segítségével Arduino IDE
  • ESP32 webszerver DHT olvasmányok
  • 20+ ESP32 projektek és oktatóanyagok

köszönöm az olvasást.

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

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

Previous post hogyan Ian McKellen szinte nem játszotta Gandalfot
Next post Capital Orthopedic Specialists – Lanham