Aula 95: Usando um Escudo para Motor DC L293D | Curso de Arduino Passo a Passo
Neste tutorial, exploraremos como controlar quatro motores DC usando o escudo de motor L293D com Arduino. Esta configuração é particularmente útil para aplicações de robótica, como a construção de um carro robô, onde o controle preciso do motor é essencial. Ao final desta lição, você terá um modelo funcional que pode operar múltiplos motores simultaneamente.

O escudo de motor L293D simplifica o processo de cabeamento e permite que você controle os motores com apenas algumas conexões. Você aprenderá a conectar o escudo ao Arduino, configurar o código e executar comandos de controle do motor de forma eficaz. Para uma explicação mais visual, você pode consultar o vídeo em timestamps específicos para detalhes de cabeamento e codificação (no vídeo em mm:ss).
Hardware Explicado
O componente principal deste projeto é o escudo de motor L293D, que é um driver de motor em ponte H quádruplo. Isso significa que ele pode controlar dois motores em ambas as direções, permitindo controle total sobre a rotação do motor. O escudo conecta-se diretamente ao Arduino, facilitando a gestão de energia e sinais de controle sem fiação desorganizada.
Cada chip L293D pode suportar até 600 mA de corrente por canal e opera em tensões que variam de 4,5V a 36V. Essa faixa o torna adequado para uma variedade de motores CC. Além disso, o shield possui um jumper que permite alimentar tanto os motores quanto o Arduino a partir de uma única fonte de alimentação externa.
Detalhes da Ficha Técnica
| Fabricante | Texas Instruments |
|---|---|
| Número da peça | L293D |
| Tensão lógica/IO | 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 | 1 kHz - 20 kHz |
| Limites de lógica de entrada | 2 V min (alto), 0,8 V max (baixo) |
| Queda de tensão / RDS(on)/ saturação | 1,5 V max |
| Limites térmicos | 150 °C |
| Pacote | 16-DIP |
| Notas / variantes | Configuração de Ponte H Dupla |
- Certifique-se de que os motores não excedam 600 mA para prevenir danos.
- Use dissipadores de calor adequados para aplicações de alta corrente.
- Conecte a fonte externa antes de ligar o Arduino.
- Verifique a colocação do jumper para alimentar o shield e o Arduino.
- Teste a direção do motor trocando as conexões, se necessário.
Instruções de Fiação

Comece conectando o escudo de motor L293D ao seu Arduino Uno ou Mega. Alinhe os pinos do escudo com os conectores do Arduino e pressione firmemente. Em seguida, conecte seus motores DC aos terminais identificados.M1,M2,M3, eM4no escudo. Cada motor requerirá dois terminais, então certifique-se de conectá-los corretamente para a direção correta de rotação.
Para a alimentação, conecte uma bateria externa ou uma fonte de alimentação aos terminais de entrada de energia do escudo, garantindo que a voltagem fique na faixa de 4,5V a 36V. Não se esqueça de conectar o jumper no escudo para permitir que a energia flua para o Arduino. Por fim, conecte o terra da fonte de alimentação ao pino de terra do Arduino para completar o circuito.
Instale a biblioteca necessária
clique no ícone da Biblioteca e procure por:Adafruit Motor Sheild Librarye clique em Instalar para instalá-lo.
Exemplos de Código e Passo a Passo
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);No código, inicializamos quatro objetos de motor:motor1,motor2,motor3, emotor4. Cada motor é atribuído a um número de canal correspondente às conexões de terminais do escudo do motor. Isso nos permite controlar cada motor individualmente.
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Robojax L293D Example");
}Osetup()a função inicializa a comunicação serial, permitindo-nos enviar e receber mensagens do Arduino IDE. Isso é útil para depuração e monitoramento do processo de controle do motor.
motor1.setSpeed(speed(50)); //set speed for motor 1 at 50%
motor1.run(FORWARD); //send motor 1 to Forward rotationPara controlar os motores, ajustamos a velocidade usando osetSpeed()método, que recebe um valor entre 0 e 255. Orun()método então inicia o motor na direção especificada, comoFORWARDouBACKWARDA velocidade pode ser ajustada dinamicamente conforme necessário.
Demonstração / O que Esperar
Uma vez que tudo esteja conectado e o código esteja carregado, você deve ver os motores girarem de acordo com os comandos no código. Inicialmente, um motor será ligado, seguido pelos outros em sequência, cada um funcionando por uma duração definida. Se os motores não operarem como esperado, verifique sua fiação, certifique-se de que o jumper está conectado e verifique se a fonte de energia é adequada (no vídeo em mm:ss).
Timestamps de Vídeo
- 00:00 Introdução
- 03:00 Ficha técnica para L293D
- 03:56 Fiação explicada
- 07:21 Código e biblioteca
- 13:51 Demonstração controlando 4 motores
/*
* Lesson 95: Control 4 DC Motors for a Smart Car using a Motor Shield
* This code works with Arduino UNO and Arduino Mega.
* Wiring diagram and how to wire and connect the power supply is shown in the video.
Watch full video instruction: https://youtu.be/0XihwdulmDQ
* Download this code from: http://robojax.com
*
* Written by Ahmad Shamshiri for Robojax.com on Jan 09, 2022
* in Ajax, Ontario, Canada
This video is part of an Arduino Step by Step Course which starts here: https://youtu.be/-6qSrDUA5a8
If you found this tutorial helpful, please support me so I can continue creating content like this
and make a donation using PayPal http://robojax.com/L/?id=64
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
* Library location: https://github.com/adafruit/Adafruit-Motor-Shield-library
Adafruit Motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!
*/
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Robojax L293D Example");
}
void loop() {
motor1.setSpeed( speed(50) ); //set speed for motor 1 at 50%
motor1.run(FORWARD);//send motor 1 to Foarward rotation
delay(2000);//wait for 2 seconds
motor2.setSpeed( speed(100) );//set speed for motor 2 at 100%
motor2.run(BACKWARD);//send motor 2 to Foarward rotation
delay(2000);
motor3.setSpeed( speed(70) );
motor3.run(FORWARD);
delay(2000);
motor4.setSpeed( speed(90) );
motor4.run(FORWARD);
delay(2000);
motor1.run(BRAKE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(2000);
motor1.setSpeed(speed(100));
motor1.run(BACKWARD);
delay(2000);
motor1.run(RELEASE);
delay(1000);
}
/*
* speed percent to speed converter
* receives value between 0 to 100 and converts it to value between
* 0 to 255 which are 8 bits Arduino PWM value
* www.Robojax.com
Watch full video instruction: https://youtu.be/0XihwdulmDQ
*/
int speed(int percent)
{
return map(percent, 0, 100, 0, 255);
}
Coisas que você pode precisar
-
Amazonas
-
Amazonas
-
eBay
-
AliExpressCompre o escudo de motor L293D no AliExpresss.click.aliexpress.com
Recursos e referências
-
Externo
Arquivos📁
Nenhum arquivo disponível.