Transistor + Motor DC + ARDUINO – PARTE 2

Antes de montar o nosso esquema vou falar sobre o diodo que não falei no post anterior, apesar de que creio que você deve ter lido o link que eu passei no começo desse tutorial na parte 1, ok?

mur4100_e___diod_4d4c399073689

Então como você leu, o diodo serve para evitar que corrente contrária chegue até o arduino, danificando o mesmo, lembre-se que estamos trabalhando com motores de corrente continua. O diodo faz essa proteção porque ele só admite corrente em apenas um único sentido.

– A “polêmica” do TIP122 –

Se você pesquisar a fundo o TIP122 e seus similares, vai notar que eles já tem um diodo interno. Então isso quer dizer que posso desprezar um segundo diodo?

Tecnicamente sim, muitos fazem assim. Porém outros tantos preferem redobrar essa proteção adicionando um segundo diodo. Então colocar ou não vai ser por questão de zelo, por isso deixo essa questão para vocês, não vejo problema em nenhuma das duas práticas.

Praticar

Bom, agora que você está com a teoria em dia, vamos a nossa montagem, lembre-se de passar na eletrônica ou revirar a sucata:

lista_motordc

OBS: Similares ao TIP122: TIP120 e TIP121
           Similar ao Diodo IN4007: IN4004

Com os componentes em mãos, vamos montar(clique na imagem para ampliar):

fig1_motordc

Veja que estou alimentando o motor com o 5v do arduino, não é muito recomendável alimentar dessa forma, temos que ficar atento a corrente consumida pelo motor(mais detalhes no fim do tutorial).

Veja bem que não coloquei o diodo, com ele ficaria assim:

fig4_motordc

Agora vamos analizar:

fig2_motordc

Você já deve ter percebido porque que estamos trabalhando com um transistor NPN. Pelo fato de que através do pino digital 8 estamos enviando um sinal positivo para a base do TIP122.

Agora, observe mais uma vez a imagem acima e pense: O que tem que acontecer para acionar o motor?

Concorda que falta apenas dar um curto nos dois fios pretos do coletor e do emissor?

Mas esse é o papel do transistor, ele que vai dar um curto entre o Emissor e o Coletor. Mas como ele faz isso?

Simples. Se mandarmos um sinal alto(HIGH) na porta digital 8 o transistor dará um curto(motor funcionando), se mandarmos um sinal baixo(LOW) o transistor desfaz o curto(motor desligado). É isso que vamos ter que fazer na programação do código.

Vamos lá!

/*************************************************************************
*                    Ligando e Desligando Motor DC                       *
*                     arduinolivre.wordpress.com                         *
*************************************************************************/

int base = 8; //Variável base recebendo o Pino digital 8

void setup() {
  pinMode(base,OUTPUT); //Definindo o pino 8 como saída
}

void loop() {
  digitalWrite(base, HIGH); //Sinal alto(5v) -> Ligar Motor
  delay(5000);  //Espere 5 segundos
  digitalWrite(base, LOW); //Sinal baixo(0v) -> Desliga Motor
  delay(5000); //Espere 5 segundos
}

O que o código faz?

Liga o motor por 5 segundos e desliga por 5 segundos infinitamente até que desligue o arduino ou o motor.

– Algumas questões –

1- É bastante recomendável não alimentar o motor direto no arduino como nas imagens acima, pois vc terá que prestar bastante atenção na corrente consumida pelo motor, mesmo você tendo esse trabalho todo usando o transistor, você apenas está protegendo a porta digital, ou seja, uma parte do arduino, e a outra parte deve-se dar também uma atenção. O arduino não conseguirá alimentar um motor por exemplo com mais de 500mA ou com mais de 5v, isto é óbvil, já que ele trabalha com 500mA e 5v, independente da fonte, lembre-se que o arduino tem um regulador de tensão. Então onde ele vai arranjar mais ampéres ou mais volts? Resp.: Ele não vai.

Então uma fonte externa será recomendada para suprir o motor, uma pilha por exemplo.

Vamos ver o esquema como vamos alimentar um motor agora de 9v com uma pilha de 9v, junto com o arduino:

fig3_motordc

Perceba que juntei o Ground da pilha com o Ground do Arduino, preste muita atenção na polaridade, não vamos falhar a essa altura( Ground com Ground). Isso serve para dar um ponto de referência para os elétrons poderem seguir, se vc retirar o Ground da pilha o motor pára de girar, logicamente os elétrons perderam a referência.

Já o positivo da pilha vai direto para o motor alimentando-o.

Então temos o 5v do arduino controlando o transistor(fazendo ele funcionar como liga e desliga) e 9v da pilha suprindo o motor.

2 – A essa altura espero que vocês estejam animados em poder controlar o motor. Mas não sei se perceberam que o motor só roda em um único sentido, será que tenho que modificar o código para rodar para um lado e depois rodar para o outro?

Não. Com apenas esses componentes não é possível, nem se você receber o espirito do maior programador de todos os tempos….rsrsrsrsrsrs…Você vai ter que fazer ou comprar mesmo, uma ponte-H, responsável por mudar a polaridade dos terminais do motor, consequentemente mudando o sentido de rotação.

É isso aí pessoal, espero que tenham gostado e até a próxima!

Publicado em março 13, 2013, em Arduino e marcado como , . Adicione o link aos favoritos. 4 Comentários.

  1. Rodrigo Oliveira

    Olá, Excelente tutorial. gostaria de saber o porquê da escolha do resistor de 2.2K.

    • Olá Rodrigo, boa pergunta. A escolha do resistor vai depender da corrente consumida pelo seu motor e do hfe, e através de alguns cálculos, vc vai saber qual resistor será necessário para saturar a base do transistor. Sabendo a corrente consumida pelo motor que vamos chamar de Ic, ou seja, a corrente do coletor, vamos atrás de outras informações, qual o hfe(Forward Current Gain) do transistor, que é o ganho do transistor, vc acha essa informação no datasheet do transistor utilizado. Pronto, agora vamos para os cálculos: A corrente da base(Ib) vai ser através de: Ib=Ic/hfe. Depois deste calculo, seguindo o princípio da lei de ohm: R=V/I, que neste caso vai ser: R=V/Ib. Lembrando que a tensão de base e emissor fica em média em torno de 0,7V, então temos que abater esse valor na tensão total para achar o “V” da lei de ohm, por exemplo, como o Arduino trabalha em 5volts de tensão, vc vai fazer 5v-0,7v, ficando V=4,3v. Fazendo o calculo e achando o valor de R, vc tem o valor da resistência do resistor. No caso, para evitar está falando desse conceitos, porque é um nível mais avançado para se entender, colocamos um resistor com um valor que dar para saturar um transistor, mas o ideal é fazer todo esse calculo, assim vc garante que não está dissipando energia sem necessidade.

  2. Olá!!Muito legal isso!!Mais gostaria de saber se tem como ligar uma fonte de 12V.

    • Olá Peter, se o motor funcionar a 12volts e a fonte ter uma corrente que supra a corrente do motor, tudo bem, aí vc irá usar o transistor para impedir que os 12v vá para o arduino, ou seja, isolar essa tensão.

Deixe um comentário