// Arduino ribbon + position test sensor

// Make changes below:

// Connections:
#define ribbon1 A0 // Analog pin for ribbon 1
#define ribbon2 A1 // Analog pin for ribbon 2
#define ribbon3 A2 // Analog pin for ribbon 3

#define pressure1 A3 // Analog pin for pressure sensor 1
#define pressure2 A4 // Analog pin for pressure sensor 2
#define pressure3 A5 // Analog pin for pressure sensor 3

#define ribbon_threshold 50 // Threshold value to determine ribbon press
#define pressure_threshold 75 // Threshold value to determine pressure sensor press

#define enable_pressure true // Check if enabled the pressure sensors

// Make changes above:

bool ribbon_pressed[3]; // Array to store the state of ribbon buttons (pressed/unpressed)
bool pressure_pressed[3]; // Array to store the state of pressure sensors (pressed/unpressed)


void setup() {
  Serial.begin(9600); // Initialize serial communication
}

void loop() {
  HandleRibbons(); // Handle ribbon button presses

  if (enable_pressure) {
    HandlePressure(); // Handle pressure sensor presses if enabled
  }

  delay(50); // Small delay between iterations, you can lower this to get more readings
}

void HandleRibbons() {
  int ribbon1_analog = analogRead(ribbon1); // Read analog value from ribbon 1 pin
  if (ribbon1_analog > ribbon_threshold) { // Check if ribbon 1 is pressed
    Serial.print("Ribbon 1 pressed: ");
    Serial.println(ribbon1_analog);
    ribbon_pressed[0] = true;
  }
  else if (ribbon_pressed[0] && ribbon1_analog < ribbon_threshold) { // Check if ribbon 1 is unpressed
    Serial.println("Ribbon 1 unpressed");
    ribbon_pressed[0] = false;
  }

  int ribbon2_analog = analogRead(ribbon2); // Read analog value from ribbon 2 pin
  if (ribbon2_analog > ribbon_threshold) { // Check if ribbon 2 is pressed
    Serial.print("Ribbon 2 pressed: ");
    Serial.println(ribbon2_analog);
    ribbon_pressed[1] = true;
  }
  else if (ribbon_pressed[1] && ribbon2_analog < ribbon_threshold) { // Check if ribbon 2 is unpressed
    Serial.println("Ribbon 2 unpressed");
    ribbon_pressed[1] = false;
  }

  int ribbon3_analog = analogRead(ribbon3); // Read analog value from ribbon 3 pin
  if (ribbon3_analog > ribbon_threshold) { // Check if ribbon 3 is pressed
    Serial.print("Ribbon 3 pressed: ");
    Serial.println(ribbon3_analog);
    ribbon_pressed[2] = true;
  }
  else if (ribbon_pressed[2] && ribbon3_analog < ribbon_threshold) { // Check if ribbon 3 is unpressed
    Serial.println("Ribbon 3 unpressed");
    ribbon_pressed[2] = false;
  }
}

void HandlePressure() {
  int pressure1_analog = analogRead(pressure1); // Read analog value from pressure sensor 1 pin
  if (pressure1_analog > pressure_threshold) { // Check if pressure sensor 1 is pressed
    Serial.print("Pressure 1 pressed: ");
    Serial.println(pressure1_analog);
    pressure_pressed[0] = true;
  }
  if (pressure_pressed[0] && pressure1_analog < pressure_threshold) { // Check if pressure sensor 1 is unpressed
    Serial.println("Pressure 1 unpressed");
    pressure_pressed[0] = false;
  }

  int pressure2_analog = analogRead(pressure2); // Read analog value from pressure sensor 2 pin
  if (pressure2_analog > pressure_threshold) { // Check if pressure sensor 2 is pressed
    Serial.print("Pressure 2 pressed: ");
    Serial.println(pressure2_analog);
    pressure_pressed[1] = true;
  }
  if (pressure_pressed[1] && pressure2_analog < pressure_threshold) { // Check if pressure sensor 2 is unpressed
    Serial.println("Pressure 2 unpressed");
    pressure_pressed[1] = false;
  }

  int pressure3_analog = analogRead(pressure3); // Read analog value from pressure sensor 3 pin
  if (pressure3_analog > pressure_threshold) { // Check if pressure sensor 3 is pressed
    Serial.print("Pressure 3 pressed: ");
    Serial.println(pressure3_analog);
    pressure_pressed[2] = true;
  }
  if (pressure_pressed[2] && pressure3_analog < pressure_threshold) { // Check if pressure sensor 3 is unpressed
    Serial.println("Pressure 3 unpressed");
    pressure_pressed[2] = false;
  }
}
Membrane pot 1
Membrane pot 2
Membrane pot 3
Pressure pot 1
Pressure pot 2
Pressure pot 3