#include <Adafruit_NeoPixel.h>
/*
--- INSTRUCCIONES DE CONEXIÓN Y USO ---
1. Conexión física:
- PIN DE DATOS:
El cable de datos de la tira NeoPixel debe conectarse al pin PB0 del ATtiny85.
En el código está definido como PIN 0:
#define PIN 0
En el ATtiny85, PB0 es el pin físico número 5.
Verifica que la conexión sea correcta y firme.
- ALIMENTACIÓN:
La tira NeoPixel generalmente funciona a 5V.
Conecta el +5V de la fuente de alimentación a la entrada de la tira NeoPixel.
También conecta GND de la fuente, tira y ATtiny85 en común para referencia.
- PROTECCIÓN:
Coloca una resistencia de 330 a 470 ohmios en serie con el cable de datos
entre el ATtiny85 y la tira para proteger los LEDs de picos eléctricos.
- ESTABILIZACIÓN:
Es recomendable un capacitor electrolítico de 100µF entre +5V y GND cerca
de la tira para estabilizar la alimentación y evitar parpadeos o daños.
- FUENTE DE ALIMENTACIÓN:
Asegúrate que la fuente pueda suministrar la corriente necesaria.
Cada LED puede consumir hasta 60mA a brillo máximo blanco.
Para 8 LEDs, máximo teórico son ~480mA, aunque en destellos parciales será menos.
2. Configuración del código:
- Número de LEDs:
Modifica la constante NUMPIXELS si usas una cantidad diferente de LEDs.
- Pin de datos:
Modifica la constante PIN si conectas el cable de datos a otro pin.
3. Funcionamiento:
- La tira destella (parpadea) todos los LEDs a la vez 3 veces por color
(verde, rojo, azul y amarillo) y repite la secuencia indefinidamente mientras
tenga alimentación.
- El tiempo entre destellos está definido en la variable 'wait' (150ms por defecto).
4. Programación:
- Usa un programador compatible con ATtiny85 para cargar este código.
- Asegúrate de configurar la frecuencia del microcontrolador en 8 MHz interno.
*/
#define PIN 0 // Pin PB0 del ATtiny85 (pin físico 5) conectado a datos de NeoPixel
#define NUMPIXELS 8 // Cantidad de LEDs en la tira
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
const uint16_t wait = 150; // Tiempo de espera (milisegundos) para destellos
void setup() {
pixels.begin(); // Inicializa la librería NeoPixel
pixels.show(); // Asegura que todos los LEDs estén apagados al inicio
}
void loop() {
// Definición de colores (RGB)
uint32_t green = pixels.Color(0, 255, 0);
uint32_t red = pixels.Color(255, 0, 0);
uint32_t blue = pixels.Color(0, 0, 255);
uint32_t yellow = pixels.Color(255, 255, 0);
// Parpadea 3 veces en verde
blinkAll(green, wait);
// Parpadea 3 veces en rojo
blinkAll(red, wait);
// Parpadea 3 veces en azul
blinkAll(blue, wait);
// Parpadea 3 veces en amarillo
blinkAll(yellow, wait);
// Repite la secuencia indefinidamente
}
// Función para parpadear toda la tira 3 veces en un color específico
void blinkAll(uint32_t color, uint16_t wait) {
for (int i = 0; i < 3; i++) {
// Enciende todos los LEDs
for (int j = 0; j < NUMPIXELS; j++) {
pixels.setPixelColor(j, color);
}
pixels.show();
delay(wait);
// Apaga todos los LEDs
for (int j = 0; j < NUMPIXELS; j++) {
pixels.setPixelColor(j, 0);
}
pixels.show();
delay(wait);
}
}
agregar un capacitor 1000uF 6.5v o más entre Vcc y GND