Tensão fornecida pelo Arduino:
- 5V
- 3.3V
Corrente fornecida pelas portas do Arduino:
- (Max.) - 40mA
Estão ligadas diretamente nos pinos do ATMega
Corrente fornecida pelos pinos de energia do Arduino (Power pins):
-(Max.) - 50mA ~ 200mA (Recomendada, com base em discursões da comunidade Arduíno)
Estão ligadas nos reguladores de tensão alimentadas pela Fonte externa ou USB
Porque não podemos alimentar cargas acima de 40mA (um motor, por exemplo) diretamente na porta do arduino?
De forma bem resumida, quando alimentamos um dispositivo, este irá puxar dar fonte o máximo de corrente que ele conseguir.
Ao alimentarmos um LED (em série com uma resistência baixa) diretamente na porta do Arduino, por exemplo, consome em torno de 8mA, bem abaixo do que uma porta de Arduino pode fornecer, que é de 40mA, então, poderíamos alimentá-lo com a porta do Arduino tranquilamente.
Porém, um Motor DC ele consome muito mais corrente quando comparamos a um LED, chegando a puxar da fonte uma corrente de 1A ou mais! como nossa porta consegue fornecer apenas 40mA, se ligarmos diretamente na porta, ela irá queimar. Até mesmo os pinos de alimentação do Arduino, que fornecem 200mA, não suportariam a carga do motor, é necessário neste caso, uma fonte de alimentação externa..
Solução: Isolamento de circuitos (Circuito de proteção)
Portas do Arduino servem para controlar dispositivos e não alimentar
PORTA DO ARDUINO - Alimentado pelo ATMega
CIRCUITO DE PROTEÇÃO - Alimentado pelos pinos de energia (figura 1)
CIRCUITO DE ATIVAÇÃO - Alimentado pelos pinos de energia do Arduíno ou fonte externa
DISPOSITIVO - Alimentado por fonte externa
Figura 1
A fonte externa vai depender do dispositivo a ser acionado, em caso de Lâmpadas, Geladeira, Ar Condicionado, etc. necessitaríamos de uma fonte AC adequada, logo não poderíamos alimentar nosso circuito de ativação que é de corrente contínua.
Mas, dependendo do circuito de ativação, que no nosso caso será relê, dá para serem alimentados pelos pinos de energia do Arduino, conforme o tutorial vai se estendendo, as coisas vão ficando mais claras.
Vamos para o que realmente interessa, abaixo temos o circuito de proteção
CIRCUITO DE PROTEÇÃO
- A porta do Arduino controla a base de um transistor NPN
- Load RL é a carga que vamos acionar (que consuma no máximo 200mA), no nosso caso, será um Relê (Circuito de Ativação)
- Quando a porta do Arduino está em nível lógico ALTO, entra corrente na base e satura o transistor, fazendo com que conduza corrente do coletor para o emissor, acionando o relê.
- Recomendo o uso do diodo de proteção, bobinas (relê) tem como característica criar campo inverso podendo queimar o transistor.
Para saber quanto que o relê vai consumir de corrente, aplica a Lei de ohm V=RI, I=V/R.
Medimos com o multímetro o valor da resistência na bobina do relé, este valor situa-se normalmente entre 120 e 10000 Ω.
Neste caso, o valor apresentado pelo multímetro é de 600 Ω
Se, por exemplo utilzarmos os pinos de energia do Arduíno, a nossa tensão (V) é de 5V, o valor da corrente no coletor será
I= V/R
I=5/600
I=0.0083A
I=8,3mA
(Nestes cálculos, desprezamos as quedas de tensão nos dispositivos)
O Arduino consegue suportar uma corrente de 8,3mA, ou seja, se ligarmos diretamente funciona. Mas em situações de carga excessiva e picos pode danificar o Arduino, logo ainda assim, recomenda-se o uso do transístor para atuar sobre o relé suportando a corrente diretamente e não o Arduino.
Esta corrente de 8,3mA é a correntem mínima que deverá passar pelo Coletor do Transistor (ic) para acionamento do relê, então temos que escolher um transistor que suporte essa corrente em seu coletor e de preferência um Vceo (tensão coletor-emissor) maior que a fonte que utilizamos, por precaução.
Podemos utilizar diversos tipos de transistores: C945, 2N2222, BC548, entre outros.
Ao escolhermos o transistor, olhamos no datasheet qual o ganho (HFE), no caso do BC548 é de aproximadamente 80 (obs.: escolha o HFE mínimo)
O ganho (HFE) é a razão entre a corrente de coletor (IC) e a corrente de base (Ib).
Temos o valor do HFE e a corrente mínima que deverá passar pelo coletor (ic), então, substituindo na fórmula, podemos encontrar a corrente que deverá fluir na base do transistor.
HFE= Ic/Ib
Ib=Ic / HFE
Ib = 0.0083/80
Ib= 0.000103 A(amperes)
Ib= .10 mA(miliamperes)
Isto é, para uma corrente de 8,3mA no coletor do transistor, é necessário uma corrente de aproximadamente 0.10mA na base do transistor!
Com a corrente de base do transístor encontrada, podemos calcular o valor de Rb utilizando novamente a lei de ohm, sabendo que a tensão da porta Do arduino é a igual a 5V teremos:
R=U/Ib, R=5/0.000103, R=48543Ω, R=47KΩ (valor vendido comercialmente)
Dessa forma, devemos usar um resistor menor que o calculado, pois a resistência que encontramos acima é valor máximo que Rb pode assumir para que tenhamos uma corrente mínima no coletor do transistor necessária para acionar o relê, que é de apenas 8,3mA, caso esta corrente seja menor, é provável que nem acione o relê. Vamos adotar 4,7KOhm
I=V/R
Ib = 5V/4,7Ω
Ib = 5V/4,7Ω
Ib = 1,06
Ic = Ib x HFE
Ic = Ib x HFE
Ic = 1,06 x 80
Ic = 85,1 mA
Com esse valor de resistência, nosso relê vai receber uma corrente de 85,1mA, garantindo o seu acionamento e dentro de suas caracteristicas elétricas.
Os cálculos são chatos, mas são feitos para garantir a integridade, durabilidade e bom funcionamento do circuito, pois ele estará operando dentro das características elétricas de segurança dos dispositivos.
Mas, caso não esteja disposto a fazer os cálculos, coloque na base do transistor uma resistência que varia de 470Ω ate 10kΩ, por método de tentativa e erro, e faça as medições e testes e veja se o circuito opera dentro das caracteristicas elétricas fornecidas pelo datasheet dos componentes, se funcionou bem, então use-o, não esquente a cabeça !
Os cálculos são chatos, mas são feitos para garantir a integridade, durabilidade e bom funcionamento do circuito, pois ele estará operando dentro das características elétricas de segurança dos dispositivos.
Mas, caso não esteja disposto a fazer os cálculos, coloque na base do transistor uma resistência que varia de 470Ω ate 10kΩ, por método de tentativa e erro, e faça as medições e testes e veja se o circuito opera dentro das caracteristicas elétricas fornecidas pelo datasheet dos componentes, se funcionou bem, então use-o, não esquente a cabeça !
Agora, vamos ao circuito de ativação
O relê vai ser atuado pelo transistor, funcionando como uma chave, quando o microcontrolador fornece 5V e gera corrente na base do transistor, vai saturá-lo e faz com que conduza do corrente do coletor para o emissor, acionando o relê
Funcionando da seguinte forma, ilustrado no vídeo abaixo:
Qualquer dúvida, deixe seus comentários ou entre em contato conosco !
CÓDIGO (Fonte: SerialLink)
byte BOTAO = 0; //Indica o estado do botão
byte MOTOR = 0; //Indica o estado do motorbyte PORTA_B = 10; //Guarda o valor da porta da botão
bute PORTA_M = 8; //Guarda o valor da porta do motor
void setup()
{
pinMode(PORTA_B, INPUT); //Configuramos a porta 10 do botão como entrada
digitalWrite(PORTA_B, 1); // liga pullup
pinMode(PORTA_M, OUTPUT); //Configura porta 8 do motor como saída
digitalWrite(PORTA_M, 0); // motor inicialmente desligado
}
void loop()
{
BOTAO = digitalRead(PORTA_B); //Verifica o valor da porta do botão
if (BOTAO == 0) //Se botão pressionado
{
MOTOR = !MOTOR; //Inverte o estado da variável motor, aperta botão liga/desliga
digitalWrite(PORTA_M, MOTOR); //Escreve o estado do motor
delay(500);
}
delay(1000);
}
Circuito do código
Tag:
Acionamento de Lâmpadas
Acionamento de Motor
acionamento de Geladeira
Acionamento de Ar Condicionado
Arduino, Arduino Mega
Arduino Uno
Arduino Duemilanove,
Rele
Tansistor
Eletrônica
Ganho de Transistores
Corte Saturação