ESP32 - Sensor de Som - Servo Motor
Neste tutorial, vamos explorar como usar o sensor de som para controlar um servo motor. Em especial, vamos ver duas aplicações interessantes:
- Interruptor de som: Quando um som é detectado (por exemplo, uma batida), o ESP32 gira o servo motor para 90 graus se ele estiver em 0 grau, e para 0 grau se ele estiver em 90 graus.
- Relé ativado por som: Ao detectar um som, o ESP32 gira o servo motor para 90 graus por um período de tempo determinado e depois o gira de volta para 0 grau.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: For controlling multiple servo motors, use the PCA9685 16 Channel PWM Servo Driver Module to save MCU pins and simplify wiring.
Sobre o Servo Motor e o Sensor de Som
Se você não conhece o servo motor e o sensor de som (pinagem, como funcionam, como programar ...), aprenda sobre eles nos seguintes tutoriais:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Código ESP32 - Interruptor de Som alterna o Ângulo do Servo Motor
O código abaixo alterna o ângulo do servo motor entre 0 e 90 graus cada vez que um som é detectado.
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 no Arduino IDE.
- Faça a ligação como na imagem acima.
- Conecte a placa ESP32 ao seu PC por um cabo micro USB
- Abra o Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
- Clique no ícone de Bibliotecas na barra à esquerda do Arduino IDE.
- Digite ESP32Servo na caixa de pesquisa e procure a biblioteca de servo de Kevin Harrington,John K. Bennett.
- Clique no botão Instalar para instalar a biblioteca de servo motor para ESP32.

- Conecte o ESP32 ao PC por um cabo USB
- Abra o Arduino IDE e selecione a placa e a porta corretas
- Copie o código acima e abra no Arduino IDE
- Clique no botão Upload do Arduino IDE para fazer o upload do código para o ESP32
- Bata palmas na frente do sensor de som
- Veja a mudança no servo motor
Código ESP32 - Servo Motor ativado por som por um período de tempo
O código abaixo gira o servo motor para 90 graus por um período de tempo quando um som é detectado. Depois desse período, o servo motor volta para 0 grau.
Observe que o código acima usa a função delay() por simplicidade. Porém, se você adicionar mais código, ele pode ficar bloqueado durante o tempo de espera. Para resolver isso, o código a seguir usa uma abordagem sem bloqueio, com a função millis() em vez de delay para evitar o bloqueio.