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
Com esse circuito simples, é possível girar o motor em dois sentidos? Ou precisaria acrescentar mais alguma coisa?
Cesar, o Leonardo disse que utilizou duas pilhas com tensão de 1,2 volts. Só com isso não dá para saber quanto as baterias (pilhas) durariam. Vc precisa saber quanto de corrente o sistema consome e quanto as baterias (pilhas) podem fornecer. Aí vai poder calcular esse tempo.
Cesar, não sei, não fiz esse teste...
Você tem uma idéia de quanto tempo essas baterias duram em uso ininterrupto e velociade máxima?
Para esse tipo de transistor não precisa do diodo extra.
Acho que é interessante colocar um resistor de 1k na base do transistor pra não sobrecarregar a porto do ARDUINO. O transistor aguenta bem 120 mA na base, mas a porta do ARDUINO se não me engano, uns 40 mA.
Comprei hoje mesmo um L293D pelo ebay (vai demorar pra chegar). Estou pesquisando sobre o assunto (controle de motores DC) e estava atrás de uma maneira ainda mais simples, mas acho que o melhor vai ser o CI mesmo.
Eduard, para isso é necessário uma ponte H. Ela pode ser feita através de um circuito integrado pronto (há um tutorial sobre isso na lista do Lab já) ou ser construída manualmente com a ajuda de 4 transistores.
Para esse segundo caso eu pretendo fazer um tutorial em breve. Alguém tope me dar uma ajuda?
É possível controlar o sentido da rotação, para os dois lados?
O tip 122 é um transistor tipo Darlington, de até 5A, por isso é mais indicado para controle de motores.
Ele internamente já vem com um diodo de proteção, não sendo necessáro colocar um externo, apesar da maioria colocar por exesso de zelo.
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)