O LED Neopixel é um tipo de LED endereçável, que permite controlar cada LED individualmente via um único fio de dados. Esses LEDs são compostos por um chip controlador embutido, que permite que eles sejam conectados em cascata e programados para exibir diferentes cores e efeitos de iluminação.
Uma das principais vantagens dos LEDs Neopixel é a sua flexibilidade, já que é possível controlar uma grande quantidade de LEDs com apenas alguns fios de conexão. Além disso, eles são bastante versáteis, podendo ser utilizados em diversos projetos de iluminação, como luminárias, displays e até mesmo em trajes luminosos para performances artísticas.

Apesar de serem mais caros do que outros tipos de LEDs, os LEDs Neopixel são uma excelente opção para quem busca flexibilidade e personalização em projetos de iluminação.
Nesse artigo vamos aprender a controlar LEDs Neopixel com a Franzininho WiFi.
Materiais necessários
Para desenvolver nossa aplicação os materiais utilizados foram:
- Placa Franzininho WiFi
- LED Neopixel (ex WS2812)
- Jumpers
- Arduino IDE
Instalação da Biblioteca para LEDs Neopixel
Nesse artigo vamos instalar no Arduino IDE à biblioteca responsável por comunicar-se com o LED Neopixel .
Acesse: Sketch -> Incluir Biblioteca -> Gerenciador de Bibliotecas (Sketch -> Include Library -> Manager Libraries)
Digite no campo de texto Adafruit NeoPixel , selecione a versão mais recente e instale:
Na versão 2.0.4 do Arduino IDE temos duas opções:
- Sketch -> Incluir Biblioteca -> Gerenciador de Bibliotecas (Sketch -> Include Library -> Manager Libraries)
- Acesse o terceiro ícone da barra lateral.
Ambas opções vão abrir um espaço na tela como mostrado na imagem acima. Digite no campo de texto e instale a biblioteca.
Após a instalação, estamos prontos para utilizar o exemplo de projeto proposto.
Circuito para acionamento do LED Neopixel
No circuito proposto utilizamos o LED Neopixel na (GPIO 18) conectado ao 5V da placa Franzininho, abaixo segue uma imagem do circuito.
Você pode adicionar mais LEDs Neopixel seja em uma fita ou circulo, por exemplo.
Código
No projeto proposto utilizamos o LED Neopixel para acionar quatro cores (vermelho, azul, branco e verde).
// inclui biblioteca NeoPixel
#include <Adafruit_NeoPixel.h>
// O Led RGB está conectado ao pino 18 do Franzininho
#define PIN 18
// Há apenas um LED
#define NUMPIXELS 1
// Quantidade de cores que serão mostradas
#define MAXCOLORS 4
// Instância do objeto "Adafruit_NeoPixel"
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
//cores
#define RED pixels.Color(255, 0, 0) // vermelho
#define GREEN pixels.Color(0, 255, 0) // verde
#define BLUE pixels.Color(0, 0, 255) // azul
#define WHITE pixels.Color(255, 255, 255) // branco
// array com todas as cores para uso em laço for
// uint32_t é o tipo retornado pela função Color
uint32_t cores[MAXCOLORS] = {RED, GREEN, BLUE, WHITE};
void setup() {
// Inicializa o NeoPixel
pixels.begin();
}
void loop() {
// "apaga" o LED RGB
pixels.clear();
// exibe as cores em sequência definida no array cores
for(int i = 0; i<MAXCOLORS;i++){
pixels.setPixelColor(0,cores[i]);
pixels.show(); // envia o pixel atualizado para o hardware
delay(300); // tempo para exibição da cor
}
}
Simule esse exemplo no Wokwi: https://wokwi.com/projects/363818590689502209
Explicação do Código
Nesta seção vamos acompanhar cada trecho do código. Abaixo segue as etapas do desenvolvimento do projeto.
Inclusão da biblioteca para controlar o LED Neopixel:
// inclui biblioteca NeoPixel
#include <Adafruit_NeoPixel.h>Define a GPIO utilizar para enviar os dados para o LED:
// O Led RGB está conectado ao pino 18 do Franzininho
#define PIN 18Define a quantidade de LED a serem utilizados:
// Há apenas um LED
#define NUMPIXELS 1Define a quantidade de cores que vamos utilizar no projeto:
// Quantidade de cores que serão mostradas
#define MAXCOLORS 4
Define as cores utilizando o método color(), nos parâmetros são inseridos valores de 0 a 255:
//cores
#define RED pixels.Color(255, 0, 0) // vermelho
#define GREEN pixels.Color(0, 255, 0) // verde
#define BLUE pixels.Color(0, 0, 255) // azul
#define WHITE pixels.Color(255, 255, 255) // branco
Declaramos em um vetor as cores que serão selecionadas durante a execução do programa:
// array com todas as cores para uso em laço for
// uint32_t é o tipo retornado pela função Color
uint32_t cores[MAXCOLORS] = {RED, GREEN, BLUE, WHITE};Instância do objeto para configurar a quantidade de LEDs, a GPIO e a frequência de trabalho:
// Instância do objeto "Adafruit_NeoPixel"
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);No void setup(), apenas inicializamos o objeto:
void setup() {
// Inicializa o NeoPixel
pixels.begin();
}
No void loop(), iniciamos o LED apagado. Logo em seguida criamos um laço de repetição para percorrer o vetor declarado no início do programa, ligamos o LED, aguardamos 300 milissegundos e partimos para o próximo índice do vetor:
void loop() {
// "apaga" o LED RGB
pixels.clear();
// exibe as cores em sequência definida no array cores
for(int i = 0; i<MAXCOLORS;i++){
pixels.setPixelColor(0,cores[i]);
pixels.show(); // envia o pixel atualizado para o hardware
delay(300); // tempo para exibição da cor
}
}
Conclusão
Neste artigo abordamos sobre o LED Neopixel (LED RGB endereçável) junto a biblioteca da Adafruit. Convidamos para tentar exibir outras cores, animações e compartilhar seus resultados com a comunidade.
Veja um exemplo de controle de fita de LEDs em nosso Instagram:
Saiba mais
Franzininho WiFi: A placa versátil para iniciantes e desenvolvedores experientes
Como programar a Franzininho WiFi: 6 opções para você escolher!





