Conectarea și controlul unui modul piezo (buzzer) cu ESP32 

Azi m-am jucat cu un modul piezo (buzzer), care am încercat să-l controlez cu un ESP32.

Un modul piezo (buzzer) este un dispozitiv care convertește energia electrica in energie mecanica (vibrații) și invers. Acest lucru se face prin intermediul unui cristal de piezoelectric, care este un material care generează o tensiune electrica atunci când este comprimat sau distorsionat mecanic. In modulul piezo, cristalul de piezoelectric este lipit de un disc metalic sau de un element de rezonanta, care amplifica vibrațiile și le transformă în sunet.

Când un semnal electric este aplicat la pinii modulului piezo (buzzer), acesta generează o tensiune electrica care cauzează comprimarea sau distorsionarea cristalului de piezoelectric. Acest lucru determina elementul de rezonanta sa vibreze, generând un sunet.

Modulul piezo (buzzer) poate fi utilizat pentru generarea unor sunete simple, cum ar fi bip-uri sau sunete de alarma, sau pentru a controla un dispozitiv mecanic, cum ar fi un motor sau un led. Este important de remarcat ca modulul piezo nu poate fi utilizat pentru a reda sunete complexe sau muzica, deoarece acesta nu are o plaja dinamica suficient de mare pentru a genera sunete cu o amplitudine variabila.

Controlarea sunetului unui modul piezo se face folosind un semnal PWM (Pulse Width Modulation). PWM-ul permite controlul intensității sunetului generat de modulul piezo prin modificarea raportului de durata de semnal pozitiv și semnal negativ.

Pentru a controla un modul piezo (buzzer) prin PWM, conectați modulul piezo la un pin de ieșire digital al ESP32 și utilizați funcția “ledcWrite” pentru a seta valoarea dorită pentru duty cycle. Cu cat este mai mare duty cycle, cu atât este mai puternic sunetul generat de modulul piezo.

 Pe lângă controlarea modulului piezo am programat și un webserver unde am adăgat câteva butoane pentru a rula cântecelele  (vezi codul de mai jos).  

 

Configurarea PMW-ului

Pentru a inițializa PWM-ul pe ESP32, urmați acești pași:

  1. Includeți biblioteca ESP32 pentru PWM in proiectul dvs.
  2. Apelați funcția “ledcSetup” pentru a configura canalul PWM dorit. Aceasta funcție are următorii parametri: canal, frecventa, rezoluție.
  3. Apelați funcția “ledcAttachPin” pentru a atașa canalul PWM configurat anterior la pinul fizic dorit.
  4. Apelați funcția “ledcWrite” pentru a seta valoarea dorită pentru duty cycle-ul canalului PWM (vezi funcția my_tone).

Schema electronică/sistem

Pentru a conecta un modul piezo la un ESP32, urmați acești pași:

  1. Conectați pini de semnal și masa modulului piezo la pinii de pe ESP32. Pinul de semnal se conectează la un pin de ieșire digital (eu de ex. am folosit pinul D14), iar pinul de masa se conectează la un pin GND al ESP32. Pe lângă asta trebuie conectat și pinul VIN de la piezo la pinul 3V3 de la ESP32. În poza schema de mai jos am folosit un modul piezo din biblioteca Fritzing, care arată un pic diferit. Modulul meu are pinul de I/O pe mijloc.
  2. Utilizați biblioteca “tone” pentru a genera semnalul audio.
  3. In codul dvs, configurați pinul de ieșire ca pin de ieșire digital și apelați funcția tone() pentru a genera tonul dorit.
Conectarea și controlul unui modul piezo (buzzer) cu ESP32

Rezultat 

 Poza cu conectarea
Conectați pini de semnal și masa modulului piezo (buzzer) la pinii de pe ESP32

Interfața serverului web 

Interfața serverului web

Filmuleț cu demonstrația

Componente

Cod de test din Github (în primele linii comentate se află configurația pentru platformIO din Visual studio code)

Documentație proiect

Afiliere eMag

 Linkurile de la secțiunea “Componente” conțin adresa mea de afiliere la eMag.ro, iar dacă cumperi folosind aceste linkuri vei susține blogul meu. Mulțumesc! 

eMag Genius:
Hai și tu în Genius! Abonează-te la Genius 12 luni și primești beneficii premium și 20 lei card cadou eMAG. Profită acum! eMag Genius

Mulțumesc pentru atenție!

Pentru întrebari și/sau consultanță tehnică vă stau la dispozitie pe blog mai jos în secțiunea de comentarii sau pe email simedruflorin@automatic-house.ro. O zi și seară plăcută tuturor !  

La mulți ani România!

 Back to top of page

De Florin Simedru

Autor

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *


The reCAPTCHA verification period has expired. Please reload the page.