0

LEDs RGB com controlo Arduino

Neste tutorial, vamos aprender a controlar um LED RGB com  o Arduino UNO utilizando 3 saídas PWM que nos permitem estabelecer diferentes correntes. Para este tutorial utilizaremos um LED RGB cátodo comum, e os valores da intensidade vão de 0 a 255 configurando função analogWrite().

Atenção: Para o LED RGB de ânodo comum o pino mais longo é conectado ao Arduino positivo (+5V). No LED RGB de cátado comum o pino mais logo é conectado ao Arduino negativo (GND).

A imagem abaixo representada mostra como os componentes devem ser ligados. Nós iremos usar pinos digitais 9 (vermelho), 10 (verde) e 11 (azul) do Arduino, que têm saída PWM. Entre os pinos digitais e os LED RGB vamos colocar 3 resistências de 220Ohm.

Este é código que descarregamos no nosso Arduino, linha a linha está explicado para tornar fácil de entender.

    //--------------------------------------------------
    //Declaramos os pinos de entrada e de saída e as variáveis 
    //--------------------------------------------------
    int ledRojo = 9;   //Declaramos o LED Roxo
    int ledVerde = 10; //Declaramos o Pino LED Verde
    int ledAzul = 11;  //Declaramos o Pino LED Azul

    int pausa = 20;     //Pausa entre as interações do sinal PWM
    int alteração = 1000;  //Pausa entre cores
    
    //------------------------------------
    //Função Setup executa so uma vez quando o Arduino inicia
    //------------------------------------
    void setup() 
    {
      pinoMode(ledRoxo,OUTPUT);  //Configuramos o pino do LED Roxo como saída
      pinoMode(ledVerde,OUTPUT); //Configuramos o pino do LED Verde como saída
      pinoMode(ledAzul,OUTPUT);  //Configuramos o pino do LED Azul como saída
     
      analogWrite(ledRoxo, 255);   //Apagamos o LED Roxo (0=Acendido/ 255=Apagado)
      analogWrite(ledVerde, 255);  //Apagamos o LED Verde (0=Acendido/ 255=Apagado)
      analogWrite(ledAzul, 255);   //Apagamos o LED Azul (0=Acendido/ 255=Apagado)
    }
    
    
    //------------------------------------
    //Função Loop  executa uma e outra vez em bucle
    //------------------------------------
    void loop()
    { 
      
      for (int i=255; i>=0; i--) {  //Acendemos o LED Roxo usando PWM
          analogWrite(ledRoxo, i);     //Aumentando de 1 em 1 o valor 
          delay(pausa);                  //Fazemos uma pequena pausa
      } 
      for (int i=0; i <= 255; i++){ //Apagamos o LED Roxo usando PWM analogWrite(ledRojo, i); //diminuindo de 1 em 1 o valor delay(pausa); //Fazemos uma pequena pausa } delay(mudança); //O LED Roxo esta apagado. Fazemos uma pequena pausa. for (int i=255; i>=0; i--) {   //Acendemos o LED Verde usando PWM
          analogWrite(ledVerde, i);  //Aumentado de 1 em 1 o valor 
          delay(pausa);                //Fazemos uma pequena pausa
      } 
      for (int i=0; i <= 255; i++){ //Apagamos o LED Verde usando PWM analogWrite(ledVerde, i); //diminuindo de 1 em 1 o valor delay(pausa); //Fazemos uma pequena pausa } delay(mudança); //O LED Verde esta apagado. Fazemos uma pequena pausa for (int i=255; i>=0; i--) {  //Acendemos o LED Azul usando PWM
          analogWrite(ledAzul, i);  //Aumentando de 1 em 1 o valor 
          delay(pausa);               //Fazemos uma pequena pausa
      } 
      for (int i=0; i <= 255; i++){ //Apagamos o LED Azul usando PWM analogWrite(ledAzul, i); //diminuindo de 1 em 1 o valor delay(pausa); //Fazemos uma pequena pausa } delay(mudança); //O LED Azul esta apagado. Fazemos uma pequena pausa //------------------------------------ //COMBINAÇÃO DAS CORES RGB (MAGENTA) //------------------------------------ for (int i=255; i>=0; i--) { //Acendemos os LEDs Azul e Roxo usando PWM
          analogWrite(ledAzul, i); //Aumentando de 1 em 1 0 valor 
          analogWrite(ledRoxo, i); 
          delay(pausa);              //Fazemos uma pequena pausa
      } 

      for (int i=0; i <= 255; i++){ //Apagamos os LEDs Azul e Roxo usando PWM analogWrite(ledAzul, i); //diminuindo de 1 em 1 o valor analogWrite(ledRoxo, i); delay(pausa); //Fazemos uma pequena pausa } delay(mudança); //Os LEDs Azul e Roxo esta apagados.Fazemos uma pequena pausa //------------------------------------ //COMBINACÃO DE CORES RGB (BRANCO) //------------------------------------ for (int i=255; i>=0; i--) {  //Acendemos todos os LEDS usando PWM
          analogWrite(ledAzul, i);  //Aumentando  de 1 em 1 o valor
          analogWrite(ledRoxo, i);  
          analogWrite(ledVerde, i); 
          delay(pausa);               //Fazemos uma pequena pausa
      } 

      for (int i=0; i <= 255; i++){ //Apagamos todos los LED usando PWM
          analogWrite(ledAzul, i);  //diminuindo de 1 em 1 o valor 
          analogWrite(ledVerde, i); 
          analogWrite(ledRojo, i); 
          delay(pausa);               //Fazemos uma pequena pausa
      }  

delay(mudança);  //Todos os LEDs esta apagados. Fazemos uma pequena pausa

 }
</pre>

Artigo gentilmente cedido por Vida de Silicio

Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.

Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.

Não se esqueçam de fazer like na nossa Página no Facebook.

Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?

Comments

Comentários

ArduinoPortugal.pt

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

To use BrandCaptcha you must get an API Key