Arduino: Acionamento de Cargas e Motores
Arduíno: Controle de Motores
O Arduíno pode controlar motores através de pinos de saída digitais e pinos com saídas PWM.
Informações sobre Arduíno
Controle de Motores com Ponte H
A ponte H é um arranjo de chaves em forma de H, que serve para inverter o sentido da corrente elétrica em motores de corrente contínua, motores de passo ou outras cargas indutivas, permitindo com isto inverter o sentido de rotação do motor.
O funcionamento da ponte H é baseado na operação combinada de quatro as chaves. Se S1 e S4 estiverem fechadas e S2 e S3 abertas tem-se o motor rodando em um sentido. Já com as chaves S3 e S2 fechadas e S1 e S4 abertas, o sentido do fluxo da corrente sobre o motor é invertido, fazendo com que a rotação do motor também se inverta.
A velocidade de rotação do motor, por outro lado, pode ser controlada variando o nível da tensão contínua aplicada sobre o motor.
Circuitos Integrados e Módulos Ponte H
Existem circuitos integrados monolíticos, de diferentes fabricantes, que implementam pontes H através de chaves transistorizadas, como o L293, L298 e o L9110S.
Também existem diversos módulos (shields) que utilizam circuitos integrados ponte H e oferecem uma plataforma pronta para prototipagem, incluindo terminais de conexão para as cargas e pinos para conexão dos sinais de controle.
Circuito Integrado L298N
O L298N (datasheet) é um circuito integrado ponte H de maior potência, permite controlar velocidade e direção de até 2 motores DC que precisem de até 3 A de corrente contínua, acionados por voltagem de até 50 volts. Ele também pode ser usado para ativar relés, motores de passo e outros.
O funcionamento do L298N (similar ao L293D) segue a seguinte tabela verdade (exemplo para motor A):
1IN | 2IN | EnA | Motor A |
H | L | PWM1 | Sentido Horário2 |
L | H | PWM1 | Sentido Anti-horário2 |
L | L | X | Pára motor |
H | H | X | Pára motor |
X | X | L | Ponto morto |
Obs:
- 1 Velocidade controlada pelo sinal PWM,
- 2 O sentido de rotação depende também da forma de conexão dos fios nos bornes do motor.
- Controle da corrente sobre a carga
- Alem dos pinos de controle e saída, o circuito integrado L298 apresenta dois pinos de saída chamados Sense A e Sense B, nos quais devem ser conectados resistores para controlar a corrente sobre a carga (respectivamente para o Motor A e Motor B). O valor dos resistores RS1 e RS2 dependem da corrente da carga (Sugestão: RS1 = RS2 = 0.5 Ω). Além disto, deve ser conectada a alimentação dos motores em Vs.
Módulo Ponte H L298N
Este módulo utiliza o circuito integrado L298N, oferecendo plataforma pronta para prototipagem para controlar até dois motores de corrente contínua ou um motor de passo e pode ser comandado por microcontroladores como o Arduíno.
A referência FelipeFlop. Motor DC com Driver Ponte H L298N apresenta uma descrição detalhada deste módulo e a forma de utilização com o Arduíno.
Laboratório 1: Controle de Motor CC com L298N
- Procedimentos práticos
- Realizar o laboratório utilizando componentes físicos ou o SimulIDE com os componentes Motor DC e o circuito integrado L298N controlados por um Arduíno.
- Montagem do hardware
- Utilizar duas saídas digitais do Arduíno (p.ex. 7 e 8) para controlar as entradas 1IN e 2IN da L298N;
- Utilizar uma saída PWM do Arduíno (p.ex. 6) para controlar a entrada EnA da L298N;
- Conectar o Motor DC nas saídas OUT1 e OUT2 da L298N.
- Construir programa exemplo para teste do motor em diferentes velocidades.
Circuito Integrado L293D
O circuito integrado L293D (datasheet) permite controlar velocidade e direção de até 2 motores DC que precisem de até 600 mA de corrente contínua, acionados por voltagem de 4.5 à 36 volts. Ele também pode ser usado para ativar relés, motores de passo e outros.
O funcionamento do L293D segue a seguinte tabela verdade (para cada motor):
Entradas | Saídas | |
A | EN | Y |
H | H | H |
L | H | L |
X | L | Z |
Onde:
- H = Nível Lógico Alto (HIGH),
- L = Nível Lógico Baixo (LOW),
- X = Irrelevante,
- Z = Alta Impedância.
O circuito integrado L293D apresenta alimentação separada para a parte lógica (Vcc1) e para a alimentação do motor (Vcc2). Desta forma, quando as entradas de controle A forem acionadas com as tensões lógicas (H e L) as saídas Y recebem as tensões do motor (H e L), respectivamente.
- Exemplo para controle do Motor M1
1A | 2A | 1,2EN | Motor |
H | L | PWM1 | Sentido Horário2 |
L | H | PWM1 | Sentido Anti-horário2 |
L | L | X | Motor parado |
Obs:
- 1 Velocidade controlada pelo sinal PWM,
- 2 O sentido de rotação depende também da forma de conexão dos fios nos bornes do motor.
Laboratório 2: Controle de Motor CC com L293D
- Procedimentos práticos
- Realizar o laboratório utilizando o SimulIDE com os componentes Motor DC e o circuito integrado L293 controlados por um Arduíno.
- Montagem do hardware
- Utilizar duas saídas digitais do Arduíno (p.ex. 7 e 8) para controlar as entradas 1A e 2A da L293;
- Utilizar uma saída PWM do Arduíno (p.ex. 6) para controlar a entrada 1,2EN da L293;
- Conectar o Motor DC nas saídas 1Y e 2Y da L293.
- Programa de teste
//Programa para teste do motor CC com o L293D
int velocidade = 55; //Velocidade do motor (0 a 255)
void setup()
{
//Define os pinos como saida
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
analogWrite(6, velocidade);
//Aciona o motor
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
delay(3000);
//Pára motor
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
//Aciona o motor no sentido inverso
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
delay(3000);
//Pára motor
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000); }
Módulo Ponte H L9110S
Permite controlar dois motores de corrente continua ou um motor de passo e pode ser comandado por microcontroladores como o Arduíno.
Este módulo é compacto e permite controlar motores de 2,5 V até 12 V com consumo de 800mA por motor.
Pinos de alimentação e controle:
- Vcc: (2,5 V até 12V)
- GND: (0 V)
- A1-A: Controle do motor A (Digital)
- A1-B: Controle do motor A (PWM)
- B1-A: Controle do motor B (Digital)
- B1-B: Controle do motor B (PWM)
Funcionamento do controle dos motores (Exemplo Motor A):
A1-A | Sentido* | A1-B | Velocidade |
LOW | Horário | 0 -> 255 | 0 (Parado) -> 255 (Máxima) |
HIGH | Anti-horário | 255 -> 0 | 255 (Parado) -> 0 (Máxima) |
* O sentido também depende da forma de ligação dos motores nos bornes de conexão.
Há outro módulo no mercado com o L9110S, que denomina os pinos de controle como IA1 e IB1 para o Motor 1 e IA2 e IB2 para o Motor 2, com o mesmo princípio de funcionamento.
Ponte H com Relés
Para acionamento de motores CC que exigem maior tensão e maior corrente pode-se utilizar uma estrutura de ponte H construída com relés e chaveada com transistores de potência.
- Funcionamento do circuito
- Os relés conectam a tensão de alimentação aos motores, sendo que no primeiro relé a tensão está conectada no terminal NA (normalmente aberto) e o segundo no terminal NF (normalmente fechado);
- A alteração do sentido de rotação do motor é realizada chaveando os dois relés ao mesmo tempo, o que altera a polaridade da tensão sobre o motor.
- A chave com transistor de potência permite ligar e desligar a corrente no motor.
- O chaveamento da corrente sobre o motor com um sinal PWM pode ser utilizado para controlar a velocidade do motor.
- Um transistor como o TIP122 permite controlar motores de até 100V/5A.
Laboratório 4: Controle de motor CC através de ponte H com relés
O laboratório pode ser realizado com componentes físicos ou utilizando o SimulIDE.
- Montar hardware para controle de motor CC utilizando saídas digitais do Arduíno para controle de uma ponte H montada com dois relés de três pontos (NA, COM, NF) (No SimulIDE, configurar parâmetro DT do relé para true);
- Utilizar saída PWM do Arduíno para acionar transistor como chave para controle da velocidade do motor.
Projeto: Controle de motores CC com Ponte H
Construir um projeto de controle de motores CC, utilizando ponte H com relés, circuitos integrados ou módulos ponte H. O sistema deve prever mecanismos para inverter a rotação do motor (p.ex. botões ou chaves) e também alteração da velocidade de rotação (p.ex. potenciômetros).
Pense em uma aplicação que o projeto poderia ser utilizado, como um elevador, um guincho, uma máquina para levantar material, um veículo, etc.
O projeto pode ser construído com componentes físicos ou usando o SimulIDE.
Servo Motor
Os servo motores são atuadores utilizados em aplicações onde é necessário fazer o controle de movimento com posicionamento preciso, por exemplo, para controlar um braço de um robô ou o ângulo de abertura de uma chave.
- O SG90 tem três fios: alimentação (5 V) na cor vermelho, terra (GND) na cor marrom e o sinal na cor laranja para controle do servo motor.
- O controle do servo motor é realizado por uma saída digital PWM, que permite movimentar o braço do servo de 0o a 180o. O controle do ângulo é realizado pela largura do pulso PWM (duty cicle), variando entre 1 - 2 ms, para um período de 20 ms (50 Hz).
- Para uso com o Arduíno usa-se a biblioteca servo.h, que permite controlar diversos tipos de servo motores.
Laboratório 1: Controle de servo motor
- Servo motor SG90 e potenciômetro
- O laboratório pode ser realizado com componentes físicos e o servo motor SG90 ou utilizando o SimulIDE e o Servo.
- Montar hardware conectado a um Arduíno, com servo motor com o sinal conectado a saída digital 9 (PWM) e um potenciômetro com o pino central conectado a entrada analógica A0 para controlar o servo motor.
- Carregar programa exemplo Arquivo/Exemplos/Servo/Knob para controle do servo motor a partir do potenciômetro.
- Verifique a utilização pelo programa da biblioteca <Servo.h>.
Referências
- ↑ FelipeFlop. Motor DC com Driver Ponte H L298N, 2013. https://www.filipeflop.com/blog/motor-dc-arduino-ponte-h-l298n/
Evandro.cantu (discussão) 09h35min de 17 de setembro de 2021 (-03)