Vous êtes sur la page 1sur 4

Arduino e ULN2803: controlando circuitos de maior tenso com um chi... http://br-arduino.org/2015/01/arduino-e-uln2803-controlando-circuitos...

BR-Arduino.org
Do LED ao Arduino: aprendendo eletrnica no sculo 21
Arduino uma plataforma eletrnica flexvel, fcil de usar, econmica e open
source, destinada a profissionais, entusiastas e curiosos em geral.

Arduino e ULN2803: controlando circuitos de maior tenso


com um chip fcil de lidar

O CI ULN2803 barato, fcil de conectar e programar, e permite que o


Arduino controle de maneira simples 8 portas de um circuito de at 50V.

Para controlar no Arduino componentes que exigem maior tenso ou corrente, como leds de alta
potncia, rels, solenides, motores DC unidirecionais e outros, necessrio recorrer a
intermedirios capazes de fazer a ligao entre a baixa capacidade de tenso e corrente do Arduino,
e as demandas do circuito que est sendo controlado.

Anteriormente j vimos como fazer isso usando os baratssimos transistores NPN e tambm usando
um chip L239D, e agora chegou o momento de ver como fazer isso com o chip ULN2803.

Usarei novamente o meu exemplo de aplicao: um piano automtico em que um conjunto de


solenides como o da imagem abaixo fazem o papel de dedos do pianista, acionando as teclas
quando o Arduino comandar.

No artigo Solenoides no Arduino com o chip driver L293D eu j expliquei a situao: os


solenides exigem mais tenso e corrente do que o Arduino pode entregar diretamente, e assim
precisam de um intermedirio que possa ser controlado pelo Arduino para ento acion-los. Esses
intermedirios conseguem gerenciar para estar ao mesmo tempo no nvel de tenso do Arduino e
dos solenides, sem colocar essas tenses em contato entre si.

Naquele artigo eu controlei 4 solenides com um chip L293D, que realiza a funo de
intermedirio descrita acima ao atuar na forma de uma Ponte H Dupla, que um circuito capaz de

1 de 4 29/11/2016 19:55
Arduino e ULN2803: controlando circuitos de maior tenso com um chi... http://br-arduino.org/2015/01/arduino-e-uln2803-controlando-circuitos...

controlar 2 motores DC permitindo definir o sentido do seu movimento em outras palavras, se o


motor estiver conectado s rodas de um carrinho, a Ponte H permite definir se ele vai andar para a
frente ou para trs.

Diferentemente dos motores DC, os solenides s tm o estado aberto e o fechado, no possvel


inverter seu sentido. por isso que o L293D, capaz de gerenciar 2 motores DC, consegue acionar 4
solenides. Mas tambm por isso que o uso de um chip de Ponte H para acionar solenides um
certo desperdcio de capacidade, e assim procurei outra alternativa.

E essa alternativa veio na forma do chip ULN2803, que no oferece uma Ponte H,
consideravelmente mais barato que o L293D (R$ 1,85 contra R$ 9,89, na loja de eletrnica da
esquina), e tem o dobro dos pinos de controle disponveis: d para acionar at 8 solenides
diretamente conectados a ele.

ULN2803: COMO FUNCIONA


Os detalhes tcnicos sobre o chip ULN2803 esto na sua datasheet, mas para mim o essencial
que ele capaz de ser gerenciado diretamente pelo Arduino e tem 8 pinos de controle para
gerenciar 8 dispositivos externos, e os 12V/500mA dos meus solenides esto tranquilamente
dentro da sua faixa de atuao (que vai at 50V).

No necessrio entender o conceito para usar o chip, mas vale o registro: o ULN2803 funciona
como se fosse uma matriz de 8 pares Darlington em configurao NPN, cada um incluindo um
diodo para se proteger contra retornos de corrente tpicos do acionamento de motores, solenides,
rels e outros componentes indutores.

As consequncias das definies acima so importantes: por ser Darlington, o chip permite que a
pequena corrente do Arduino controle correntes maiores; por ser NPN, sabemos que o que deve
ser conectado ao chip o negativo/terra dos componentes que forem ser controlados por ele; e por
incluir o diodo, sabemos que no precisamos nos encarregar de colocar essa usual segurana
adicional no circuito.

