(Logo, pesquisa)

Cursos Materiais Sobre Contato

Acionamento de Motor DC com Shield no Arduino

 

Introdução

O controle de motores DC (corrente contínua) é um dos projetos mais comuns no universo da robótica e automação utilizando a plataforma Arduino. Para facilitar esse processo, é comum utilizar shields específicos, como o Motor Shield L298N ou L293D, que simplificam a conexão e o controle de motores sem a necessidade de circuitos externos complexos.

Neste artigo, vamos abordar como funciona o acionamento de um motor DC usando um shield no Arduino, com explicações teóricas, práticas e um exemplo de código funcional.


1. Por que usar um Motor Shield?

Controlar diretamente um motor DC a partir do Arduino pode ser perigoso tanto para o microcontrolador quanto para o motor, pois:

  • O Arduino não fornece corrente suficiente.

  • O motor pode gerar picos de tensão (back EMF).

  • Há necessidade de controle de direção e velocidade (PWM).

O Motor Shield resolve esses problemas ao:

  • Isolar o motor do Arduino.

  • Permitir controle de velocidade e sentido de rotação.

  • Controlar até dois motores DC simultaneamente.

  • Reduzir o uso de fios e componentes externos.


2. Componentes Necessários

  • 1x Arduino UNO (ou equivalente)

  • 1x Motor Shield (L293D ou L298N, por exemplo)

  • 1x Motor DC 6V–12V

  • 1x Fonte externa (bateria ou fonte de 9V/12V)

  • Cabos jumpers


3. Entendendo o Shield L293D

O L293D é um CI (Circuito Integrado) ponte H duplo, ou seja, permite o controle de dois motores DC com controle de direção e velocidade. L293D foi projetado para lidar com uma corrente contínua de até 600mA por canal, com as correntes de pico atingindo 1,2A por breves períodos. Já o L298N, por outro lado, pode gerenciar uma corrente contínua de 2A por canal, com picos de até 3A. Essa diferença significativa na capacidade atual posiciona o L298N como um ajuste melhor para aplicações de energia mais altas.

Pinagem (Motor Shield baseado no L293D):

  • M1 / M2: conexões para motores

  • DIR A / DIR B: direção dos motores (pinos digitais)

  • PWM A / PWM B: controle de velocidade via PWM

  • Vin / GND: alimentação externa



Qual a aplicação dos drivers de motores DC?
Fonte: CoThings



4. Conexão do Motor com o Shield

  1. Encaixe o Motor Shield sobre o Arduino.

  2. Conecte o motor DC nas saídas M1 ou M2.

  3. Conecte a fonte externa ao terminal do shield (caso necessário).

  4. Certifique-se de que o jumper de alimentação (VMS) esteja correto para sua fonte.


Acionamento de motor DC com L293D

5. Código de Exemplo

O exemplo abaixo aciona um motor DC na porta M1, girando em um sentido por 3 segundos e depois no outro sentido por mais 3 segundos, com controle de velocidade.

// Pinos do Motor Shield L293D (M1)
const int motorSpeedPin = 3; // PWM
const int motorDirectionPin = 12;
void setup() {
pinMode(motorSpeedPin, OUTPUT);
pinMode(motorDirectionPin, OUTPUT);
}
void loop() {
// Girar para frente
digitalWrite(motorDirectionPin, HIGH);
analogWrite(motorSpeedPin, 200); // velocidade (0 a 255)
delay(3000);
// Parar motor
analogWrite(motorSpeedPin, 0);
delay(1000);
// Girar para trás
digitalWrite(motorDirectionPin, LOW);
analogWrite(motorSpeedPin, 200);
delay(3000);
// Parar motor
analogWrite(motorSpeedPin, 0);
delay(1000);
}

6. Controle de Velocidade com PWM

A função analogWrite() envia sinais PWM (Pulse Width Modulation) que simulam diferentes níveis de tensão, controlando assim a velocidade do motor. Um valor de 255 representa 100% da velocidade, e 0 representa motor desligado.


7. Cuidados Importantes

  • Sempre verifique a corrente máxima suportada pelo Shield (geralmente 600mA por canal no L293D). Caso a potência consumida seja alta, utilize um bom dissipador de calor.

  • Nunca alimente motores de alta potência diretamente do Arduino.

  • Use diodos de proteção, se o shield não os incluir.

  • Certifique-se de que a alimentação externa está dimensionada corretamente.



Conclusão

O acionamento de motores DC com o Arduino torna-se muito mais seguro e prático com o uso de shields apropriados, como o baseado no L293D. Esse tipo de configuração permite controle completo de velocidade e direção com poucos fios e linhas de código, sendo ideal para aplicações como carrinhos robóticos, esteiras, sistemas automatizados, entre outros. Ao dominar essa técnica, você abre portas para projetos mais complexos e dinâmicos dentro da eletrônica embarcada e robótica.


REFERÊNCIAS: