L298N: módulo de controle do motor para Arduino

L298n

Existem muitos módulos para Arduino ou para uso em projetos DIY pelos fabricantes. No caso de L298N é um módulo para controlar motores. Com eles, você pode usar códigos simples para programar nossa placa Arduino e ser capaz de controlar motores DC de forma simples e controlada. Geralmente, este tipo de módulo é mais usado em robótica ou em atuadores motorizados, embora possa ser usado para uma infinidade de aplicações.

Já inserimos tudo que você precisa sobre o módulo ESP, com chip ESP8266, tem módulo que permite estender as capacidades Placas Arduino e outros projetos para que tenham conectividade wi-fi. Esses módulos não só podem ser usados ​​isoladamente, como também podem ser combinados. Por exemplo, um ESP8266 pode ser usado para nosso protótipo e o L298N, com o qual obteríamos um motor controlável através da Internet ou sem fio.

Introdução ao L298N e fichas técnicas:

pinagem l298n

Embora com o Arduino você também possa trabalhar com motores de passo, que são bem conhecidos na robótica, neste caso geralmente é mais comum usar o controlador ou controlador para motores DC. Você pode obter informações sobre o chip L298 e os módulos nas planilhas dos fabricantes, como STMicroelectronics a partir deste link. Se você quiser ver um datasheet do módulo específico, e não apenas o chip, você pode baixar este outro PDF do Handsontec L298N.

Mas, de modo geral, um L298N é um driver do tipo H-bridge que permite que a velocidade e a direção de rotação dos motores DC sejam controlados. Também pode ser usado com motores de passo facilmente graças aos 2 H-bridge que implementa. Ou seja, uma ponte em H, o que significa que é formada por 4 transistores que permitirão inverter o sentido da corrente para que o rotor do motor possa girar em uma direção ou outra como quisermos. Esta é uma vantagem sobre os controladores que só permitem controlar a velocidade de rotação (RPM) controlando apenas o valor da tensão de alimentação.

O L298N pode trabalhar com vários tensões, de 3v a 35v, e com uma intensidade de 2A. Isso é o que realmente determinará o desempenho ou a velocidade de rotação do motor. Deve-se ter em mente que a eletrônica que o módulo consome costuma consumir em torno de 3v, portanto o motor sempre receberá 3v a menos da potência que o estamos alimentando. É um consumo um tanto alto, na verdade ele tem um elemento de alta potência que precisa de um dissipador de calor como você pode ver na imagem.

Para controlar a velocidade, você pode fazer algo inverso ao que fizemos com o LM35, neste caso, ao invés de obter uma determinada tensão na saída e ter que convertê-la em graus, aqui será o contrário. Alimentamos o driver com uma tensão mais baixa ou mais alta para obter uma curva mais rápida ou mais lenta. Além disso, o módulo L298N também permite que a placa Arduino seja alimentada com 5v, desde que estejamos alimentando o driver com pelo menos 12v de tensão.

Integração com Arduino

diagrama de circuito de l298n com Arduino

uma infinidade de projetos com os quais você pode usar este módulo L298N. Na verdade, você pode imaginar tudo o que poderia fazer com ele e começar a trabalhar. Por exemplo, um exemplo simples seria o controle de dois motores de corrente contínua como pode ser visto no diagrama anterior feito com Fritzing.

Antes de trabalhar com o L298N devemos levar em consideração que a entrada do módulo ou Vin suporta tensões entre 3v e 35v e que também devemos conectá-lo ao terra ou GND, como pode ser visto na imagem com o cabo vermelho e preto respectivamente. Uma vez conectado à energia, o próximo passo é conectar o motor ou os dois motores que ele aceita controlar simultaneamente. É simples, basta conectar os dois terminais do motor à guia de conexão que possui o módulo em cada lado.

E agora vem talvez o mais complicado, e é conectar as conexões do módulo ou alfinetes para o Arduino corretamente. Lembre-se que se o jumper ou ponte do regulador do módulo estiver fechado, ou seja, ligado, o regulador de tensão do módulo é ativado e existe uma saída de 5v que pode ser usada para alimentar a placa Arduino. Por outro lado, se você remover o jumper, você desativa o regulador e precisa ligar o Arduino de forma independente. olho! Como o jumper só pode ser configurado para tensões de 12v, para mais do que isso você deve removê-lo para não danificar o módulo ...

Você pode apreciar isso existem 3 conexões para cada motor. Aqueles marcados como IN1 a IN4 são os que controlam os motores A e B. Se você não tem um dos motores conectado porque você só precisa de um, então você não terá que colocar todos eles. Os jumpers de cada lado dessas conexões para cada motor são ENA e ENB, ou seja, para acionar os motores A e B, que devem estar presentes se quisermos que os dois motores funcionem.

Pára motor A (Seria o mesmo para B), devemos ter IN1 e IN2 conectados que irão controlar o sentido de rotação. Se IN1 for HIGH e IN2 for LOW, o motor gira em uma direção, e se eles estiverem LOW e HIGH, ele gira na outra. Para controlar a velocidade de rotação você deve remover os jumpers INA ou INB e usar os pinos que aparecem para conectá-lo ao PWM do Arduino, de forma que se dermos um valor de 0 a 255 obteremos uma velocidade baixa ou maior, respectivamente.

Em relação a programar também é fácil no IDE do Arduino. Por exemplo, um código seria:

<pre>// Motor A
int ENA = 10;
int IN1 = 9;
int IN2 = 8;

// Motor B
int ENB = 5;
int IN3 = 7;
int IN4 = 6;

void setup ()
{
 // Declaramos todos los pines como salidas
 pinMode (ENA, OUTPUT);
 pinMode (ENB, OUTPUT);
 pinMode (IN1, OUTPUT);
 pinMode (IN2, OUTPUT);
 pinMode (IN3, OUTPUT);
 pinMode (IN4, OUTPUT);
}
//Mover los motores a pleno rendimiento (255), si quieres bajar la velocidad puedes reducir el valor hasta la mínima que son 0 (parados)</pre>
<pre>//Para mover los motores en sentido de giro contrario, cambia IN1 a LOW e IN2 a HIGH

void Adelante ()
{
 //Direccion motor A
 digitalWrite (IN1, HIGH);
 digitalWrite (IN2, LOW);
 analogWrite (ENA, 255); //Velocidad motor A
 //Direccion motor B
 digitalWrite (IN3, HIGH);
 digitalWrite (IN4, LOW);
 analogWrite (ENB, 255); //Velocidad motor B
}</pre>

Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.