/* * Ejemplo de uso de Neopixels con un sensor de inclinación (tilt sensor) para la placa KitMaker de FANIOT. * Este programa cambia el color de los Neopixels a rojo cuando el sensor está en vertical y a verde cuando está en horizontal. * * 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 TILT 26 // Definimos el pin del sensor de inclinació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 inclinación como entrada pinMode(TILT, INPUT); } /* * La función loop() se ejecuta continuamente en un ciclo. */ void loop() { int tiltState = digitalRead(TILT); // Leemos el estado del sensor de inclinación // Comprobamos la orientación del sensor de inclinación if (tiltState == HIGH) { setPixelsColor(255, 0, 0); // Si está en vertical, encendemos los Neopixels en rojo } else { setPixelsColor(0, 255, 0); // Si está en horizontal, 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 }