// Define LED pins const int ledPins[] = {3, 5, 6, 9, 10}; // PWM pins for LEDs const int buttonPin = 7; // Button pin int buttonState = 0; // Variable to hold button state int lastButtonState = 0; // Variable to hold last button state int mode = 0; // To keep track of the current mode // Define PWM values for brightness in different modes int brightness[5] = {0, 255, 128, 64, 192}; // Different brightness levels for modes void setup() { // Set LED pins as OUTPUT for (int i = 0; i < 5; i++) { pinMode(ledPins[i], OUTPUT); } // Set button pin as INPUT pinMode(buttonPin, INPUT_PULLUP); } void loop() { // Read the button state buttonState = digitalRead(buttonPin); // Detect button press (assuming a simple press for mode change) if (buttonState == LOW && lastButtonState == HIGH) { delay(50); // debounce delay mode = (mode + 1) % 10; // Cycle through 10 modes } lastButtonState = buttonState; // Execute behavior based on the current mode switch (mode) { case 0: // Mode 0: All LEDs OFF for (int i = 0; i < 5; i++) { analogWrite(ledPins[i], 0); } break; case 1: // Mode 1: All LEDs ON full brightness for (int i = 0; i < 5; i++) { analogWrite(ledPins[i], 255); } break; case 2: // Mode 2: LEDs fading in and out (simple PWM effect) for (int i = 0; i < 5; i++) { analogWrite(ledPins[i], (millis() / 10 + i * 50) % 256); } break; case 3: // Mode 3: LEDs blink on and off with a delay for (int i = 0; i < 5; i++) { int value = (millis() / 500 + i) % 2 == 0 ? 255 : 0; analogWrite(ledPins[i], value); } break; case 4: // Mode 4: Random brightness for each LED for (int i = 0; i < 5; i++) { analogWrite(ledPins[i], random(0, 256)); } break; case 5: // Mode 5: LEDs with a wave pattern (PWM) for (int i = 0; i < 5; i++) { analogWrite(ledPins[i], brightness[(millis() / 100 + i) % 5]); } break; // Add more modes as desired (up to mode 9) case 6: // Example: LEDs randomly blink for (int i = 0; i < 5; i++) { analogWrite(ledPins[i], random(0, 2) * 255); // Random on/off } break; // You can continue with more cases as needed } }