Unit 7: Under Pressure

 

 

 

Code for Sketch: 



// Pin definitions

const int BLUE_PIN = 9;   // Blue LED (Was mistakenly Red)

const int GREEN_PIN = 10; // Green LED

const int RED_PIN = 11;   // Red LED (Was mistakenly Green)

const int BUTTON1_PIN = 2;

const int BUTTON2_PIN = 3;

const int BUTTON3_PIN = 4;


// State tracking

bool redState = false; 

unsigned long button2PressTime = 0;

bool button2Held = false;


void setup() {

  Serial.begin(9600);


  pinMode(RED_PIN, OUTPUT);

  pinMode(GREEN_PIN, OUTPUT);

  pinMode(BLUE_PIN, OUTPUT);


  pinMode(BUTTON1_PIN, INPUT_PULLUP);

  pinMode(BUTTON2_PIN, INPUT_PULLUP);

  pinMode(BUTTON3_PIN, INPUT_PULLUP);


  Serial.println("Setup complete. Press a button!");

}


void loop() {

  // Button 1 - Press to turn on Blue LED

  if (digitalRead(BUTTON1_PIN) == LOW) {

    Serial.println("Button 1 pressed - BLUE ON");

    digitalWrite(BLUE_PIN, HIGH);

  } else {

    digitalWrite(BLUE_PIN, LOW);

  }


  // Button 2 - Hold for 3 seconds to turn on Green LED

  if (digitalRead(BUTTON2_PIN) == LOW) {

    if (button2PressTime == 0) {

      button2PressTime = millis();

    } else if (millis() - button2PressTime >= 3000) {

      Serial.println("Button 2 held for 3s - GREEN ON");

      digitalWrite(GREEN_PIN, HIGH);

      button2Held = true;

    }

  } else {

    button2PressTime = 0;

    digitalWrite(GREEN_PIN, LOW);

    button2Held = false;

  }


  // Button 3 - Toggle Red LED on/off

  if (digitalRead(BUTTON3_PIN) == LOW) {

    delay(50); // Debounce

    while (digitalRead(BUTTON3_PIN) == LOW); // Wait for release

    redState = !redState;

    Serial.print("Button 3 toggled - RED ");

    Serial.println(redState ? "ON" : "OFF");

    digitalWrite(RED_PIN, redState ? HIGH : LOW);

  }


  delay(50);

}

 

Notes: