Franzininho WiFi: Neopixel LED RGB endereçável

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.

neopixel

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.

neopixel

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:

  1. Sketch -> Incluir Biblioteca -> Gerenciador de Bibliotecas (Sketch -> Include Library -> Manager Libraries)
  2. Acesse o terceiro ícone da barra lateral. 
neopixel

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.   

neopixel

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         18

Define a quantidade de LED a serem utilizados:

// Há apenas um LED
#define NUMPIXELS   1

Define 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!

Franzininho WiFi: Explorando as GPIOs com Arduino

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Arduino » Franzininho WiFi: Neopixel LED RGB endereçável

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: