ESP8266 - Servo Motor
Este tutorial mostra como usar o ESP8266 para controlar um servo motor. Em detalhes, vamos aprender:
- Como conectar o servo motor ao ESP8266
- Como programar o ESP8266 para controlar um servo motor
- Como controlar a velocidade de um servo motor usando o ESP8266
Hardware Necessário
Or you can buy the following kits:
| 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
Um servo motor é um componente capaz de girar o seu eixo (geralmente dentro de uma faixa de 0 a 180 graus) para controlar a posição angular de um objeto.
Pinagem do Servo Motor
O servo motor tem três pinos:
- O pino VCC (geralmente vermelho) deve ser conectado ao VCC (5V)
- O pino GND (geralmente preto ou marrom) deve ser conectado ao GND (0V)
- O pino de Sinal (geralmente amarelo ou laranja) recebe o sinal de controle PWM de um pino do ESP8266.

ESP8266 - Servo Motor
Alguns dos pinos do ESP8266 podem ser programados para produzir um sinal PWM. Conectar o pino de sinal do servo motor a um pino do ESP8266 e programá-lo para gerar PWM nesse mesmo pino nos permite controlar o servo motor.
Graças à biblioteca Servo do ESP8266, controlar um servo motor é fácil. Não precisamos entender como o servo motor funciona nem como gerar um sinal PWM. Tudo o que precisamos fazer é aprender a usar a biblioteca.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Para simplificar, o diagrama de ligação acima é usado para testes ou aprendizado, e para um servo motor de torque pequeno. Na prática, recomendamos fortemente usar uma fonte de alimentação externa para o servo motor. O diagrama de ligação abaixo mostra como conectar o servo motor a uma fonte de alimentação externa.

This image is created using Fritzing. Click to enlarge image
Como Programar para o Servo Motor
O core Arduino-ESP8266 já vem com a sua própria biblioteca de servo embutida, então não precisamos instalá-la.
- Inclua a biblioteca:
- Crie um objeto Servo:
Se você tiver mais de um servo motor, basta declarar objetos Servo adicionais:
- Atribua o pino de controle do ESP8266 ao pino de sinal do servo motor. Por exemplo, o pino D7:
- Por fim, gire o servo motor até o ângulo desejado. Por exemplo, 90°
Código ESP8266
Passos Rápidos
Para começar com o ESP8266 no Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a porta COM correspondente.
- Conecte o seu ESP8266 ao PC usando um cabo USB.
- Inicie o Arduino IDE, selecione a placa e a porta corretas.
- Copie o código fornecido e abra-o no Arduino IDE.
- Clique no botão Upload no Arduino IDE para compilar e enviar o código ao ESP8266.

- Confira o resultado: O servo motor se move nos sentidos horário e anti-horário.
Explicação do Código
Confira a explicação linha por linha contida nos comentários do código-fonte!
Como Controlar a Velocidade do Servo Motor
Utilizando as funções map() e millis(), podemos regular a velocidade do servo motor de forma suave sem atrapalhar o restante do código.