New code

Jack LaRovere Abrams and Yizhe Ying

int moisture = 0;


void setup() {

  // Initialize the moisture sensor power pin (use pin 2 for power)

  pinMode(2, OUTPUT);     // Pin to power the moisture sensor

  pinMode(A1, INPUT);     // Pin to read the moisture sensor value (A1)


  // Initialize the LED pins

  pinMode(8, OUTPUT);     // LED 1

  pinMode(9, OUTPUT);     // LED 2

  pinMode(10, OUTPUT);    // LED 3

  pinMode(11, OUTPUT);    // LED 4

  pinMode(12, OUTPUT);    // LED 5


  // Start serial communication for debugging

  Serial.begin(9600);     

}


void loop() {

  // Apply power to the soil moisture sensor (pin 2)

  digitalWrite(2, HIGH);

  delay(10);  // Wait for 10 milliseconds for the sensor to stabilize


  // Read the moisture sensor value (from A1)

  moisture = analogRead(A1);  

  digitalWrite(2, LOW);  // Turn off the sensor to avoid corrosion


  // Print the moisture level to the serial monitor

  Serial.println(moisture);


  // Turn off all LEDs initially

  digitalWrite(8, LOW);

  digitalWrite(9, LOW);

  digitalWrite(10, LOW);

  digitalWrite(11, LOW);

  digitalWrite(12, LOW);


  // Determine which LED to turn on based on moisture level

  if (moisture < 200) {

    digitalWrite(12, HIGH);  // Very dry soil (LED 5)

  } else if (moisture < 400) {

    digitalWrite(11, HIGH);  // Dry soil (LED 4)

  } else if (moisture < 600) {

    digitalWrite(10, HIGH);  // Moist soil (LED 3)

  } else if (moisture < 800) {

    digitalWrite(9, HIGH);   // Wet soil (LED 2)

  } else {

    digitalWrite(8, HIGH);   // Very wet soil (LED 1)

  }


  // Wait for 100 milliseconds before taking another reading

  delay(100);

}