/* * Ejemplo de uso de Neopixels con un sensor de vibración para la placa Neofan de FANIOT. * Este programa cambia el color de los Neopixels a rojo cuando se detecta vibración y a verde cuando no se detecta vibración. * * Para usar este código, asegúrate de tener instaladas las siguientes librerías: * - Adafruit NeoPixel */ #include // Incluimos la librería Adafruit NeoPixel #define NEO 27 // Definimos el pin del Neopixel, en este caso es el 27 #define NUM 4 // Definimos el número de Neopixels, en este caso es 4 #define VIB 26 // Definimos el pin del sensor de vibración, en este caso es el 26 // Creamos un objeto de tipo Adafruit_NeoPixel Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUM, NEO, NEO_GRB + NEO_KHZ800); /* * La función setup() se ejecuta una vez al encender o resetear la placa. */ void setup() { // Inicializamos la librería NeoPixel pixels.begin(); // Ajustamos el nivel de brillo en un 20% (0-255) pixels.setBrightness(51); // Inicializamos el pin digital del sensor de vibración como entrada pinMode(VIB, INPUT); } /* * La función loop() se ejecuta continuamente en un ciclo. */ void loop() { int vibState = digitalRead(VIB); // Leemos el estado del sensor de vibración // Comprobamos si se detecta vibración if (vibState == HIGH) { setPixelsColor(255, 0, 0); // Si se detecta vibración, encendemos los Neopixels en rojo } else { setPixelsColor(0, 255, 0); // Si no se detecta vibración, encendemos los Neopixels en verde } delay(100); // Esperamos 100 milisegundos antes de la próxima lectura } /* * Función para establecer el color de todos los Neopixels */ void setPixelsColor(int r, int g, int b) { for (int i = 0; i < NUM; i++) { pixels.setPixelColor(i, pixels.Color(r, g, b)); // Establecemos el color RGB en cada Neopixel } pixels.show(); // Enviamos la actualización de color a todos los Neopixels }