Tutorial ESP32 14/55 - Reproduzindo Notas Musicais Personalizadas Usando o Kit de Aprendizado IoT SunFounder ESP32

Tutorial ESP32 14/55 - Reproduzindo Notas Musicais Personalizadas Usando o Kit de Aprendizado IoT SunFounder ESP32

Neste tutorial, aprenderemos como usar o microcontrolador SunFounder ESP32 para tocar notas musicais usando um buzzer passivo e um transistor. O projeto tem como objetivo demonstrar como gerar som com frequências específicas controlando o buzzer através dos pinos GPIO do ESP32.

Vamos conectar um buzzer passivo ao ESP32, o que nos permitirá produzir diferentes notas musicais com base na frequência que fornecemos. Esta configuração inclui o uso de um transistor para ligar e desligar o buzzer em altas velocidades, criando ondas sonoras que podemos ouvir. Para mais esclarecimentos sobre o projeto, não deixe de conferir o vídeo (no vídeo aos 00:30).

ESP32-13-esquema-do-buzzer

Hardware Explicado

Os principais componentes utilizados neste projeto incluem o microcontrolador SunFounder ESP32, um botão piezoelétrico passivo e um transistor NPN (2N8050). O ESP32 é uma placa de desenvolvimento poderosa com capacidades integradas de Wi-Fi e Bluetooth, tornando-a versátil para várias aplicações de IoT. Neste caso, ele gerará sinais para controlar o buzzer.

O botão passivo opera gerando som quando uma voltagem alternada é aplicada a ele. Ao contrário dos botões ativos, que têm um oscilador embutido, os botões passivos requerem um sinal externo para produzir som. O transistor atua como um interruptor, permitindo que o ESP32 controle o botão sem alimentá-lo diretamente, garantindo que a classificação de corrente do microcontrolador não seja excedida.

S87050_transistor

Detalhes da Ficha Técnica

Fabricante SunFounder
Número da peça Buzzer Passivo
Tensão de Operação 3,3 V - 5 V
Frequência Resonante 2 kHz - 4 kHz
Consumo Atual ≤ 30 mA
Nível de Pressão Sonora ≥ 70 dB
Pacote Furo por onde passar
Notas / variantes None

  • Garanta a polaridade correta ao conectar o buzzer.
  • Use um resistor limitador de corrente para a base do transistor.
  • Conecte o buzzer a uma fonte de alimentação compatível com sua classificação de tensão.
  • Cuidado para não exceder a classificação máxima de corrente do transistor.
  • Mantenha a fiação organizada para evitar curto-circuitos.
  • Teste o circuito antes de carregar o código para evitar danos aos componentes.
  • Use uma placa de ensaio para conexões fáceis de componentes.
  • Certifique-se de debouncer entradas se estiver usando botões.
  • Considere adicionar um dissipador de calor para o transistor se utilizado em alta corrente.

Instruções de fiação

ESP32-13-buzzer-wriing

Para conectar os componentes, comece ligando o terminal positivo do buzzer passivo ao pino de 3,3V no ESP32. O terminal negativo do buzzer deve ser conectado ao coletor do transistor NPN. O pino do emissor do transistor deve ser ligado ao terra (GND) do ESP32.

Em seguida, conecte um resistor de 1 kΩ da base do transistor ao pino GPIO 14 do ESP32. Este resistor limita a corrente que flui para a base do transistor. Por fim, certifique-se de que todas as conexões de terra estejam interligadas para fornecer uma referência comum para o circuito.

Exemplos de Código e Tutorial

const int buzzerPin = 14; // the buzzer pin

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

No código, definimos uma variável constante.buzzerPinque está configurado para 14, indicando o pino GPIO conectado à base do transistor. Nosetup()função, configuramos este pino como uma SAÍDA, permitindo que o ESP32 controle o 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
}

Oloop()A função contém um loop que é executado 50 vezes. Em cada iteração, o alarme é ligado e desligado rapidamente, produzindo um tom. Os atrasos de 3 milissegundos controlam quanto tempo o alarme fica ativado e desativado, enquanto um atraso de 1 segundo no final do loop proporciona uma pausa antes de repetir.

Demonstração / O que Esperar

Uma vez que a fiação esteja completa e o código esteja carregado, você deve ouvir uma série de tons curtos produzidos pelo buzzer. Se o buzzer não estiver emitindo som, verifique suas conexões, especialmente a orientação do transistor e o valor do resistor. Certifique-se de que o pino correto esteja sendo usado no código e que o ESP32 esteja alimentado corretamente.

Durante a demonstração, se você enfrentar problemas, pode ser devido a fiação incorreta ou ao uso do pino errado para o buzzer. Verifique a fiação em relação às instruções e certifique-se de que a fonte de energia é adequada (no vídeo às 08:15).

Marcas de Tempo do Vídeo

  • 00:00 Início
  • 1:52 Introdução ao projeto
  • 4:11 Fiação Explicada
  • 8:11 Selecionando a placa ESP32 e a porta COM no Arduino IDE
  • 9:53 Código Arduino explicado
  • Demonstração do projeto 13:17
  • 13:58 Código e demonstração do Projeto 2

Imagens

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
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Folha de dados (pdf)