//Challenge 1: make the red button work as green button (15 minutes)
//Challenge 2 (30 minutes) - add green LED for green buttton and
//red led for red button- let them glow. Turn green off when hit green button
//turn red off when hit red button
const int greenbutton = 2; // Green Button
const int redbutton = 3; // Red Button
const int greenLED = 4; // Green LED
const int redLED = 5; // Red LED
volatile bool greenbuttonPressed = false;
volatile bool redbuttonPressed = false;
bool greenLEDState = false;
bool redLEDState = false;
void setup() {
Serial.begin(9600);
pinMode(greenbutton, INPUT_PULLUP);
pinMode(redbutton, INPUT_PULLUP);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
digitalWrite(greenLED, LOW); // LED for Green Button OFF
digitalWrite(redLED, LOW); // LED for Red Button OFF
attachInterrupt(digitalPinToInterrupt(greenbutton), greenbuttonISR, FALLING);
attachInterrupt(digitalPinToInterrupt(redbutton), redbuttonISR, FALLING);
}
void loop() {
// Check if Green button was pressed
if (greenbuttonPressed) {
greenbuttonPressed = false; // Reset the flag
greenLEDState = !greenLEDState; // Toggle the state of the Green LED
digitalWrite(greenLED, greenLEDState ? HIGH : LOW); // Set LED state
// If the Green LED is turned ON, turn OFF the Red LED
if (greenLEDState) {
redLEDState = false; // Update the state
digitalWrite(redLED, LOW); // Turn off Red LED
Serial.println("Green Button was pressed! LED ON");
} else {
Serial.println("Green Button was pressed again! LED OFF");
}
}
// Check if Red button was pressed
if (redbuttonPressed) {
redbuttonPressed = false; // Reset the flag
redLEDState = !redLEDState; // Toggle the state of the Red LED
digitalWrite(redLED, redLEDState ? HIGH : LOW); // Set LED state
// If the Red LED is turned ON, turn OFF the Green LED
if (redLEDState) {
greenLEDState = false; // Update the state
digitalWrite(greenLED, LOW); // Turn off Green LED
Serial.println("Red Button was pressed! LED ON");
} else {
Serial.println("Red Button was pressed again! LED OFF");
}
}
}
// ISR for Green button
void greenbuttonISR() {
greenbuttonPressed = true; // Set the flag for the Green button
}
// ISR for Red button
void redbuttonISR() {
redbuttonPressed = true; // Set the flag for the Red button
}