Lâmpada de Mesa RGB Controlada por Gestos – Iluminação Interativa e Sem Toque
Componentes e Materiais
| Arduino UNO | 1 |
| Array de Sensores de Linha Analógico e Digital SmartElex RLS-08 | 1 |
| Fios Jumper (genéricos) | 1 |
| Tira de LED NeoPixel Digital RGB (WS2812B) | 1 |
Ferramentas Necessárias
- Pistola de cola quente
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
Todos já vimos diferentes tipos de lâmpadas de ambiente e luzes RGB, a maioria com botões ou controle remoto. Pensamos em criar uma Lâmpada de Mesa RGB Controlada por Gestos que muda de cor apenas com um simples gesto de deslizar a mão. Este é um projeto de arte interativa feito com a placa Arduino Uno e um array de sensores IR. É um projeto divertido e fácil, ideal para ensinar estudantes e crianças.
Passo 1: Organize o Material
Todo o material listado está facilmente disponível no mercado local ou em lojas online:
- Arduino Uno
- Array de sensor IR (8 sensores)
- LED RGB Endereçável WS2812B
- Fonte de alimentação 5V, 2A
Passo 2: Introdução ao Sensor
Este sensor é um array simples de múltiplos sensores IR (sensor de proximidade). O array consiste em 8 sensores que fornecem 8 saídas analógicas e digitais diferentes. Neste projeto, usaremos este sensor para identificar a direção do movimento da mão e, assim, mudar as cores dos LEDs de acordo com os gestos. A placa Arduino receberá a entrada do sensor e alterará as cores dos LEDs.
Os dois gestos simples serão:
- Deslizar para a esquerda
- Deslizar para a direita
Passo 3: Fazendo as Conexões
Conexões do Sensor IR:
- Conecte GND do sensor de linha IR ao GND do Arduino.
- Conecte VCC do sensor de linha IR ao 5V do Arduino.
- Conecte a Saída Digital do sensor A ao pino digital 4 do Arduino.
- Conecte a Saída Digital do sensor B ao pino digital 5 do Arduino.
- Conecte a Saída Digital do sensor C ao pino digital 6 do Arduino.
- Conecte a Saída Digital do sensor D ao pino digital 7 do Arduino.
- Conecte a Saída Digital do sensor E ao pino digital 8 do Arduino.
- Conecte a Saída Digital do sensor F ao pino digital 9 do Arduino.
- Conecte a Saída Digital do sensor G ao pino digital 10 do Arduino.
- Conecte a Saída Digital do sensor H ao pino digital 11 do Arduino.
Conexões da Tira de LED:
- Conecte GND da tira de LED ao GND do Arduino.
- Conecte 5V da tira de LED ao Vin do Arduino.
- Conecte Data In da tira de LED ao pino digital 3 do Arduino.
Passo 4: Vamos Programar
O código completo está disponível abaixo. Usamos a biblioteca FastLED para controlar os LEDs e criar efeitos. O número de LEDs na tira é definido como 90 (ajustável conforme sua configuração) e o pino de dados é o pino 3 do Arduino.
O loop principal contém dois loops if aninhados que verificam quais sensores estão ativados e acendem/mudam as cores dos LEDs. Uma função fadeall proporciona o efeito de mudança de matiz (cor).
Passo 5: Algumas Fotos
Imagens do projeto montado e em funcionamento.
Código
#include <FastLED.h> // Inicialização da biblioteca de LED
int a,b,c,d,e,f,g,h,j=0; // Variáveis para armazenar dados dos sensores
#define NUM_LEDS 90 // Quantos LEDs na sua tira?
#define DATA_PIN 3 // Pino de dados do LED conectado aqui no Arduino
// Define o array de LEDs
CRGB leds[NUM_LEDS];
void setup() {
pinMode(4,INPUT); // Pino de Entrada Digital para sensor IR
pinMode(5,INPUT);
pinMode(6,INPUT);
pinMode(7,INPUT);
pinMode(8,INPUT);
pinMode(9,INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);
LEDS.addLeds<WS2812,DATA_PIN,RGB>(leds,NUM_LEDS); // Inicialização do LED
LEDS.setBrightness(84); // Brilho do LED (intervalo 0-255)
}
void fadeall() {
for(int i = 0; i < NUM_LEDS; i++) {
leds[i].nscale8(250);
}
} // Função para Efeito de Desvanecimento
void loop() {
a=digitalRead(4); // Leitura do sensor A
b=digitalRead(5); // Leitura do sensor B
c=digitalRead(6); // Leitura do sensor C
d=digitalRead(7); // Leitura do sensor D
e=digitalRead(8); // Leitura do sensor E
f=digitalRead(9); // Leitura do sensor F
g=digitalRead(10); // Leitura do sensor G
h=digitalRead(11); // Leitura do sensor H
static uint8_t hue = 0; // Variável 8 bits
// Primeiro desliza o LED em uma direção
if(a==1) {
if(b==1) {
for(int i = 4; i < 55; i++) {
leds[i] = CHSV(hue++, 255, 255); // Define o i-ésimo LED
FastLED.show(); // Mostra os LEDs
fadeall();
delay(10);
}
}
}
if(g==1) {
if(f==1) {
// Agora vai na outra direção
for(int i = (56)-1; i >= 4; i--) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(10);
}
}
}
}
Esquemático
O circuito no Fritzing foi feito com 8 sensores IR diferentes; você pode usar 8 sensores separados ou um sensor de array único.
Processo de manufatura
- Construa um Robô Raspberry Pi Controlado por Bluetooth com Feedback de Áudio
- Robô Controlado por Gestos Alimentado por Raspberry Pi
- Controlar LEDs com Alexa via Raspberry Pi – Guia Passo a Passo Fácil
- Transforme um Carro RC Antigo em Veículo Controlado por Joystick com Arduino
- SunGlass-BOT: Óculos Inteligentes que Ajustam Automaticamente à Luz
- Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
- Controlador Inteligente de Interruptor de Luz Sem Fio: Manipulador Remoto Baseado em Arduino
- Construa um Robô Controlado por Voz com Arduino Nano
- PiBot: Robô Pianista Arduino para Performance Musical de Precisão
- Misturador de Cores RGB com Arduino – Projeto DIY para Iniciantes