As fitas de LED são feitas de uma sucessão de LEDs RGB endereçáveis, o que significa que o brilho e a cor de cada LED podem ser definidos de forma independente Existem vários modelos de fitas: de cor única, não endereçáveis, 5 ou 12V, etc. Escolha bem o modelo que pretende usar.
Material
- Computador
- Arduino UNO
- Cabo USB A Macho/B Macho
- Fita de LED WS2812B
Esquema
A fita de LED utiliza um pino PWM no microcontrolador para determinar a cor, a intensidade e o LED a ser aceso. Certifique-se de utilizar uma fonte externa de alimentação, pois a fita de LED pode consumir muita energia, especialmente se for longa e se houver várias delas alimentadas em série. Para uma fita de LED WS2812B, contamos 50mA por LED, ou seja, 2.5A para 50 LEDs. Verifique o número e o tipo de LEDs que pretende iluminar para escolher uma fonte de tensão adequada.
Código
Dependendo da marca da fita de LED, diferentes bibliotecas podem ser usadas, como a Adafruit_NeoPixel ou a PololuLedStrip. Neste tutorial, usamos a biblioteca FastLED.h. Para inicializar a biblioteca, é preciso especificar o tipo e o número de LEDs, bem como a ordem das cores (Vermelho,Verde,Azul), que pode variar conforme o modelo de fita.
Uma vez inicializado o objeto, é possível acessar cada LED através da matriz de LEDs. Definimos a cor e a intensidade luminosa do LED i com a função led[i].setRGB() e em seguida validamos com a função FastLED.show().
//Libraries #include <FastLED.h>//https://github.com/FastLED/FastLED //Constants #define NUM_STRIPS 1 #define NUM_LEDS 60 #define BRIGHTNESS 10 #define LED_TYPE WS2812B #define COLOR_ORDER BRG//RGB #define FASTLED_ALLOW_INTERRUPTS 0 #define FASTLED_INTERRUPT_RETRY_COUNT 1 #define FRAMES_PER_SECOND 60 #define COOLING 55 #define SPARKING 120 //Parameters const int stripPin = 3; //Variables bool gReverseDirection = false; //Objects CRGB leds[NUM_LEDS]; void setup() { //Init Serial USB Serial.begin(9600); Serial.println(F("Initialize System")); //Init led strips FastLED.addLeds<LED_TYPE, stripPin, COLOR_ORDER>(leds, NUM_LEDS); FastLED.setBrightness( BRIGHTNESS ); } void loop() { ledScenario(); } void ledScenario(void ) { /* function ledScenario */ ////LEDS Strip scenario for (int i = 0; i < NUM_LEDS; i++) { //leds[i] = CRGB::Goldenrod; leds[i].setRGB(255, 0, 255); leds[i + 3].setRGB(255, 0, 255); FastLED.show(); delay(100); leds[i] = CRGB::Black; FastLED.show(); delay(100); } }
Aplicações
- Criar uma atmosfera luminosa no seu apartamento
- Criar uma lâmpada que muda de brilho conforme a música
Fontes
- Mudar a cor de um LED RGB
- https://github.com/adafruit/Adafruit_NeoPixel
- https://github.com/pololu/pololu-led-strip-arduino
- https://github.com/FastLED/FastLED
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie