Untitled
unknown
plain_text
a year ago
2.3 kB
7
Indexable
// Define LED pins const int led1Pin = 9; // Change to your desired pin number const int led2Pin = 8; // Change to your desired pin number const int led3Pin = 7; // Change to your desired pin number // Define button pin const int buttonPin = 10; // Change to your desired pin number // Define variables int mode = 0; // Current LED effect mode int lastButtonState = HIGH; // Previous state of the button int buttonState; // Current state of the button unsigned long lastModeChangeTime = 0; // Time of last mode change const unsigned long modeChangeInterval = 30000; // Mode change interval (30 seconds) void setup() { // Initialize LED pins as outputs pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); // Initialize button pin as input pinMode(buttonPin, INPUT_PULLUP); // Use internal pull-up resistor // Seed random number generator randomSeed(analogRead(0)); } void loop() { // Read the state of the button buttonState = digitalRead(buttonPin); // Check if the button is pressed if (buttonState == LOW && lastButtonState == HIGH) { // Toggle mode between 0 and 1 mode = (mode == 0) ? 1 : 0; // Delay to debounce the button delay(50); } // Update last button state lastButtonState = buttonState; // Check if it's time to change the mode unsigned long currentTime = millis(); if (currentTime - lastModeChangeTime >= modeChangeInterval) { // Change mode mode = (mode + 1) % 2; // Toggle between 0 and 1 lastModeChangeTime = currentTime; } // Perform actions based on the current mode switch (mode) { case 0: randomBlinkEffect(); break; case 1: sequentialBlinkEffect(); break; } } // Function for random blink effect void randomBlinkEffect() { digitalWrite(led1Pin, random(2) == 0 ? HIGH : LOW); digitalWrite(led2Pin, random(2) == 0 ? HIGH : LOW); digitalWrite(led3Pin, random(2) == 0 ? HIGH : LOW); delay(random(100, 1000)); // Random delay between 100ms and 1000ms } // Function for sequential blink effect void sequentialBlinkEffect() { digitalWrite(led1Pin, HIGH); delay(500); digitalWrite(led1Pin, LOW); digitalWrite(led2Pin, HIGH); delay(500); digitalWrite(led2Pin, LOW); digitalWrite(led3Pin, HIGH); delay(500); digitalWrite(led3Pin, LOW); }
Editor is loading...
Leave a Comment