#include int relayInput = 27; int moistSensor = A10; Servo servo1; Servo servo2; enum Material { dry = 0, wet = 1, metal = 2, none = 4, }; enum Material material = dry; int timer = -1; int wetTick = 0; int wetTickThreshold = 7; void setup() { pinMode(relayInput, INPUT); digitalWrite(relayInput, HIGH); pinMode(moistSensor, INPUT); servo1.attach(8); servo2.attach(9); servo1.write(180); servo2.write(90); Serial.begin(9600); } void loop() { int metalState = digitalRead(relayInput); int moistState = analogRead(moistSensor); if (timer >= 0) { timer--; } if (timer == -1) { if (metalState == LOW) { servo1.write(135); servo2.write(90); material = metal; timer = 120; } else { servo1.write(180); if (moistState <= 800) { wetTick++; if (wetTick >= wetTickThreshold) { servo2.write(70); material = wet; timer = 100; } } else { wetTick = 0; servo2.write(90); material = dry; } } } delay(100); Serial.print("Moisture: "); Serial.print(moistState); Serial.print("; Metal: "); Serial.print(metalState); Serial.print("; Material: "); Serial.print(material); Serial.print("; Timer: "); Serial.print(timer); Serial.print("; wetTick: "); Serial.println(wetTick); }