ESP32 PWM cu Arduino IDE (Ieșire Analogică)

În acest tutorial vă vom arăta cum de a genera semnale PWM cu ESP32 folosind Arduino IDE. De exemplu, vom construi un circuit simplu care întunecă un LED folosind controlerul LED PWM al ESP32. Vă vom arăta, de asemenea, cum puteți obține același semnal PWM pe diferite GPIO în același timp.

Înainte de a continua cu acest tutorial, ar trebui să aibă ESP32 add-on instalat în Arduino IDE., Urmați unul dintre următoarele Tutoriale pentru a instala ESP32 pe Arduino IDE, dacă nu ați făcut-o deja.

  • Instalarea ESP32 Bord în Arduino IDE (Windows instructiuni)
  • Instalarea ESP32 Bord în Arduino IDE (Mac și Linux instructiuni)

de asemenea, Am recomandăm să luați o privire la următoarele resurse:

  • Obtinerea a Început cu ESP32 Dev Modulul
  • ESP32 Pinout de Referință: Care pini GPIO ar trebui să utilizați?

urmăriți tutorialul video

acest tutorial este disponibil în format video (urmăriți mai jos) și în format scris (continuați să citiți).,

Piese Necesare

Pentru a urma acest tutorial aveti nevoie de aceste componente:

  • ESP32 DOIT DEVKIT V1 Bord – citeste mai bun ESP32 placi de dezvoltare
  • 3x 5mm LED-uri
  • 3x 330 Ohm rezistor
  • Bord
  • cabluri de legătură

puteți folosi link-uri precedente sau du-te direct la MakerAdvisor.com/tools pentru a găsi toate piesele de schimb pentru proiecte la cel mai bun pret!,

ESP32 LED-uri Controler PWM

ESP32 are un LED controler PWM cu 16 canale independente, care poate fi configurat pentru a genera semnale PWM cu proprietăți diferite.

iată pașii pe care va trebui să îi urmați pentru a diminua un LED cu PWM utilizând IDE-ul Arduino:

1. În primul rând, trebuie să alegeți un canal PWM. Există 16 canale de la 0 la 15.

2. Apoi, trebuie să setați frecvența semnalului PWM. Pentru un LED, o frecvență de 5000 Hz este bine de utilizat.

3., De asemenea, trebuie să setați rezoluția ciclului de funcționare a semnalului: aveți rezoluții de la 1 la 16 biți. Vom folosi rezoluția pe 8 biți, ceea ce înseamnă că puteți controla luminozitatea LED-ului folosind o valoare de la 0 la 255.

4. Apoi, trebuie să specificați la care GPIO sau GPIOs va apărea semnalul. Pentru aceasta, veți folosi următoarea funcție:

ledcAttachPin(GPIO, channel)

această funcție acceptă două argumente. Primul este GPIO care va emite semnalul, iar al doilea este canalul care va genera semnalul.

5., În cele din urmă, pentru a controla luminozitatea LED folosind PWM, utilizați următoarea funcție:

ledcWrite(channel, dutycycle)

această funcție acceptă ca argumente canalul care generează semnalul PWM și ciclul de funcționare.

întunecarea unui LED

Să vedem un exemplu simplu pentru a vedea cum să utilizați controlerul PWM LED ESP32 folosind IDE Arduino.

schematică

conectați un LED la ESP32 ca în următoarea diagramă schematică. LED-ul trebuie conectat la GPIO 16.,

(Această schemă folosește ESP32 DEVKIT V1 modul versiunea cu 30 GPIOs – dacă utilizați un alt model, vă rugăm să verificați pinout pentru tabla pe care îl utilizați.)

Notă: puteți utiliza orice pin doriți, atât timp cât poate acționa ca o ieșire. Toate pinii care pot acționa ca ieșiri pot fi folosite ca pinii PWM. Pentru mai multe informații despre ESP32 GPIOs, citiți: ESP32 pinout referință: ce pini GPIO ar trebui să utilizați?

Cod

deschideți IDE-ul Arduino și copiați următorul cod.,

Vizualizați codul brut

începeți prin definirea pinului la care este atașat LED-ul. În acest caz, LED-ul este atașat la GPIO 16.

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