ULN2803 E ARDUINO: COMO CONECTAR


Conectar os pinos do ULN2803 ao Arduino bem simples:

Como voc pode ver na imagem acima, ele tem 18 pinos, 9 de cada lado. Olhando-o na posio da
imagem, note que os 8 pinos superiores de cada lado so pares entre si: 1B com 1C, 2B com 2C,
etc., at 8B com 8C.

Basicamente eu conectei cada pino "B" (os da esquerda na imagem) a um pino de sada do
Arduino, e cada pino "C" (os da direita na imagem) ao negativo de um rel poderia ser ao
negativo ou terra de um led, de um motor ou do que eu fosse controlar, desde que dentro dos
parmetros de operao do chip.

Como o negativo do rel que est conectado ao chip, naturalmente o seu positivo dever ser
conectado fonte de alimentao adequada. Quando um pino do Arduino que est conectado a um
pino "B" do ULN2803 recebe HIGH, o pino "C" correspondente abre conexo com o terra, e o
rel conectado a ele ser acionado. Quando o mesmo pino do Arduino receber LOW, a conexo do
rel com o terra ser encerrada.

Restam os 2 pinos inferiores: GND e COM. O GND (esquerda no diagrama) deve ser conectado

2 de 4 29/11/2016 19:55
Arduino e ULN2803: controlando circuitos de maior tenso com um chi... http://br-arduino.org/2015/01/arduino-e-uln2803-controlando-circuitos...

ao terra do circuito, e o COM deve ser conectado fonte de alimentao do circuito controlado
no meu caso, uma fonte de 12V capaz de alimentar os solenides.

s isso: pinos de entrada com pinos de sada, mais terra e fonte:

O diagrama simplificado acima demonstra as conexes de pinos para 2 solenides. Note que:

1. Cada um dos solenides tem 2 fios, sendo que o terra conectado a uma porta "C" do
[1]
ULN2803, e o outro fio (positivo) conectado aos 12V da fonte externa .

2. Cada um dos pinos "B" correspondentes aos pinos "C" onde h solenides est conectado a
um pino de sada do Arduino.

3. Para finalizar, o pino 9 (GND) do ULN2803 est conectado ao terra, e o pino 10 (COM) do
ULN2803 est conectado aos 12V da fonte externa.

ARDUINO E ULN2803: COMO PROGRAMAR


Se voc achou simples a conexo fsica dos pinos, saiba que a programao mais simples ainda:
basta configurar (com pinMode() ) para OUTPUT os pinos do Arduino que estiverem conectados
aos pinos "B" do ULN2803, e a enviar (com digitalWrite() ) os valores HIGH e LOW para
esses pinos quando quiser que os circuitos correspondentes sejam ligados ou desligados,
respectivamente.

Para o diagrama de conexo apresentado acima, uma inicializao tpica seria:

void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}

Para ativar e desativar, alternadamente, os 2 solenides, eu poderia usar uma rotina como esta:

void loop() {
digitalWrite(8,HIGH);
delay(100);
digitalWrite(8,LOW);
delay(100);
digitalWrite(9,HIGH);
delay(100);
digitalWrite(9,LOW);
delay(100);
}

Fora isso, acrescentar a complexidade que a aplicao exigir ;-)

1. Na prtica, estes solenides no tm polaridade, ento tanto faz qual dos seus 2 fios conectado
ao chip ou fonte. A distino pode ser importante caso voc esteja conectando componentes
com polaridade, como alguns motores, os leds ou os rels, por exemplo.

3 de 4 29/11/2016 19:55
Arduino e ULN2803: controlando circuitos de maior tenso com um chi... http://br-arduino.org/2015/01/arduino-e-uln2803-controlando-circuitos...

Control sensors, motors &

Arduino Project Builder actuators. Drag & drop project


builder. Free download.

27/01/2015

4 de 4 29/11/2016 19:55

Vous aimerez peut-être aussi