ESP32 PWM Arduino IDE (analóg kimenet)

ebben a bemutatóban megmutatjuk, hogyan lehet PWM jeleket generálni az ESP32 segítségével Arduino IDE. Példaként egy egyszerű áramkört építünk, amely LED-et tompít az ESP32 LED PWM vezérlőjével. Azt is megmutatjuk, hogyan lehet ugyanazt a PWM jelet kapni a különböző Gpiókon egyszerre.

mielőtt folytatná ezt a bemutatót, telepítenie kell az ESP32 kiegészítőt az Arduino IDE-be., Kövesse az alábbi útmutatók egyikét az ESP32 telepítéséhez az Arduino IDE-re, ha még nem tette meg.

  • Telepítése a ESP32 Testület az Arduino IDE (Windows utasítások)
  • Telepítése a ESP32 Testület az Arduino IDE (Mac Linux utasítások)

azt is javasoljuk, hogy nézd meg a következő források:

  • első lépések ESP32 Dev Modul
  • ESP32 Bekötés Referencia: Melyik GPIO csapok kell használni?

nézze meg a videó bemutatóját

Ez a bemutató videó formátumban (lásd alább) és írásbeli formátumban (continue reading) érhető el.,

Szükséges Alkatrészek

ahhoz, Hogy követi a bemutató, hogy kell ezeket a részeket:

  • ESP32 DOIT DEVKIT V1 – Testület olvassa el a legjobb ESP32 fejlesztési tanácsok
  • 3x 5mm LED
  • 3x 330 Ohm ellenállás
  • Breadboard
  • Jumper vezetékek

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

ESP32 LED PWM vezérlő

az ESP32 LED PWM vezérlővel rendelkezik, 16 független csatornával, amelyek konfigurálhatók különböző tulajdonságokkal rendelkező PWM jelek generálására.

itt vannak a lépések, amelyeket be kell tartania, hogy tompítsa a PWM LED-et az Arduino IDE használatával:

1. Először ki kell választania egy PWM csatornát. 16 csatorna van 0-tól 15-ig.

2. Ezután be kell állítania a PWM jelfrekvenciát. LED esetén az 5000 Hz frekvencia jól használható.

3., Be kell állítania a jel szolgálati ciklusának felbontását is: 1-16 bit felbontással rendelkezik. 8 bites felbontást fogunk használni, ami azt jelenti, hogy a LED fényerejét 0-tól 255-ig vezérelheti.

4. Ezután meg kell adnia, hogy melyik GPIO-ra vagy GPIOs-ra jelenik meg a jel. Ehhez a következő függvényt fogja használni:

ledcAttachPin(GPIO, channel)

Ez a függvény két argumentumot fogad el. Az első a GPIO, amely kiadja a jelet, a második pedig a csatorna, amely generálja a jelet.

5., Végül a LED fényerejének PWM használatával történő vezérléséhez a következő funkciót használja:

ledcWrite(channel, dutycycle)

Ez a funkció argumentumként elfogadja a PWM jelet generáló csatornát, valamint a munkaciklust.

LED fényezése

nézzünk egy egyszerű példát az ESP32 LED PWM vezérlő használatához az Arduino IDE használatával.

vázlatos

huzal egy LED-et az ESP32-hez, mint az alábbi vázlatos ábrán. A LED-et a GPIO 16-hoz kell csatlakoztatni.,

(Ez a vázlat az ESP32 DEVKIT V1 modul verzióját használja 30 GPIOs – ha másik modellt használ, kérjük, ellenőrizze a használt tábla pinout-ját.)

Megjegyzés: bármilyen pin-kódot használhat, mindaddig, amíg kimenetként működhet. Minden csapok, hogy működhet kimenetek lehet használni, mint PWM csapok. További információ a ESP32 GPIOs, olvas: ESP32 Pinout referencia: melyik GPIO csapok kell használni?

Kód

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

nyers Kód megtekintése

a LED-hez csatolt pin-kód meghatározásával kezdődik. Ebben az esetben a LED a GPIO 16-hoz van csatlakoztatva.

const int ledPin = 16; // 16 corresponds to GPIO16

ezután beállítja a PWM jel tulajdonságait. 5000 Hz frekvenciát határoz meg, a jel létrehozásához válassza a 0 csatornát, majd állítsa be a 8 Bit felbontást. A különböző PWM jelek létrehozásához választhat más, az ilyenektől eltérő tulajdonságokat is.,

const int freq = 5000; const int ledChannel = 0; const int resolution = 8;

