AprendaArduinoTutorialAnimação LED RGB

Post original “Fun with an RGB LED” por Matthew Beckler

Resumo:

Usar um LED RGB com saídas PWM é uma forma divertida de aprender a usar o Arduino. Usando 3 potenciômetros é possível misturar diferentes proporções de vermelho, verde e azul (R – red, G – green, B – blue) no mesmo LED, produzindo quase qualquer cor imaginável.

 

Descrição geral

O Arduino é uma plataforma muito boa para o desenvolvimento para microcontroladores baseada na linha Atmel de microcontroladores. O sistema vem com algumas funções convenientes para inicialização e operação, que realmente auxiliam a diminuir o tempo de desenvolvimento para a maioria dos projetos. Para este projeto, conectamos um LED RGB tricolor ao microcontrolador com as saídas PWM (analógicas) para controlar o brilho de cada cor e usar 3 entradas analógicas para ajustar o brilho de cada cor.

 

LEDs RGB tricolores

Um LED RGB é simplesmente 3 LEDs separados colocados dentro de um encapsulamento de LED de 5mm. Existe um elemento vermelho, um verde e um azul. Estes 3 LEDs compartilham o mesmo terminal positivo, neste caso chamado LED de “anodo comum”, ou o mesmo terminal negativo, chamado de “catodo comum”. Para controlar cada cor, simplesmente conecte o catodo ao terra e o anodo ao positivo da alimentação, sempre usando resistores de limitação de corrente para evitar que os LEDs queimem. Pode-se também usar modulação por largura de pulso (PWM – pulse width modulation – veja abaixo) para mudar o brilho do LED. Abaixo um exemplo de pinagem de LED:

Exemplo LED RGB Exemplo LED RGB

Modulação por largura de pulso (PWM)

O brilho de um LED é proporcinal à corrente que passa por ele, mas seria muito difícil usar um microcontrolador para controlar com precisão a corrente que flui por um LED.

Por sorte, a visão humana apresenta um fenômeno chamado persistência de visão. Isto ocorre quando uma imagem é vista por apenas uma fração de segundo, mas continua a ser “vista” pelo cérebro mesmo depois que a imagem original sumiu ou se moveu. Este é o mesmo princípio de funcionamento do cinema e da televisão, quando imagens que mudam rapidamente dão a impressão de movimento contínuo. Ao ligar e desligar  o LED rapidamente, o cérebro é levado a enxergar a “média” do brilho baseado no ciclo de trabalho –  largura de pulso ou duty cicle como é chamado tecnicamente – do sinal aplicado ao LED.

Modulação por largura de pulso (Pulse-width modulation  – PWM) é a prática de modular a largura de pulso de um sinal, usado nesta aplicação para controlar a potência média anviada a cada LED. Na figura a seguir são mostrados 3 duty cicles diferentes. primeiro com 50%, depois com 10% e 90%. Durante o duty cicle de 10%, o sinalfica em nível lógico alto apenas por um breve tempo a cada ciclo, porém com 90%, a maior parte do período é ocupado pelo nível lógico alto. Se a frequência do sinal for rápida o suficiente, então não existirá pulsação visível e o brilho do LED será proporcional ao ciclo de trabalho do sinal.

PWM PWM

Diagrama do circuito

O circuito é dividido em duas sessões, entrada e saída. O circuito de entrada tem 3 potenciômetros, que são simplesmente resistores variáveis. Nesta aplicação são usados para produzir uma tensão analógica controlável conectando seus extremos à alimentação e ao terra e conectando o outro terminal ao pino de entrada analógica. Quando se ajusta o potenciômetro, a tensão a ser medida tem um valor entre 0 e o valor da alimentação (aqui 5 volts). Utilizam-se 3 potenciômetros, um para cada cor, e são conectados à entradas analógicas 0,1 e 2, correspondendo à vermelho, verde e azul.

O circuito de saída tem o anodo comum do LED conectado diretamente à alimentação (conhecido por Vdd ou Vcc). Caso o LED seja de catodo comum, este deve ser conectado ao terra. Cada um dos outros 3 pinos das cores é ligado através de um resistor limitador de corrente a um dos pinos de saída do Arduino. Os resistores limitadores de corrente são usados para proteger os LEDs de correntes muito altas, e se quiser mais informação sobre como acionar LEDs com ou sem resistores, existe um bom guia no Tinkerlog website. São usados os pinos 9,10 e 11 especificamente pois este pinos são capazes de fazer a saída PWM através da função analogWrite(). Isto permite que o brilho par cada cor seja ajustado independentemente.

Circuitos RGB Circuitos RGB

Resultados

Este projeto teve um resultado muito bom. Foi usada como difusor de luz uma bola de ping pong com um pequeno buraco para fixação do LED em seu interior. Isto fez a luz muito mais uniforme com menos pontos de cor individual não misturada. Foi gravado um vídeo do programa de sequência de cores:

 

Programas

Existem dois programas para download. O primeiro é para o projeto em que se usam 3 potenciômetros para controlar a cor exibida pelo LED RGB. O segundo não utiliza os potenciômetros e simplesmente apresenta sequências de cores repetidamente.

 

Download para o programa com potenciômetros

 

 

Download para o programa de sequências

Traduzido a adapdado para LEDs genéricos

Original Copyright © 2004 – 2016, Matthew L. Beckler, CC BY-SA 3.0

Produtos
Promoção!
Arduino UnoArduino UnoOut Of Stock

Uno SMD – Arduino compatível

R$59,90 R$54,90

Ideal para iniciantes, o Uno é um Arduino compatível bem capaz, barato e com diversos shields e sensores compatíveis disponíveis. Se você está começando a aprender sobre microcontroladores e Arduinos, esta é a placa perfeita! Ela é a nossa placa principal nos nossos tutoriais de Arduino.

sensor-ultrassonico-distancia

Sensor ultrassônico HC-SR04

R$17,90

Mensure distâncias com este ótimo sensor ultrassônico. Faça uma régua eletrônica, um theremin digital, ou até mesmo seus robôs evitarem obstáculos no meio do caminho com este simples e excelente sensor de distância!

 

display-lcd

Display LCD 16X2 caracteres com I2C

R$24,90

Nosso display 16×2 vem equipado com uma placa I2C. Isto significa que com apenas duas conexões para alimentação e mais duas para comunicação pode-se fazer o display funcionar!

Muito mais simples que as conexões paralelas dos outros displays.

Deixe uma resposta

Seu endereço de e-mail não será publicado. Campos obrigatórios estão marcados *

limpar formulárioPostar Comentário