Controlando LEDs com Arduino

Tudo que você queria saber sobre LEDs com Arduino, mas tinha vergonha de perguntar.

Mais um artigo sobre LEDS?
Sim! Mas agora procurei agrupar em um só lugar toda a teoria e prática necessária para o desenvolvimento de projetos envolvendo esse componente muitas vezes subestimado mas que, na verdade, é uma das estrelas da eletrônica e uma das grandes invenções da humanidade: O LED!

LED para Leigos

O que é um LED?

O LED (Light Emitting Diode ou Diodo Emissor de Luz) é um dos componentes eletrônicos mais utilizados no mundo da eletrônica e sua principal aplicação é na sinalização, como indicador visual. Ele nada mais é do que um diodo semicondutor que, quando é energizado, emite luz visível de uma determinada cor. Essa cor dependente do cristal e da impureza de dopagem com que o componente é fabricado.

Um diodo semicondutor é um componente eletrônico que conduz corrente elétrica apenas em uma polarização (anodo positivo e catodo negativo). Vejamos então como identificar os terminais de um LED:

O LED e seus terminais
O LED e seus terminais

Tipos de LED

Vejamos agora os principais tipos de LED usados com Arduino.

LED Difuso
Figura 2: LED Difuso

LEDs difusos: a luz destes LEDs é espalhada por sua cápsula de plástico de forma uniforme.

 

 

LED Alto Brilho
Figura 3: LED Alto Brilho

LEDs de alto brilho: A cápsula de plástico deste LED é transparente, o que aumenta sua luminosidade.

 

Fita LED
Figura 4: Fita LED

Fitas de LED: É uma fita que possui em sua extensão vários LEDs minúsculos (SMD), brilhando em conjunto ou alternadamente;

 

LED RGB
Figura 5: LED RGB


LEDs RGB: 
possuem três cores, vermelho (Red), verde (Green) e azul (Blue) que, combinadas, podem formar milhares de cores;

Matriz LED
Figura 7: Matriz LED

Matriz de LEDs: são conjuntos de LEDs usados em linhas e colunas, para apresentar letras e até gráficos de baixa resolução. Podem funcionar em conjunto ou individualmente.

 

Esquema de ligação

Para controlarmos um LED pelo Arduino, usamos a seguinte ligação física:

Arduino LED Ligações
Arduino LED Ligações
  1. O catodo (Perna curta) do LED ao GND do Arduino;
  2. O anodo (Perna comprida) do LED a uma porta digital do Arduino através de um resistor.

Observações:

A) Para qualquer tipo de LED, a ligação vai ser sempre essa;

B) O resistor é necessário como limitador de corrente, caso contrário o LED poderá ser danificado. Para calcularmos seu valor de uma forma bem simples, devemos saber:

  • A tensão da fonte de alimentação (Va);
  • A tensão suportada pelo seu LED em volts(Vled);
  • A corrente suportada pelo seu LED em amperes(Iled).

R = (Va – Vled) / Iled

Exemplo: Sabendo que a maioria dos LEDs suporta uma corrente de 0,02A com 3V e que a tensão fornecida pelo Arduino UNO é de 5V, temos o seguinte resultado:

2V / 0,02A = 100Ω

Na prática, podem ser usados quaisquer resistores com valores entre  220Ω a 430Ω.
Caso seja perfeccionista ou sofra de T.O.C. e quer calcular o valor exato, neste endereço, você encontra uma calculadora online:  http://led.linear1.org/1led.wiz

C) O Arduino possui um LED e resistor interno na porta 13. Esse LED pode ser usado para testes.

D) Para controlar o LED, basta enviar um sinal para o pino onde o anodo está ligado:

HIGH ou 1 → Acende o LED
LOW ou 0 → Desliga o LED

E) É possível variar a intensidade da luz utilizando-se um pino PWM que aceita valores de 0 (Desligado) a 255 (máxima intensidade).

Projetos de LEDs com Arduino

Veremos agora algumas montagens e sketches básicos de LEDs com Arduino.

Blink com LED interno

Este é o clássico Hello World com Arduino. O Objetivo é fazer o LED interno conectado ao pino 13 piscar em um intervalo fixo.

Esquema: Somente o Arduino é necessário.

Sketch:

Blink com LED externo

Produz o mesmo efeito do exemplo anterior, mas agora usando um led externo.

Esquema:

Arduino External LED
Figura 9: Arduino External LED

Sketch:

Blink sem delay

Muitas vezes queremos realizar outros tipos de processamento ao mesmo tempo em que o LED está piscando. Nesse caso não podemos usar o comando delay pois esse comando para todo o processamento. A solução é usar o comando millis:

Esquema: O mesmo da figura 9

Sketch:

Blink com delay variável via potenciômetro

Neste exemplo, o delay do blink será controlado por um potenciômetro. Conforme  o potenciômetro é ajustado, o tempo entre as piscadas irá diminuir ou aumentar.

Esquema:

Arduino Blink Ajustável
Figura 10: Arduino Blink Ajustável

Sketch:

Efeito FADE – Controle da intensidade

Neste exemplo vamos controlar a intensidade do brilho do LED através de uma porta PWM que permite variarmos o sinal de 0 até 255 .

Esquema: O mesmo da figura 9

Sketch:

Controle da intensidade por potenciômetro

Agora vamos controlar a intensidade do brilho do LED através de um potenciômetro ligado à uma saída analógica que permite variarmos o sinal de 0 até 1023. No entanto teremos que compatibilizar o sinal para variar entre 0 e 255.

Esquema: O mesmo da figura 10

Sketch:

Blink com PushButton

Vamos fazer o led acender toda vez que o pushbutton for pressionado. Repare que estamos ativando o resistor pull-up interno para o botão.

Esquema:

Arduino LED PushButton
Arduino LED PushButton

Sketch:

Liga/Desliga LED com PushButton

Para este experimento, vamos transformar o pushbutton em um interruptor que vai ligar ou desligar o led.
Um problema típico para este tipo de aplicação é o efeito de bouncing: Como a velocidade de processamento do microprocessador é muito alta, o pressionamento  do botão pode ser detectado mais de uma vez. Para contornar essa situação,  vamos apelar novamente para o millis.

Esquema: O mesmo da figura 11

Sketch:

Trabalhando com LED RGB

Controlar um LED RGB é a mesma coisa que trabalhar com três LEDs separados com as cores Red, Green e Blue.  Cada perna do LED deverá ser ligada a um resistor. Você pode enviar sinais de 0 a 255 para fazer a combinação de milhares de cores.

Exemplo:
Vermelho → R=255,G=0,B=0
Azul → R=0,G=0,B=255
Amarelo → R=255,G=255,B=0

Cuidado! Você precisa verificar se o seu LED é Anodo Comum. Nesse caso os valores são invertidos

Esquema:

Arduino RGB LED
Arduino RGB LED

Sketch:

Conclusão

Espero ter ajudado o iniciante em Arduino a tirar todas suas dúvidas com o controle de LEDs. Em breve irei publicar projetos mais elaborados com esse componente aqui no blog.

Até lá!

Referências

http://playground.arduino.cc/
http://www.nubiasouza.com.br/controle-do-led-com-push-button-arduino/
http://learn.acrobotic.com/tutorials/post/arduino-activity-03-push-button

3 thoughts on “Controlando LEDs com Arduino”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *