NeoPixel com ESP8266

Quando uma coisa é muito simples, não escrevo a respeito. Por exemplo, o NeoPixel com ESP8266 pode ser implementado da mesma maneira que em um Arduino; bibliotecas aos montes, farto de exemplos etc. Mas existe uma razão para o estar fazendo agora.

NeoPixel com ESP8266

O interessante em utilizar LEDs endereçáveis é principalmente a economia de recursos. Basta alimentação e um pino de dados para fazer a comunicação OneWire.

Basicamente, o que acontece na comunicação é a MCU empurrar um determinado número de bits com intervalos de tempo específicos para sinalizar a aplicação dos bits empurrados, mas se começar a elaborar o funcionamento, já vira algo grande, o que justifica “mesmo” a utilização de uma biblioteca. Pense em controle de brilho, intermitência, alternância, mudança de cores gradativamente e outros recursos mais.

No exemplo, estou utilizando a biblioteca FastLED, disponível no repositório de bibliotecas do Arduino. Se desejar dar uma olhada no datasheet do NeoPixel, você o encontra aqui.

Modificando um dos sketches de exemplo padrão, escrevi um “ping”, que vaza para o pixel do lado com um brilho “explosivo”, seguidamente derrubando a intensidade de forma abrupta, garantindo um efeito simples e rápido.

Nesse exemplo utilizei o ESP8266 para apresentar o NodeMCU com a placa de expansão, cuja placa já citei em um artigo dedicado. A vantagem em utilizá-la, nesse caso em específico, é que a tensão que vem da USB está disponível na board. Cada pixel pode ter um consumo de até 50mA. Somando os 8 pixels, poderíamos ter 400mA de consumo, além da própria MCU. Para esse exemplo, os 500mA da porta USB são suficientes.

 NodeMCU e placa de expansão da Eletrogate

Esse conjunto você pode encontrar em nosso parceiro Eletrogate diretamente na loja online. O multímetro Hikari HM2080 que acabou aparecendo na foto também está disponível na Eletrogate, já fiz artigo apenas dele, assim como vídeo. É um tesouro e vale a pena, sem dúvidas.

NeoPixel

Em nosso parceiro Fulltronic você encontra materiais além dos componentes para seu projeto; tem estanho, ferro de solda, suporte, sugador de solda, pasta de solda, alicates, pinças e mais um monte de coisas que nos facilitam a vida na hora de iniciar um projeto ou repor material de trabalho. Visite a lista de produtos do nosso parceiro através desse link.

Código de exemplo

Vou deixar o código de exemplo que utilizei. Basta utilizar um pino digital e fornecer a alimentação de 5V. Se não tiver uma placa dessa supracitada para facilitar as coisas, utilize alimentação externa.

Esse código é simplório, mas compus com o propósito de prova de conceito para o próximo artigo relacionado, onde será mais divertido e haverá interação. Dispondo desse exemplo agora, dispenso a parte inicial de explicações e vamos direto para a brincadeira no próximo artigo.

Aproveite e experimente enquanto preparo o próximo artigo!

#include <Arduino.h>
#include <FastLED.h>

// How many leds in your strip?
#define NUM_LEDS 8

// For led chips like Neopixels, which have a data line, ground, and power, you just
// need to define DATA_PIN.  For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
#define DATA_PIN 5
#define CLOCK_PIN 13

#define MORE true
#define LESS false

// Define the array of leds
CRGB leds[NUM_LEDS];

byte pos = 0;

void colorShift(){

}

void increaseDecrease(bool moreOrLess){

}

void setup() { 
  Serial.begin(9600);
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

}
//cor que eu gosto: 0x5F90D8

void fadeall() {
   for(int i = 0; i < NUM_LEDS; i++){
     if (i >= pos){
          leds[i].nscale8(10);
          FastLED.show();
     }
   }
}

void loop() { 
  // Turn the LED on, then pause
  leds[pos] = 0x5F90D8;//CRGB::Red;
  FastLED.show();
  fadeall();
  delay(500);
  // Now turn the LED off, then pause
  //leds[pos] = CRGB::Black;
  //FastLED.show();
  delay(500);
  pos = pos > 6 ? 0 : pos+1;
  Serial.println(pos);
}

Vídeo

Não vou postar um vídeo porque é um teste básico, mas o próximo uso será interativo de maneira interessante, garanto que fará todo o sentido ter escrito sobre ele nesse artigo.

Até a próxima!

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Um comentário em “NeoPixel com ESP8266

Fechado para comentários.