Tutorial ESP32 14/55 - Riproduzione di note musicali personalizzate utilizzando il kit di apprendimento IoT SunFounder ESP32

Tutorial ESP32 14/55 - Riproduzione di note musicali personalizzate utilizzando il kit di apprendimento IoT SunFounder ESP32

In questo tutorial, impareremo come utilizzare il microcontrollore SunFounder ESP32 per riprodurre note musicali utilizzando un buzzer passivo e un transistor. Il progetto si propone di dimostrare come generare suono con frequenze specifiche controllando il buzzer tramite i pin GPIO dell'ESP32.

Collegheremo un buzzer passivo all'ESP32, il che ci permetterà di produrre diverse note musicali in base alla frequenza che forniamo. Questo setup include l'uso di un transistor per accendere e spegnere il buzzer ad alta velocità, creando onde sonore udibili. Per ulteriori chiarimenti sul progetto, assicurati di controllare il video (nel video a 00:30).

ESP32-13-schema-buzzer

Hardware spiegato

I componenti principali utilizzati in questo progetto includono il microcontrollore SunFounder ESP32, un cicalino passivo e un transistor NPN (2N8050). L'ESP32 è una scheda di sviluppo potente con funzionalità Wi-Fi e Bluetooth integrate, rendendola versatile per varie applicazioni IoT. In questo caso, genererà segnali per controllare il cicalino.

Il buzzer passivo funziona generando suono quando viene applicata una tensione alternata. A differenza dei buzzer attivi, che hanno un oscillatore integrato, i buzzer passivi richiedono un segnale esterno per produrre suono. Il transistor funge da interruttore, consentendo all'ESP32 di controllare il buzzer senza alimentarlo direttamente, assicurando che il valore di corrente del microcontrollore non venga superato.

S87050_transistor

Dettagli della scheda tecnica

Produttore SunFounder
Numero di parte Buzzer passivo
Tensione di funzionamento 3,3 V - 5 V
Frequenza di risonanza 2 kHz - 4 kHz
Consumo attuale ≤ 30 mA
Livello di Pressione Sonora ≥ 70 dB
Pacco Passante
Note / varianti None

  • Assicurati di collegare il buzzer con la polarità corretta.
  • Utilizzare una resistenza di limitazione della corrente per la base del transistor.
  • Collega il cicalino a un'alimentazione elettrica compatibile con la sua tensione nominale.
  • Attenzione a non superare la corrente massima del transistor.
  • Mantieni il cablaggio ordinato per evitare cortocircuiti.
  • Testare il circuito prima di caricare il codice per evitare danni ai componenti.
  • Usa una scheda a strisce per collegamenti semplici dei componenti.
  • Assicurati di debouncare gli input se utilizzi pulsanti.
  • Considera di aggiungere un dissipatore di calore per il transistor se utilizzato a corrente elevata.

Istruzioni di cablaggio

ESP32-13-buzzer-wriing

Per cablare i componenti, inizia collegando il terminale positivo del buzzer passivo al pin da 3,3V sull'ESP32. Il terminale negativo del buzzer dovrebbe essere collegato al collettore del transistor NPN. Il pin dell'emettitore del transistor dovrebbe essere cablato a massa (GND) dell'ESP32.

Successivamente, collega una resistenza da 1 kΩ dalla base del transistor al pin GPIO 14 dell'ESP32. Questa resistenza limita la corrente che fluisce nella base del transistor. Infine, assicurati che tutte le connessioni di massa siano collegate insieme per fornire un riferimento comune per il circuito.

Esempi di codice e guida passo passo

const int buzzerPin = 14; // the buzzer pin

void setup()
{
  pinMode(buzzerPin, OUTPUT); // Set as output
}

Nel codice, definiamo una variabile costante.buzzerPinche è impostato su 14, indicando il pin GPIO collegato alla base del transistor. Nelsetup()funzione, impostiamo questo pin come OUTPUT, permettendo all'ESP32 di controllare il buzzer.

void loop()
{
  for (int i = 0; i < 50; i++) // Loop 50 times and play a short tone each time
  {
    digitalWrite(buzzerPin, HIGH); // Set to HIGH to make the buzzer sound
    delay(3); // Wait for 3 milliseconds
    digitalWrite(buzzerPin, LOW); // LOW to turn off the buzzer
    delay(3); // 
  }
  delay(1000); // Wait for 1s before starting the next loop
}

Illoop()La funzione contiene un ciclo for che viene eseguito 50 volte. Ogni iterazione accende e spegne rapidamente il buzzer, producendo un tono. I ritardi di 3 millisecondi controllano per quanto tempo il buzzer è attivato e disattivato, mentre un ritardo di 1 secondo alla fine del ciclo fornisce una pausa prima di ripetere.

Dimostrazione / Cosa Aspettarsi

Una volta completato il cablaggio e caricato il codice, dovresti sentire una serie di toni brevi prodotti dal buzzer. Se il buzzer non emette suoni, controlla le tue connessioni, in particolare l'orientamento del transistor e il valore della resistenza. Assicurati che il pin corretto sia utilizzato nel codice e che l'ESP32 sia alimentato correttamente.

Durante la dimostrazione, se riscontri problemi, potrebbe essere dovuto a un cablaggio errato o all'uso del pin sbagliato per il buzzer. Controlla il cablaggio secondo le istruzioni e assicurati che l'alimentazione sia adeguata (nel video alle 08:15).

Timestamp video

  • 00:00 Inizio
  • 1:52 Introduzione al progetto
  • 4:11 Spiegazione dei cablaggi
  • 8:11 Selezionare la scheda ESP32 e la porta COM su Arduino IDE
  • 9:53 Codice Arduino spiegato
  • 13:17 Dimostrazione del progetto
  • 13:58 Codice e dimostrazione del Progetto 2

Immagini

ESP32-13-buzzer-wriing
ESP32-13-buzzer-wriing
ESP32-13-buzzer-schematic
ESP32-13-buzzer-schematic
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
S87050_transistor
S87050_transistor
813-ESP32 Tutorial 14/55- Arduino code for custom music tone
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Scheda tecnica (pdf)