#include <Stepper.h>
// Define number of steps per revolution for 28BYJ-48
const int stepsPerRevolution = 2048;
// Initialize stepper on pins 4, 5, 6, 7
Stepper sprinklerMotor(stepsPerRevolution, 4, 5, 6, 7);
const int sensorPin = 2; // PIR sensor pin
const int buzzerPin = 3; // Buzzer pin
void setup() {
pinMode(sensorPin, INPUT);
pinMode(buzzerPin, OUTPUT);
sprinklerMotor.setSpeed(10); // Set motor speed (RPM)
Serial.begin(9600);
}
void loop() {
int sensorValue = digitalRead(sensorPin);
Serial.println(sensorValue);
if (sensorValue == HIGH) {
digitalWrite(buzzerPin, HIGH);
delay(1000); // Delay before activating sprinkler
// Rotate the stepper motor one full revolution
sprinklerMotor.step(stepsPerRevolution); // You can change to half/quarter if needed
} else {
digitalWrite(buzzerPin, LOW);
// No motor action when no fire (optional: reverse motor if needed)
}
delay(100); // Short delay for stability
}