Arduino, Internet das Coisas e Computação vestível

[Voltar]

[Avançar]

8.4. Aciona motor com transistor TIP 120

Acionando um motor com transistor TIP 120 e arduino

No circuíto abaixo, um transistor NPN TIP120 controla um motor de corrente continua (CC ou DC) que necessita mais corrente do que os pinos do arduino podem fornecer. O transistor funciona como uma chave que liga ou desliga a corrente gerada por uma pilha de 9 Volts.

No circuito, o pino digital 8 do arduino está conectado a base (B) do transistor. Através dele controlamos o fluxo de corrente do coletor para o emissor, permitindo que se ligue ou desligue o motor. O negativo do motor (GND) está conectado ao emissor (E) e o positivo ao polo positivo da bateria externa. O negativo da bateria (GND) está conectado ao coletor do transistor (C).

Perceba que o Ground da pilha está ligado ao Ground do Arduino. Isso serve para dar um ponto de referência para os elétrons poderem seguir, se VC retirar o Ground da pilha o motor para de girar, ou seja, os elétrons perdem a referência.

Na programação abaixo, ao mandarmos um sinal alto (HIGH - 5V) na porta digital 8 o transistor dará um curto (motor funcionará). Ao mandarmos um sinal baixo (LOW - OV) o transistor desfaz o curto (motor desligará). Agora temos o 5V do arduino controlando o transistor (fazendo ele funcionar como liga e desliga) e 9V da pilha suprindo o motor.

A tensão máxima aceita pelo TIP120 na base é de 5 Volts. Nesta versão utilizamos um resistor de 3 KΩ para alimentar a base com 1,45 Volts.




O programa inicia ligando o motor durante 5 segundo. Após, o motor é desliga por mais 5 segundos. Em seguida, o processo é reiniciado.

// Projeto: Liga e Desliga Motor DC 
// Autor: André Silveira
// Data: 07/05/2018  


int base = 8;                          // Variável base - Pino digital 8

void setup() {
pinMode(base,OUTPUT); // Define o Pino digital 8 como saída
}

void loop() {
digitalWrite(base, HIGH); // Emite sinal alto(5v) para ligar Motor
delay(5000); // Aguarda 5 segundos
digitalWrite(base, LOW); // Emite sinal baixo(0v) para desligar Motor
delay(5000); // Aguarda 5 segundos
}

 

[Voltar]

[Avançar]