Como usar o motor shield para ESP8266 NodeMCU
No post de hoje vamos mostrar como usar o módulo ESP8266 NodeMCU para controle de motores DC, usando o Motor Shield para Módulo Wifi ESP8266 NodeMCU, um componente bem interessante que você pode usar por exemplo para montar um robô controlado remotamente.
O motor shield ESP8266 NodeMCU
Este shield, como o próprio nome já diz, suporta um módulo ESP8266 NodeMCU, muito utilizado em projetos de IoT (Internet das Coisas) e automação residencial, sendo em muitas situações uma ótima opção para substituir o Arduino nos seus projetos. Por ter conexão wifi nativa, os módulos da linha ESP8266 e ESP32 são muito usados para controle remoto de aparelhos e envio dos dados do projeto para a nuvem.
O shield usa o controlador L293D (datasheet) e pode controlar até dois motores DC com corrente máxima de 1.2A.

Além do controle dos motores, a placa tem botão liga/desliga, conectores para utilização das interfaces serial/UART e SPI, GPIO e opções de Enable e Reset do ESP8266:

No lado esquerdo podemos ver os bornes com parafusos, onde na parte superior temos os conectores de controle dos motores e na parte de baixo os bornes de alimentação dos motores (4.5 à 36VDC) e do NodeMCU (4.5 à 9VDC).
Conexão de motores no shield
A conexão dos motores DC no motor shield é muito simples e segue o esquema abaixo. O primeiro motor é conectado nos bornes A- e A+, e o segundo motor nos bornes B- e B+.
Preste atenção na conexão do ESP8266 NodeMCU. A antena deve ficar virada para o lado de fora da placa, conforme mostrado no circuito abaixo:

Recomendamos utilizar alimentação separada para os motores e o NodeMCU, ok?
Instalando o NodeMCU na IDE Arduino
Antes de mais nada precisamos configurar a IDE para que ela reconheça o nosso ESP8266 NodeMCU. Para isso, entre na IDE, e no menu Arquivo acesse Preferências.
No campo URLs Adicionais para Gerenciadores de Placas coloque esta URL:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Clique em OK e agora selecione o menu Ferramentas -> Placa – Gerenciador de Placas. Na tela do Gerenciador, procure por ESP8266 e selecione o esp8266 by ESP8266 Community. Clique em instalar pra finalizar:

Se tudo estiver ok, as placas da linha ESP8266 aparecerão na lista de placas disponíveis, bastando selecionar NodeMCU 1.0, conforme a imagem abaixo:

Finalizada a instalação da placa, vamos ao programa.
Programa motor shield ESP8266 NodeMCU
O nosso programa de testes não utiliza nenhuma biblioteca específica, usando somente as funções de PWM e portas digitais para controlar o sentido e a força do motor.
Os pinos dos motores são conectados ao NodeMCU seguindo a tabela abaixo:
| Pinos Motor | Pino NodeMCU | Pinos Arduino |
| A- | 1 | 5 |
| A+ | 3 | 0 |
| B- | 2 | 4 |
| B+ | 4 | 2 |
Como estamos usando a IDE do Arduino para programação do NodeMCU, devemos seguir os pinos mostrados na coluna da direita (5, 0, 4 e 2).
Nos pinos A- e B- vamos utilizar PWM (usando o comando analogWrite) pois essa saída configura a força com que os motores vão girar. Já as saídas A+ e B+ são utilizadas para determinar o sentido de rotação dos motores (nesse caso usamos portas digitais com o valor 0 ou 1 (Low ou High).
//Programa: NodeMCU ESP8266 Motor Driver Shield
//Autor: Arduino e Cia
void setup()
{
Serial.begin(9600);
//Define os pinos de controle do motor como saida
//Motor 1
pinMode(5, OUTPUT); // saída A-
pinMode(0, OUTPUT); // saída A+
//Motor 2
pinMode(4, OUTPUT); // saída B-
pinMode(2, OUTPUT); // saída B+
}
void loop()
{
//Gira os motores no sentido horario
//Aciona motor 1
analogWrite(5, 1024);
digitalWrite(0, HIGH);
//Aciona motor 2
analogWrite(4, 1024);
digitalWrite(2, HIGH);
//Aguarda 2 segundos
delay(2000);
//Gira os motores no sentido anti-horario
//Aciona motor 1
analogWrite(5, 1024);
digitalWrite(0, LOW);
//Aciona motor 2
analogWrite(4, 1024);
digitalWrite(2, LOW);
//Aguarda 2 segundos e reinicia o processo
delay(2000);
}
Este foi um exemplo básico de como usar o Motor Shield para ESP8266 NodeMCU. Em um próximo post sobre ele vamos ver como controlar esse shield remotamente.
Gostou? Confira outros posts usando ESP8266 NodeMCU aqui mesmo no Arduino e Cia!
Parabéns pelo tutorial, muito bom, prático e fácil de entender o sketch.
Valeu Carlos! Grande abraço…
Adilson