const int pirPin = 7; // PIR andur pin
const int trigPin = 8; // Ultrahelianduri trig pin
const int echoPin = 9; // Ultrahelianduri echo pin
const int greenLedPin = 10; // Roheline LED pin
const int redLedPin = 11; // Punane LED pin
const int buzzerPin = 12; // Buzzer pin
long duration;
int distance;
void setup() {
pinMode(pirPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600); // Serial monitoorimiseks (valikuline)
}
void loop() {
// Liikumise tuvastamine PIR anduriga
int motionDetected = digitalRead(pirPin);
// Ultrahelianduriga kauguse mõõtmine
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Kaugus sentimeetrites
// Kontroll tingimuste järgi
if (motionDetected == HIGH) {
if (distance > 50) {
// Kui liikumine ja kaugus > 50 cm
digitalWrite(greenLedPin, HIGH); // Roheline LED vilgub
digitalWrite(redLedPin, LOW);
digitalWrite(buzzerPin, LOW);
delay(500);
digitalWrite(greenLedPin, LOW);
delay(500);
} else {
// Kui liikumine ja kaugus <= 50 cm
digitalWrite(redLedPin, HIGH); // Punane LED sisse
digitalWrite(greenLedPin, LOW);
digitalWrite(buzzerPin, HIGH); // Sireen sisse
}
} else {
// Kui liikumist ei ole
digitalWrite(greenLedPin, LOW);
digitalWrite(redLedPin, LOW);
digitalWrite(buzzerPin, LOW);
}
}