Com o intuito de criar um carrinho simples controlado por Arduino, pesquisei por algum tempo qual seria o melhor transistor para usar no acionamento de um motor DC (desses bem genéricos que vem em carrinhos baratos movidos a pilha) abastecido por 2 pilhas de 1,2 Volts.
Depois de muitas tentativas, inclusive com o BD139 recomendado em outro tutorial aqui do lab, decidi pelo TIP 122.
O principal motivo da minha decisão foi o fato desse transistor contar com um diodo interno que evita danos por eventuais correntes reversas geradas pelo motor.
A montagem é essa:
Note que o pino do Arduino deve ser conectado na perna à esquerda do transistor (chamada base) e a corrente vai fluir entre as duas outras pernas, de modo que a perna da direita deve estar ligada ao ground e a central ao positivo (nesse caso, passando pelo motor).
Detalhe importante: o ground do Arduino deve ser ligado na trilha do ground (vinda das pilhas). Isso é necessário paa fechar o circuito pino 13 - transistor - Arduino.
O código abaixo é bastante simples e serve apenas para testar a montagem. Ele deixa o motor rodando por 2 segundos e parado por outros 2.
int motorPin = 3;
void setup()
{
pinMode(motorPin, OUTPUT);
pinMode(13, OUTPUT); //só para o led embutido piscar junto
}
void loop()
{
digitalWrite(13,HIGH); //led
digitalWrite(motorPin, HIGH);
delay(2000);
digitalWrite(13,LOW); //led
digitalWrite(motorPin, LOW);
delay(2000);
}
Para fazer controle de velocidade, basta usar analogicWrite no lugar de digitalWrite passando valores entre 0 (motor parado) e 255 (velocidade máxima), ou seja, usar PWM.
Comentar
fiz exatamente esse circuito porem obtive resultados não muito animadores, para a potencia maxima 255 o motor funciona normalmente mas conforme vou diminuindo o valor a tensão na saida realmente baixa porem com metade da tensão do motor ele vibra fazendo um barulho tip "ziiiiiiiiiiiiiiiii" e começa sair fumaça quando mais baixo o valor pior fica (mesmo medido da saida menos da metade da tensão maxima do motor), testei varios motores e tambem testei colocando diodo pra proteger e diversos resistores na base sem sucesso. Os motores são simples de escova, será que não aceitam altas frequencias de pulsos? como posso resolver?
Bom dia pessoal, eu estou tentando fazer um robô usando um motor de vidro elétrico, sua corrente vai de 1,6 a 6A. Eu gostaria de saber qual a forma melhor de fazer um controlador para ele que suporte esta corrente? Desde já eu agradeço a ajuda.
Amigos,
Pesquisando aqui, encontrei esse opção para o meu projeto:
LINK REMOVIDO POR DESCUMPRIR OS TERMOS DE USO
Como os meus motores possui corrente máxima de 250 mA, eu achei uma boa opção para o meu projeto.
O que vocês acham?
Edson,
No meu caso estou querendo controlar 4 motores DC, nesse caso, terei de projetar 4 pontes H?
Obrigado pela ajuda.
Welington,
Se quiser girar para os dois lados, terá que fazer uma ponte H com transistores de potência.
Se não quiser simplicidade, L298N ou adquira um shield que já vem com diodos de proteção, como esse aqui: LINK REMOVIDO POR DESCUMPRIR OS TERMOS DE USO
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)