- Componentes necessários:
- Diagrama de circuito e explicações:
- Cálculos atuais:
- Funcionamento do motor bidirecional controlado do Arduino:
Neste projeto controlamos a direção e velocidade de um motor de alta corrente de 24 V usando Arduino e dois relés. Não são necessários interruptores de alimentação para este circuito, apenas dois botões e um potenciômetro para controlar a direção e velocidade do motor DC. Um botão girará o motor no sentido horário e o outro girará no sentido anti-horário. Um MOSFET de canal n é necessário para controlar a velocidade do motor. Relés são usados para mudar as direções do motor. Assemelha-se ao circuito H-Bridge.
Componentes necessários:
- Arduino Uno
- Dois relés de 12 V (também pode ser usado um relé de 5 V)
- Dois transistores; BC547
- Dois botões
- IRF540N
- Resistor de 10k
- Fonte de 24 volts
- Potenciômetro 10K
- Três diodos 1N4007
- Fios de conexão
Diagrama de circuito e explicações:
O diagrama de circuito deste projeto de controle de motor bidirecional é mostrado na imagem abaixo. Faça as conexões de acordo com ele:
- Conecte o terminal normalmente fechado de ambos os relés ao terminal positivo da bateria.
- Conecte o terminal normalmente aberto de ambos os relés ao terminal de drenagem do MOSFET.
- Conecte a fonte do MOSFET ao terminal negativo da bateria e ao pino de aterramento do Arduino UNO.
- Terminal de portão para PWM pino 6 do Arduino.
- Conecte o resistor de 10k da porta à fonte e o diodo 1N4007 da fonte ao dreno.
- Conecte o motor entre o terminal do meio dos relés.
- Dos dois terminais restantes, um vai para o pino Vin do Arduino Uno e o outro para o terminal coletor do transistor (para cada relé).
- Conecte o terminal emissor de ambos os transistores ao pino GND do Arduino.
- Os pinos digitais 2 e 3 do Arduino, cada um em série com o botão pulsador, vão para a base dos transistores.
- Conecte o diodo ao relé exatamente como mostrado na figura.
- Conecte o terminal final do potenciômetro ao pino 5v e pino Gnd do Arduino, respectivamente. E o terminal do limpador para o pino A0.
- ** se você tiver duas baterias de 12 V separadas, conecte o terminal positivo de uma bateria ao terminal negativo de outra bateria e use os dois terminais restantes como positivo e negativo.
Objetivo dos transistores:
Os pinos digitais do Arduino não podem fornecer a quantidade de corrente necessária para ligar um relé normal de 5v. Além disso, estamos usando um relé de 12v neste projeto. O pino Vin do Arduino não pode fornecer facilmente tanta corrente para ambos os relés. Conseqüentemente, os transistores são usados para conduzir a corrente do pino Vin do Arduino para o relé, que é controlado por meio de um botão conectado do pino digital ao terminal base do transistor.
Objetivo do Arduino:
- Para fornecer a quantidade de corrente necessária para ligar o relé.
- Para ligar o transistor.
- Para controlar a velocidade de motores DC com potenciômetro usando programação. Verifique o Código Arduino completo no final.
Objetivo do MOSFET: O
MOSFET é necessário para controlar a velocidade do motor. O MOSFET é ligado e desligado na tensão de alta frequência e, como o motor está conectado em série com o dreno do MOSFET, o valor PWM da tensão determina a velocidade do motor.
Cálculos atuais:
A resistência da bobina do relé é medida usando um multímetro que acabou sendo = 400 ohms
Vin pin do Arduino dá = 12v
Portanto, a corrente precisa ligar o relé = 12/400 Amps = 30 mA
Se ambos os relés estiverem energizados, corrente = 30 * 2 = 60 mA
** O pino Vin do Arduino pode fornecer corrente máxima = 200mA.
Portanto, não há problema de sobrecarga no Arduino.
Funcionamento do motor bidirecional controlado do Arduino:
A operação deste circuito de controle de motor de 2 vias é simples. Ambos os pinos (2, 3) do Arduino permanecerão sempre altos.
Quando nenhum botão é pressionado:
Neste caso, nenhuma corrente flui para a base do transistor, portanto, o transistor permanece desligado (age como uma chave aberta) devido ao qual nenhuma corrente flui para a bobina de retransmissão do pino Vin do Arduino.
Quando um botão é pressionado:
Neste caso, alguma corrente flui para a base do transistor através do botão pressionado que o liga. Agora, a corrente flui facilmente para a bobina do relé do pino Vin através deste transistor que liga este relé (RELÉ A) e a chave deste relé é colocada na posição NÃO. Enquanto o outro relé (RELAY B) ainda está na posição NC. Assim, a corrente flui do terminal positivo da bateria para o terminal negativo através do motor, ou seja, a corrente flui do relé A para o relé B. Isso causa a rotação do motor no sentido horário.
Quando outro botão é pressionado:
Desta vez, outro relé é ativado. Agora, a corrente flui facilmente para a bobina do relé do pino Vin através do transistor que liga este relé (RELÉ B) e a chave deste relé é colocada na posição NÃO. Enquanto o outro relé (RELÉ A) permanece na posição NC. Assim, a corrente flui do terminal positivo da bateria para o terminal negativo da bateria através do motor. Mas desta vez a corrente flui do relé B para o relé A. Isso causa a rotação anti-horária do motor
Quando ambos os botões são pressionados:
Neste caso, a corrente flui para a base de ambos os transistores devido ao qual ambos os transistores são ligados (age como uma chave fechada). E, portanto, ambos os relés estão agora na posição NO. Portanto, a corrente não flui do terminal positivo da bateria para o terminal negativo através do motor e, portanto, ele não gira.
Controlando a velocidade do motor DC:
O portão do MOSFET está conectado ao pino 6 do PWM do Arduino UNO. Mosfet é ligado e desligado em alta tensão de frequência PWM e, como o motor está conectado em série com o dreno de mosfet, o valor PWM de tensão determina a velocidade do motor. Agora, a voltagem entre o terminal do limpador do potenciômetro e Gnd determina a voltagem PWM no pino nº 6 e conforme o terminal do limpador é girado, a voltagem no pino analógico A0 muda causando mudança na velocidade do motor.
O trabalho completo desse controle de direção e velocidade do motor bidirecional baseado em Arduino é mostrado no vídeo abaixo com o código do Arduino.