Como utilizar o Led Endereçável? Essa é uma pergunta muito comum entre os entusiastas que desenvolvem projetos com Arduino. E que tal controlar 100 leds com o Arduino com um único fio de controle? Impossível? Não, é simples, só usar um conjunto de leds endereçados.
Mas o que é um led endereçável? São leds que possuem um endereço individual único, com isso podemos controlar qualquer led desse barramento com somente um fio de dados. Simplesmente passando o endereço do led e a cor que desejamos, cor essa que geralmente é controlada pelo sistema de cores RGB, que nada mais é uma abreviação de 3 cores da língua inglesa: o vermelho, verde e azul, as mesmas a qual podem ser alterados a quantia de cada cor e gerar praticamente qualquer cor.
Materiais Necessários
Nesse projeto de hoje utilizaremos poucos materiais, lembrando que será necessário soldar 3 fios ao led endereçado, sendo eles para a alimentação e o fio de dados, os materiais necessários são:
Forma de Ligação do Led Endereçável
O esquema de ligações é super simples, bastando conectar o cabo de dados ao pino 2 do Arduino e ligar os cabos de alimentação, que são o VCC e o GND, segundo o esquema abaixo:
Código Programação do Led Endereçável RGB
Para o nosso código funcionar vamos precisar da biblioteca “NeoPixel” da adafruit a qual pode ser feito o download clicando aqui.
E o código completo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <Adafruit_NeoPixel.h> #define PIN 2 #define NUMLED 18 Adafruit_NeoPixel pixels(NUMLED, PIN, NEO_GRB + NEO_KHZ800); #define DELAYLOOP 100 void setup() { pixels.begin(); } void loop() { pixels.clear(); for(int i=0; i<NUMLED; i++) { pixels.setPixelColor(i, pixels.Color(0, 150, 0)); pixels.show(); delay(DELAYLOOP); } } |
Cabeçalho
O código vai basicamente, após incluir a biblioteca, definir o pino de dados e o número de leds. Nós vamos criar um objeto chamado leds, o qual recebe como parâmetros essas definições anteriores.
Depois disso, também temos uma definição de quanto tempo é esperado no loop para ligar mais um led.
1 2 3 4 5 6 7 |
#include <Adafruit_NeoPixel.h> #define PIN 2 #define NUMLED 18 Adafruit_NeoPixel leds(NUMLED, PIN, NEO_GRB + NEO_KHZ800); #define DELAYLOOP 500 |
Void setup()
Já no void setup vamos somente iniciar a comunicação com os leds.
1 2 3 |
void setup() { leds.begin(); } |
Void loop()
No void loop iremos primeiro apagar todos os leds, após isto iniciaremos um laço de repetição que vai repetir a mesma quantia de número de leds, dentro desse laço nós vamos passar como parâmetro para a função setPixelColor que recebe o número do led que desejamos controlar e no outro parâmetro digitamos a cor que queremos no formato RGB.
Logo abaixo vamos agora exibir esse valor no led, ou seja, nós vamos enviar esse comando ao led, e por último o programa faz uma parada pelo tempo que definimos no cabeçalho.
1 2 3 4 5 6 7 8 9 10 11 12 |
void loop() { leds.clear(); for(int i=0; i<NUMLED; i++) { leds.setPixelColor(i, leds.Color(0, 150, 0)); leds.show(); delay(DELAYLOOP); } } |
Funcionamento do Led Endereçável RGB
Conclusão
Nesse artigo apresento uma forma de controlar os leds endereçáveis, sendo que, utilizando este código como base podemos criar vários efeitos de iluminação diferentes, e/ou utilizar em vários dos seus projetos, tornando-os mais simples e com menos fios por exemplo.
Em breve teremos mais projetos utilizando leds endereçados, pois possibilidades com o mesmo não falta.
Boa noite. Este sensor teria precisão suficiente para fazer um termostato? Preciso controlar a temperatura de um recipiente com parafina e poderia me ser muito útil. Aqui mesmo no UsinaInfo vcs tem o projeto do termostato com sensor DS18B20, mas, não sei se ele resistiria à parafina líquida. Obrigado.