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.
Table of Contents
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!
1 thought on “NeoPixel com ESP8266”
Comments are closed.