Manual
do
Maker
.
com
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.
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.
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.
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.
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);
}
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!
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.