apoi, setați proprietățile semnalului PWM. Definiți o frecvență de 5000 Hz, alegeți canalul 0 pentru a genera semnalul și setați o rezoluție de 8 biți. Puteți alege alte proprietăți, diferite de acestea, pentru a genera diferite semnale PWM.,

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

În setup(), trebuie să configurați LED PWM cu proprietățile pe care le-am definit mai devreme, cu ajutorul ledcSetup() funcție care acceptă ca argumente, ledChannel, frecvența și rezoluția, după cum urmează:

ledcSetup(ledChannel, freq, resolution);

Apoi, aveți nevoie pentru a alege GPIO vei primi semnal de la. Pentru aceasta utilizați funcția ledcAttachPin () care acceptă ca argumente GPIO unde doriți să obțineți semnalul și canalul care generează semnalul. În acest exemplu, vom primi semnalul în ledPin GPIO, care corespunde GPIO 16., Canalul care generează semnalul este led-ulcanal, care corespunde canalului 0.

ledcAttachPin(ledPin, ledChannel);

în buclă, veți varia ciclul de funcționare între 0 și 255 pentru a crește luminozitatea LED-ului.

și apoi, între 255 și 0 pentru a reduce luminozitatea.pentru a seta luminozitatea LED-ului, trebuie doar să utilizați funcția ledcWrite() care acceptă ca argumente canalul care generează semnalul și ciclul de funcționare.

ledcWrite(ledChannel, dutyCycle);

pe măsură ce folosim rezoluția pe 8 biți, ciclul de funcționare va fi controlat folosind o valoare de la 0 la 255., Rețineți că în funcția ledcWrite() folosim canalul care generează semnalul și nu GPIO.

testarea exemplului

încărcați codul pe ESP32. Asigurați-vă că aveți placa de dreapta și portul COM selectat. Uită-te la Circuitul tău. Ar trebui să aveți un LED dimmer care crește și scade luminozitatea.

Primesc Acelasi Semnal pe Diferite GPIOs

puteți obține același semnal de la același canal în diferite GPIOs., Pentru a realiza acest lucru, trebuie doar să atașați acele GPIO la același canal din setup().

să modificăm exemplul anterior pentru a diminua 3 LED-uri folosind același semnal PWM de pe același canal.

Schematică

se Adaugă două mai multe Led-uri pentru circuit de după următoarea schemă de principiu:

(Această schemă folosește ESP32 DEVKIT V1 modul versiunea cu 30 GPIOs – dacă utilizați un alt model, vă rugăm să verificați pinout pentru tabla pe care îl utilizați.,)

Cod

copiați următorul cod în IDE-ul Arduino.

Vizualizați codul brut

acesta este același cod ca cel precedent, dar cu unele modificări. Am definit încă două variabile pentru două LED-uri noi, care se referă la GPIO 17 și GPIO 5.

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

apoi, în setup(), am adăugat următoarele linii pentru a atribui ambele GPIO canalului 0. Acest lucru înseamnă că vom obține același semnal, care este generat pe canalul 0, pe ambele GPIO.

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

testarea proiectului

încărcați noua schiță pe ESP32., Asigurați-vă că aveți placa de dreapta și portul COM selectat. Acum, ia o privire la circuit:

Toate GPIOs se scoate același semnal PWM. Deci, toate cele trei LED-uri cresc și scad luminozitatea simultan, rezultând un efect sincronizat.

Ambalaj

În rezumat, în acest post, te-am învățat cum să utilizați LED-uri controler PWM de ESP32 cu Arduino IDE la dim un LED., Conceptele învățate pot fi folosite pentru a controla alte ieșiri cu PWM prin setarea proprietăților corecte la semnal.

Avem si alte tutoriale legate cu ESP32 care ați putea dori, de asemenea:

  • ESP32 Web Server – Arduino IDE
  • ESP32 Datele de Logare de Temperatură pentru Card MicroSD
  • ESP32 Server Web cu BME280 – Mini Statie Meteo
  • ESP32 vs ESP8266 – argumente Pro și Contra

Acesta este un fragment din cursul nostru: Afla ESP32 cu Arduino IDE. Dacă vă place ESP32 și doriți să aflați mai multe, vă recomandăm să vă înscrieți la cursul Learn ESP32 cu Arduino IDE.

Leave a Comment