#include int Power = 11; int PIN = 12; #define NUMPIXELS 1 #define BUTTON D1 #define LED_RED D0 #define LED_YELLOW D6 #define LED_GREEN D7 Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { pixels.begin(); pinMode(Power, OUTPUT); pinMode(BUTTON, INPUT_PULLUP); pinMode(LED_RED, OUTPUT); pinMode(LED_YELLOW, OUTPUT); pinMode(LED_GREEN, OUTPUT); digitalWrite(Power, HIGH); } void loop() { // Lee el botón para detectar si se ha presionado if (digitalRead(BUTTON) == LOW) { // Se presionó el botón, cambia el color del NeoPixel changeNeoPixelColor(); // Espera hasta que se libere el botón para evitar múltiples acciones al mantenerlo presionado while (digitalRead(BUTTON) == LOW) { delay(10); } } // Simula un semáforo simulateTrafficLight(); } void changeNeoPixelColor() { // Cambia el color del NeoPixel a un valor aleatorio int red = random(0, 255); int green = random(0, 255); int blue = random(0, 255); pixels.setPixelColor(0, pixels.Color(red, green, blue)); pixels.show(); } void simulateTrafficLight() { // Simula un semáforo con LEDs digitalWrite(LED_RED, HIGH); delay(2000); digitalWrite(LED_RED, LOW); digitalWrite(LED_YELLOW, HIGH); delay(1000); digitalWrite(LED_YELLOW, LOW); digitalWrite(LED_GREEN, HIGH); delay(2000); digitalWrite(LED_GREEN, LOW); }