Floco de Neve Arduino DIY: Display LED 30 LEDs com Animações
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino Nano R3 | 1 |
| LEDs SMD 0603 (ou 0805/1206) | 30 |
| Resistores 220Ω (SMD 0805 ou PTH) | 17 (um por segmento) |
| Haste de latão 0.8mm (estrutura + fiação) | ~2 metros |
| Sensor de toque capacitivo (fio de latão extra) | 1 |
| Bateria LiPo 3.7V + carregador TP4056 (opcional) | 1 |
Ferramentas Necessárias
- Ferro de solda (ponta fina, temperatura controlada recomendada)
- Solda fina (0.5-0.8mm)
- Alicate de bico longo
- Lupa ou microscópio de bancada (essencial para SMD)
- Cartolina + fita dupla face (gabinete para soldar SMDs)
Sobre o Projeto
O floco de neve consiste em 30 LEDs agrupados em 17 segmentos independentes, controlados separadamente pelo Arduino Nano. Cada grupo pode ser dimmerizado via PWM para criar lindas animações.
Ferramentas
Ferro de solda, solda, alicate. Só isso.
Construção
- Padrão: Escolhi um cristal de floco de neve simples e imprimi no tamanho para caber o Arduino Nano no hexágono central.
- Estrutura/Fiação: Hastes de latão 0.8mm soldadas com estanho formam a estrutura e a fiação (freeform). Usei ~2m de haste. Freeform testa paciência e habilidade.
- Hexágono Central: Dobrei uma haste única em hexágono e soldei as pontas. Adicionei 6 hastes nos vértices → fiação de terra (cátodos comuns).
- LEDs SMD: Cátodos nos fios de terra; ânodos serão ligados ao Nano. Usei gabarito de cartolina + fita dupla face para posicionar/soldar os SMDs.
- Arduino Nano sob a estrutura: Posicionei o Nano sob o hexágono central, deixando espaço para 3 camadas de fios de latão conectando pinos do Nano aos ânodos dos LEDs. Exigiu paciência extrema: evitar curtos, adicionar resistores limitadores, e ficar bonito.
- Organização dos 17 segmentos (18 pinos necessários, mas A6/A7 são só entrada):
- 6 LEDs das "pontas" (edge) → pinos individuais (não-PWM OK)
- 6 LEDs dos "ramos" (middle) → pares em pinos PWM
- 6 LEDs do "núcleo" (inner) → pares nos pinos restantes
- 2 pares do núcleo unidos → grupo de 4 (total 17 grupos)
- Resistores 220Ω limitam corrente a ~8mA/pino → ~240mA total (limite seguro do ATmega328P é 200mA, mas funciona).
Sensor de Toque Capacitivo
Adicionei outra haste de latão como sensor capacitivo. Usei biblioteca ADCTouch do Paul Stoffregen. Permite: trocar animação, ligar/desligar, brilhar ao toque, etc.
Nota Final
Teste todos os diodos ANTES de soldar. Trocar depois é quase impossível (polaridade invertida ou LED queimado).
Código: Animações com SoftPWM
A biblioteca SoftPWM permite PWM por software em todos os pinos, não só nos de hardware. Isso abriu infinitas possibilidades de animação!
Código completo (snowflake.ino) inclui:
- Animação "fogos de artifício" (firework)
- Animação "sorriso" (smile)
- Animação "círculo pulsante" (circle)
- Animação "onda" (wave)
- Animação "loop" (loop)
- Animação "acendimento lento aleatório" (slowOn)
- Animação "brilho" (shiny)
- Animação "fade" (fading)
- Controle por toque capacitivo (troca animação)
#include "SoftPWM.h"
#include
byte edgeLedPins[] = {13, A4, A5, 2, 8, 12};
byte middleLedPins[] = {10, 6, 3, 5, 9, 11};
byte innerLedPins[] = {A2, A3, A1, 4, 7, A1}; // A1 repetido = grupo de 4
ADCTouchSensor touchSensor = ADCTouchSensor(A0, 1);
void setup() {
Serial.begin(115200);
SoftPWMBegin();
}
byte animation = 0;
long touchAt = 0;
void loop() {
switch (animation) {
case 0: _fill(100); break;
case 1: shinyAnimation(); break;
case 2: circleAnimation(); break;
case 3: loopAnimation(); break;
case 4: fireworkAnimation(); fireworkAnimation(); fireworkAnimation(); fireworkAnimation(); fireworkAnimation(); fireworkAnimation(); animation++; break;
case 5: smileAnimation(); break;
default: animation = 0; break;
}
int touchValue = touchSensor.read();
if (touchAt + 2000 < millis() && touchValue > 1000) {
touchAt = millis();
animation++;
_fill(0);
}
}
// Funções de animação (firework, smile, circle, wave, loop, slowOn, shiny, fading, _fill, _prevIndex, _nextIndex)
// ... (código completo no arquivo anexo)
Esquemático
Diagrama de conexões: pinos do Nano → resistores → ânodos dos 17 grupos → cátodos comuns na estrutura de latão → GND. Sensor toque no A0.
Dicas para Sucesso
- Use solda com fluxo no núcleo (facilita SMD).
- Pré-estaque os pads dos LEDs e as hastes de latão.
- Trabalhe em área bem iluminada e ventilada.
- Verifique continuidade entre cada ânodo e seu pino do Nano antes de fechar.
- Se usar bateria LiPo, adicione proteção de carga/descarga (TP4056).
Processo de manufatura
- Como Pinos de Espiga Mantêm Seus Projetos Precisos: Usos em Móveis, Prateleiras e Maquinaria
- Materiais que Compõem Pinos Cilíndricos: Madeira, Metal e Plástico Explicados
- 5 Fatores-Chave para Selecionar os Pinos Cilíndricos (Dowel Pins) Certos
- O Rolo de Massa: Das Origens Etruscas à Arte Moderna
- A Evolução e o Artesanato dos Pinos de Boliche Modernos
- Das Fíbulas Antigas à Fabricação Moderna: O Alfinete de Segurança Explicado
- TinyML: Engenheiros se Unem para Padronizar IA para Sistemas de Ultra-Baixa Potência
- Construa um Cabo Breakout I/O e Adaptador Plugboard para Raspberry Pi – Guia Passo a Passo
- Arte LED Triangular Dinâmica: Construa Display RGB de 45 LEDs com Arduino UNO
- Ball Grid Array (BGA): O que é e Por que Importa