Controlando um motor DC usando um driver de motor L293D com PWM Arduino

Controlando um motor DC usando um driver de motor L293D com PWM Arduino

Este projeto demonstra como controlar a velocidade e a direção de um motor DC usando um chip driver de motor L293D e as capacidades de Modulação por Largura de Pulso (PWM) do Arduino. Esta configuração permite um controle preciso do motor, tornando-a adequada para uma variedade de aplicações.

Aqui estão algumas ideias de projetos usando esta configuração:

  • Robótica:Controle o movimento das rodas de um pequeno robô.
  • Dispositivos automatizados:Crie cortinas, persianas ou uma pequena esteira transportadora automáticas.
  • Controle do ventilador:Ajuste a velocidade de um ventilador de refrigeração com base nas leituras de temperatura.
  • Rastreadores solares:Posicione pequenos painéis solares para seguir o sol ao longo do dia.

Hardware/Componentes

  • Arduino Uno (ou placa compatível)
  • IC de Driver de Motor L293D
  • Motor CC (classificado para os limites de tensão e corrente do L293D, até 600mA)
  • Fonte de Alimentação de 9V (para o motor)
  • Fios de conexão
  • Placa de protótipos (recomendado)

Guia de Fiação

O chip L293D atua como uma interface entre o Arduino e o motor DC. Ele permite que o Arduino controle tanto a velocidade quanto a direção do motor. O chip requer uma fonte de alimentação separada para o motor porque o Arduino não pode fornecer corrente suficiente para a maioria dos motores. (no vídeo em 04:04)

%%FAROLAMENTO%%

Explicação do Código

O código do Arduino controla o driver L293D, que por sua vez controla o motor DC. O código usa PWM para variar a velocidade do motor e sinais digitais para mudar a direção.

Aqui estão os principais parâmetros configuráveis no código:


#define P1A 10 // Arduino pin connected to L293D input 1A
#define P2A 11 // Arduino pin connected to L293D input 2A
#define EN12 9 // Arduino pin connected to L293D enable pin (1,2EN)

const int speedStep = 15; // Increment for speed changes
const int speedDelay = 1000; // Delay between speed steps (in milliseconds)

OL293D()a função controla a direção e a velocidade do motor. 'L' ajusta o motor para girar no sentido horário, 'R' ajusta-o para o sentido anti-horário. Ospdo parâmetro controla a velocidade (0-255) eenativa (1) ou desativa (0) o motor. (no vídeo às 09:24)


void L293D(char dir,int spd, int en)
{
  if(dir =='L') // Clockwise rotation
  {
    // ...
    analogWrite(P1A,spd); // Set speed using PWM
    digitalWrite(P2A,LOW); 
  }else{ // Counter-clockwise rotation
    // ...
    digitalWrite(P1A,LOW);
    analogWrite(P2A,spd); // Set speed using PWM
  }
}

Projeto ao Vivo/Demonstração

O vídeo demonstra o projeto em ação, mostrando as mudanças de velocidade e direção do motor. As leituras do osciloscópio visualizam os sinais PWM que controlam o motor. (no vídeo às 11:07)

Capítulos

  • [00:00] Introdução ao Controle de Motor DC com L293D
  • [00:30] Demonstração e Explicação do Projeto
  • [01:12] Visão geral do driver de motor L293D
  • [02:08] Especificações do Motor CC
  • [02:30] Explicação do Datasheet L293D
  • [04:40] Explicação e Demonstração da Fiação
  • [07:05] Explicação do Código Arduino
  • [11:07] Demonstração do Projeto e Leituras do Osciloscópio
144-Arduino source for L293D motor driver (loop)
Idioma: C++
145-Source for a simple L293D motor controller using Arduino (CW, CCW, and STOP)
Idioma: C++
Copiado!

Arquivos📁

Nenhum arquivo disponível.