#include <Wire.h>

const int buttonPin = 26;  
const int ledPin = 27;  

bool buttonState = false;  // Variable to hold the button state

void setup() {
  // Initialize serial communication
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);        // Set LED pin as output
  pinMode(buttonPin, INPUT_PULLUP); // Set button pin as input with internal pull-up resistor

}

void loop() {
 // the loop function runs over and over again forever

  bool currentButtonState = digitalRead(buttonPin) == LOW; // Button pressed when LOW

  if (currentButtonState != buttonState) {             // Button has either been pressed or released since the last check
    if (currentButtonState) {                         // If currentButtonState is true (button pressed):
      digitalWrite(ledPin, HIGH);                    // The LED is turned ON by setting it HIGH
      Serial.println("Button pressed");             // A message "Button pressed" is sent to the serial monitor
    } else {                                       // If currentButtonState is false (button released):
      digitalWrite(ledPin, LOW);                  // The LED is turned OFF by setting it LOW
      Serial.println("Button released");         // A message "Button released" is sent to the serial monitor
    }
    buttonState = currentButtonState;           // Update button state
  }

  delay(50);                                  // Short delay for button debounce
}