#include <Stepper.h>
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 11, 10, 12);
const int waterSensorPin = 2; // digital water sensor pin
void setup() {
Serial.begin(9600);
Serial.println("Stepper motor water demo starting...");
pinMode(waterSensorPin, INPUT);
myStepper.setSpeed(10); // RPM
}
void loop() {
int sensorState = digitalRead(waterSensorPin);
if (sensorState == HIGH) { // wet
Serial.println("Sensor wet! Motor spinning for 5 seconds...");
unsigned long startTime = millis();
while (millis() - startTime < 5000) { // spin for 5 seconds
myStepper.step(1); // one step at a time for smooth motion
}
Serial.println("Motor stopped.");
}
else { // dry
Serial.println("Sensor dry. Motor stopped.");
delay(500); // small delay to avoid flooding the serial monitor
}
}