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

