Created
July 15, 2025 23:55
-
-
Save faddah/02c75ac4d51e2700dc0eac1e6aa4284c to your computer and use it in GitHub Desktop.
Arduino Hero (Uno) project for craftingtable.com Lost In Space Adventure Kit Day 5 - Creative Experiment B
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "Arduino.h" | |
const byte leds[6] = {13, 12, 11, 10, 9, 8}; // Red, Green, Blue LEDs | |
const byte dips[3] = {4, 3, 2}; // Corresponding DIP switches | |
void setup() { | |
// Set up LED pins as outputs | |
for (byte i = 0; i < 6; i++) { | |
pinMode(leds[i], OUTPUT); | |
// Ensure LEDs start OFF | |
digitalWrite(leds[i], LOW); | |
} | |
// Set up DIP switch pins as inputs | |
for (byte i = 0; i < 3; i++) { | |
pinMode(dips[i], INPUT); | |
} | |
// You might want to start Serial communication for debugging, but it's optional. | |
// Serial.begin(9600); | |
} | |
void loop() { | |
// 1. Read the state of all DIP switches and count how many are ON | |
int activeDipSwitches = 0; | |
for (byte i = 0; i < 3; i++) { | |
if (digitalRead(dips[i]) == HIGH) { // Check if the current DIP switch is ON | |
activeDipSwitches++; // Increment the counter if it's ON | |
} | |
} | |
// 2. Decide what to do based on the count of active DIP switches | |
if (activeDipSwitches == 1) { | |
// If exactly one DIP switch is ON, find which one it is and turn on its corresponding LED | |
if (digitalRead(dips[0]) == HIGH) { | |
digitalWrite(leds[0], HIGH); // Turn ON the LED corresponding to the active DIP switch | |
digitalWrite(leds[2], HIGH); | |
digitalWrite(leds[4], HIGH); | |
delay(500); | |
digitalWrite(leds[0], LOW); | |
digitalWrite(leds[2], LOW); | |
digitalWrite(leds[4], LOW); | |
delay(250); | |
digitalWrite(leds[0], HIGH); | |
digitalWrite(leds[2], HIGH); | |
digitalWrite(leds[4], HIGH); | |
delay(500); | |
digitalWrite(leds[0], LOW); | |
digitalWrite(leds[2], LOW); | |
digitalWrite(leds[4], LOW); | |
delay(250); | |
digitalWrite(leds[0], HIGH); | |
digitalWrite(leds[2], HIGH); | |
digitalWrite(leds[4], HIGH); | |
delay(1500); | |
digitalWrite(leds[0], LOW); | |
digitalWrite(leds[2], LOW); | |
digitalWrite(leds[4], LOW); | |
delay(1000); | |
} else { | |
digitalWrite(leds[1], LOW); // Ensure other LEDs are OFF | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[5], LOW); | |
} | |
if (digitalRead(dips[1]) == HIGH) { | |
digitalWrite(leds[1], HIGH); // Turn ON the LED corresponding to the active DIP switch | |
digitalWrite(leds[3], HIGH); | |
digitalWrite(leds[5], HIGH); | |
delay(500); | |
digitalWrite(leds[1], LOW); | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[5], LOW); | |
delay(250); | |
digitalWrite(leds[1], HIGH); | |
digitalWrite(leds[3], HIGH); | |
digitalWrite(leds[5], HIGH); | |
delay(500); | |
digitalWrite(leds[1], LOW); | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[5], LOW); | |
delay(250); | |
digitalWrite(leds[1], HIGH); | |
digitalWrite(leds[3], HIGH); | |
digitalWrite(leds[5], HIGH); | |
delay(1500); | |
digitalWrite(leds[1], LOW); | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[5], LOW); | |
delay(1000); | |
} else { | |
digitalWrite(leds[1], LOW); // Ensure other LEDs are OFF | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[5], LOW); | |
} | |
if (digitalRead(dips[2]) == HIGH) { | |
digitalWrite(leds[0], HIGH); | |
delay(250); | |
digitalWrite(leds[0], LOW); | |
digitalWrite(leds[1], HIGH); | |
delay(250); | |
digitalWrite(leds[1], LOW); | |
digitalWrite(leds[2], HIGH); | |
delay(250); | |
digitalWrite(leds[2], LOW); | |
digitalWrite(leds[3], HIGH); | |
delay(250); | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[4], HIGH); | |
delay(250); | |
digitalWrite(leds[4], LOW); | |
digitalWrite(leds[5], HIGH); | |
delay(250); | |
digitalWrite(leds[5], LOW); | |
delay(250); | |
digitalWrite(leds[5], HIGH); | |
delay(250); | |
digitalWrite(leds[5], LOW); | |
digitalWrite(leds[4], HIGH); | |
delay(250); | |
digitalWrite(leds[4], LOW); | |
digitalWrite(leds[3], HIGH); | |
delay(250); | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[2], HIGH); | |
delay(250); | |
digitalWrite(leds[2], LOW); | |
digitalWrite(leds[1], HIGH); | |
delay(250); | |
digitalWrite(leds[1], LOW); | |
digitalWrite(leds[0], HIGH); | |
delay(250); | |
digitalWrite(leds[0], LOW); | |
delay(250); | |
digitalWrite(leds[0], HIGH); | |
digitalWrite(leds[1], HIGH); | |
digitalWrite(leds[2], HIGH); | |
digitalWrite(leds[3], HIGH); | |
digitalWrite(leds[4], HIGH); | |
digitalWrite(leds[5], HIGH); | |
delay(500); | |
digitalWrite(leds[0], LOW); | |
digitalWrite(leds[1], LOW); | |
digitalWrite(leds[2], LOW); | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[4], LOW); | |
digitalWrite(leds[5], LOW); | |
delay(250); | |
digitalWrite(leds[0], HIGH); | |
digitalWrite(leds[1], HIGH); | |
digitalWrite(leds[2], HIGH); | |
digitalWrite(leds[3], HIGH); | |
digitalWrite(leds[4], HIGH); | |
digitalWrite(leds[5], HIGH); | |
delay(500); | |
digitalWrite(leds[0], LOW); | |
digitalWrite(leds[1], LOW); | |
digitalWrite(leds[2], LOW); | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[4], LOW); | |
digitalWrite(leds[5], LOW); | |
delay(250); | |
digitalWrite(leds[0], HIGH); | |
digitalWrite(leds[1], HIGH); | |
digitalWrite(leds[2], HIGH); | |
digitalWrite(leds[3], HIGH); | |
digitalWrite(leds[4], HIGH); | |
digitalWrite(leds[5], HIGH); | |
delay(1500); | |
digitalWrite(leds[0], LOW); | |
digitalWrite(leds[1], LOW); | |
digitalWrite(leds[2], LOW); | |
digitalWrite(leds[3], LOW); | |
digitalWrite(leds[4], LOW); | |
digitalWrite(leds[5], LOW); | |
delay(1000); | |
} | |
} else { | |
// If zero, two, or three DIP switches are ON, turn ALL LEDs OFF | |
for (byte i = 0; i < 3; i++) { | |
digitalWrite(leds[i], LOW); // Turn OFF all LEDs | |
} | |
} | |
// Optional: A small delay can help stabilize readings, though often not strictly necessary for simple switch reads. | |
delay(50); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment