Arduino, Internet das Coisas e Computação vestível

[Voltar]

[Avançar]

1.8. Projeto anel LED RGB WS2812


Projeto anel de LED RGB WS2812

Este projeto utiliza placa Arduino Uno R3 e Módulo anel LED RGB WS2812. O projeto utiliza a biblioteca Adafruit_NeoPixel.


/* 
Projeto: controle um anel de LED RGB x 16 WS2812 
Autor: André Silveira
Data: 23/11/2019 
*/

#include "Adafruit_NeoPixel.h"

#define LED_PIN  5 			// Pino digital do "DIN" do módulo WS2812 
#define NUM_LEDS 16 		// Número de Leds do módulo Led WS2812
#define BRIGHTNESS 255 		// Intensidade do LED (0 até 255) 

int i;                                         // Variável que identifica a posição do LED no anel (0 até 15)
int r;                                        // Variável valor da cor Red
int g;                                       // Variável valor da cor Green
int b;                                       // Variável valor da cor Blue 
int v = 0;                                 // Variável para contador

Adafruit_NeoPixel leds(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
    leds.begin(); 
    leds.clear(); 
}

void loop() {  
      
   for(i = 0; i < NUM_LEDS; i++) {    
	    	
        if ((i-1) >= 0) {                                                  // Identifica LED anterior  
            leds.setPixelColor((i-1), leds.Color(0,0,0));       // Apaga o LED anterior       
        }
      
        v = v + 1;                                         // Contabiliza de 0 até 3
        if (v > 2) {                                       // Limpa contador quando for iqual 3  
            v = 0;
        } 
        
        switch (v) {                                      // Identifica variável do contador
                case 1:                                    // Se contador iqual a 1
          		    r=255;
          		    g=0;
          		    b=0;
          		    break;
                case 2:                                    // Se contador iqual a 2
          		    r=0;
          		    g=255;
          		    b=0;
          		    break;
                default:                                   // Se contador qualquer valor
          		    r=0;
          		    g=0;
          		    b=255;
          		    break;		
        }
      
        leds.setPixelColor(i, leds.Color(r,g,b)); 
        leds.show();   
        delay(300);
   } 
  
   leds.clear();
   leds.show();
 

}

 

[Voltar]

[Avançar]