a setup(), meg kell adnia a LED-es PWM a tulajdonságok már korábban definiált segítségével a ledcSetup() függvény, amely elfogadja, mint az érveket, a ledChannel, a frekvencia, valamint a felbontás, a következőképpen:

ledcSetup(ledChannel, freq, resolution);

a Következő, meg kell választani a GPIO megkapja a jelet. Ehhez használja a ledcAttachPin() függvényt, amely argumentumként elfogadja a GPIO-t, ahol a jelet szeretné kapni, valamint a jelet generáló csatornát. Ebben a példában megkapjuk a jelet a ledPin GPIO-ban, amely megfelel a GPIO 16-nak., A jelet generáló csatorna a ledcsatorna, amely megfelel a 0 csatornának.

ledcAttachPin(ledPin, ledChannel);

a hurokban 0 és 255 között változik a munkaciklus a LED fényerejének növeléséhez.

majd 255 és 0 között a fényerő csökkentése érdekében.

a LED fényerejének beállításához csak a ledcWrite() funkciót kell használnia, amely argumentumként elfogadja a jelet generáló csatornát, valamint a munkaciklust.

ledcWrite(ledChannel, dutyCycle);

mivel 8 bites felbontást használunk, a munkaciklus 0-tól 255-ig terjedő értékkel lesz szabályozva., Vegye figyelembe, hogy a ledcWrite() funkcióban a jelet generáló csatornát használjuk, nem pedig a GPIO-t.

A példa tesztelése

töltse fel a kódot az ESP32-re. Győződjön meg róla, hogy a megfelelő board és COM port van kiválasztva. Nézd meg az áramkört. Rendelkeznie kell egy dimmer LED-del, amely növeli és csökkenti a fényerőt.

ugyanazt a jelet kapja különböző Gpiókon

ugyanazon a csatornán ugyanazt a jelet kaphatja különböző Gpiókban., Ennek eléréséhez csak azokat a Gpiókat kell csatolnia ugyanahhoz a csatornához a beállításon ().

módosítsuk az előző példát, hogy 3 LED-et tompítsunk ugyanazzal a PWM jelrel ugyanazon a csatornán.

sematikus

adjon hozzá még két LED – et az áramkörhöz a következő vázlatos diagram követésével:

(Ez a vázlat az ESP32-t használja devkit v1 modul verzió 30 Gpios-ha egy másik modell, ellenőrizze a pinout a fórumon használ.,)

Kód

másolja a következő kódot az Arduino IDE-be.

Raw Kód megtekintése

Ez ugyanaz a kód, mint az előző, de néhány módosítással. Két további változót definiáltunk két új LED-re, amelyek a GPIO 17-re és a GPIO 5-re vonatkoznak.

const int ledPin2 = 17; // 17 corresponds to GPIO17 const int ledPin3 = 5; // 5 corresponds to GPIO5

ezután a beállításban () a következő sorokat adtuk hozzá, hogy mindkét Gpiót hozzárendeljük a 0 csatornához. Ez azt jelenti, hogy ugyanazt a jelet kapjuk, amelyet a 0 csatornán generálunk, mindkét Gpión.

ledcAttachPin(ledPin2, ledChannel); ledcAttachPin(ledPin3, ledChannel);

a projekt tesztelése

töltse fel az új vázlatot az ESP32-re., Győződjön meg róla, hogy a megfelelő board és COM port van kiválasztva. Most nézze meg az áramkörét:

minden GPIO ugyanazt a PWM jelet adja ki. Tehát mind a három LED egyidejűleg növeli és csökkenti a fényerőt, ami szinkronizált hatást eredményez.

összefoglalva, ebben a bejegyzésben megtanulta, hogyan kell használni az ESP32 LED PWM vezérlőjét az Arduino IDE-vel, hogy tompuljon egy LED., A megtanult fogalmak felhasználhatók más kimenetek vezérlésére a PWM segítségével a jel megfelelő tulajdonságainak beállításával.

az ESP32 – vel kapcsolatos egyéb oktatóanyagok is tetszenek:

  • ESP32 webszerver – Arduino IDE
  • ESP32 adatnaplózási hőmérséklet a MicroSD kártyára
  • ESP32 webszerver BME280 – Mini meteorológiai állomás
  • ESP32 vs ESP8266-előnyök és hátrányok

Ez egy részlet a tanfolyamunkból: Tanuld meg az ESP32-t a Arduino IDE. Ha tetszik ESP32 és szeretne többet megtudni, javasoljuk beiratkozott tanulni ESP32 Arduino IDE tanfolyam.

Leave a Comment