Código e vídeo do Arduino: Controlador de motor CC L293D (sem controle de velocidade)

Código e vídeo do Arduino: Controlador de motor CC L293D (sem controle de velocidade)

Este tutorial explica como usar o controlador de motor L293D com um Arduino para controlar um motor de corrente contínua (DC). O L293D permite que você faça o motor girar nos dois sentidos, horário e anti-horário. Seguindo este guia, você aprenderá como ligar os componentes e programar o Arduino para obter o controle desejado do motor.

Neste projeto, utilizaremos o driver de motor L293D para controlar um único motor CC. O motor poderá inverter a direção com base nos comandos fornecidos no código do Arduino. Para uma compreensão mais clara da configuração e do código, é benéfico assistir ao vídeo associado (no vídeo em 00:00).

Hardware explicado

O L293D é um circuito integrado projetado para acionar motores. Ele pode controlar dois motores CC simultaneamente ou um motor de passo. O chip utiliza uma configuração em ponte H para permitir o controle da direção ao inverter a polaridade da tensão aplicada ao motor. Essa flexibilidade o torna uma excelente escolha para projetos de robótica e automação.

Além do L293D, usaremos uma placa Arduino para enviar sinais de controle ao driver do motor. O Arduino gerará os níveis lógicos necessários para habilitar o motor e determinar a direção de rotação. A montagem também exigirá um motor CC e uma fonte de alimentação compatível com os requisitos de tensão do motor.

Detalhes da ficha técnica

Fabricante Texas Instruments
Número de peça L293D
Tensão lógica/E/S 5 V
Tensão de alimentação 4.5 - 36 V
Corrente de saída (por canal) 600 mA
Corrente de pico (por canal) 1.2 A
Orientação sobre a frequência PWM 20 kHz
Limiares de lógica de entrada 2,5 V (típ.)
Queda de tensão / RDF(ligado)/ saturação 1.5 V (máx.)
Limites térmicos 150 °C (máx.)
Pacote DIP de 16 pinos
Notas / variantes Pode controlar dois motores

  • Certifique-se de que a tensão de alimentação não exceda 36 V.
  • Use dissipação de calor adequada ao operar próximo da corrente máxima.
  • Sempre conecte o terra do Arduino ao terra do driver do motor.
  • Verifique a fiação para evitar conexões com polaridade invertida.
  • Use sinais PWM para controlar a velocidade, se necessário em projetos futuros.

Instruções de fiação

Arduino wiring for L293D motor driver with battery
Arduino wiring for L293D motor driver with battery
Arduino wiring for L293D motor driver
Arduino wiring for L293D motor driver

Para ligar o controlador de motor L293D ao Arduino, comece conectando a alimentação e o terra. Conecte os pinos 4 e 5 do L293D ao terra. Em seguida, conecte o pino 1 (Vcc1) à saída de 5 V do Arduino. Para Vcc2 (pino 8), conecte-o a uma fonte de alimentação externa, garantindo que ela corresponda à especificação de tensão do motor.

Em seguida, conecte o pino de habilitação (pino 1) ao pino 8 do Arduino para controlar a alimentação do motor. Para as entradas de controle do motor, conecte o pino 2 (1A) do L293D ao pino 2 do Arduino e o pino 7 (2A) ao pino 7 do Arduino. Finalmente, conecte os terminais do motor aos pinos 3 (1Y) e 6 (2Y) do L293D.

pino 1 do L293D na protoboard
pino 1 do L293D na protoboard
L293D_protoboard_ligações_bb

Exemplos de Código e Guia Passo a Passo

O código a seguir inicializa os pinos e configura o controle do motor. Os identificadores utilizados incluemP1Apara o primeiro pino de controle do motor eEN12Para o pino de habilitação. A função setup configura os pinos como saídas.

void setup() {
  Serial.begin(9600); // setup Serial Monitor to display information
  pinMode(P1A, OUTPUT); // define pin as OUTPUT for P1A
  pinMode(P2A, OUTPUT); // define pin as OUTPUT for P2A
  pinMode(EN12, OUTPUT); // define pin as OUTPUT for 1,2EN enable
}

Na função loop, o motor é comandado a girar em ambas as direções com atrasos entre elas. O estado do motor é impresso no monitor serial usandoSerial.println.

void loop() {
  Serial.println("Rotating CW");
  digitalWrite(EN12, HIGH); // Enable 1A and 2A 
  digitalWrite(P1A, HIGH); // send HIGH signal to P1A
  digitalWrite(P2A, LOW); // send LOW signal to P2A
  delay(3000); // motor runs for 3 seconds
  digitalWrite(EN12, LOW); // Disable 1A and 2A
}

Este trecho mostra como controlar a direção de rotação do motor alterando os níveis lógicos enviados paraP1AeP2A. O motor funciona por 3 segundos antes de parar e inverter a direção.

Aqui está como os drivers de meia ponte L293D são usados:

L293D como meia ponte, sentido horário
L293D como meia ponte no sentido horário
L293D como meia ponte (sentido anti-horário)
L293D como meia-ponte sentido anti-horário

Demonstração / O que esperar

Quando a configuração estiver completa e o código carregado, você deverá observar o motor girando em uma direção por 3 segundos, parando por 2 segundos e então girando na direção oposta por mais 3 segundos. O estado do motor será impresso no monitor serial, confirmando as ações (no vídeo em 12:00).

Erros comuns incluem garantir que a tensão correta seja fornecida ao motor e verificar se as conexões do motor estão corretas. Se o motor não responder, verifique novamente a fiação e as conexões da fonte de alimentação.

Marcas de tempo do vídeo

  • 00:00- Introdução
  • 02:30- Explicação da fiação
  • 05:00- Revisão do código
  • 10:00- Demonstração de controle do motor

Imagens

L293D breadboard pin 1
L293D breadboard pin 1
L293D_breadboard_wiring_bb
L293D_breadboard_wiring_bb
L293D as halft bridge CCW
L293D as halft bridge CCW
L293D as halft bridge CW
L293D as halft bridge CW
Arduino wiring for L293D motor driver with battery
Arduino wiring for L293D motor driver with battery
Arduino wiring for L293D motor driver
Arduino wiring for L293D motor driver
79-Arduino code L293 DC motor driver (Advanced).
Idioma: C++
80-Arduino code: L293 DC motor driver (Advanced)
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.