2 min read

Arduino Uygulamaları-5 Hırsız Alarm Devresi(HC-SR04)

Arduino Uygulamaları-5 Hırsız Alarm Devresi(HC-SR04)

Merhabalar yine basit ve farklı bir projeyle karşınızdayız. Aslında proje çok yönlü olup kendi ihtiyacınız doğrultusunda geliştirebilirsiniz

--> Nasıl Çalışır? (How It's Work?)

Projede kullanıdığımız sensör HC-SR04 Ultrasonic Sensör sayesinde cismin mesafesini ölçüp bunu bize analog bir girişle aktarıyor olmasıdır. Bizde bu bilgiyi kendimize göre kullanıp projemizde bu sensöre yer verebiliriz.

Projemizde sesnsöre yaklaşan cismi algılayıp Led ve Servo Motor ile kapı kilitleme; Hırsız önleme sistemi yaptık. Şimdi gelelim malzemelere;

--> Malzemeler

1- 1 adet Arduino Uno

2- 1 adet Servo Motor

3- 1 adet HC-SR04 Ultrasonic Mesafe Sensörü

4- Kırmızı ve Yeşil LED

5- 2 adet 220Ω Direnç

6- Jumper Kablolar (Erkek-Erkek)

-->Devrenin Montajı

Montajı aşağıdaki Fritzing çizimimize göre tamamlıyoruz.

Burdaki servo aslında kapı açmak amacıyla kullanacağımızı varsaydığımız motorumuz. Nesne yaklaştığı zaman sensörümüzün verdiği çıkışla yeşil yanan ledimiz sönüp kırmızı led yanmayan başlayacak aynı zamanda da servo hareket edecek. Gelelim bence en önemli olan kısıma;

-->> Haydi Kodlayalım

include <NewPing.h>

include <Servo.h>

define trigPin 12

define echoPin 13

define MAX_DISTANCE 500

NewPing sonar(trigPin, echoPin, MAX_DISTANCE);
int greenLed = 3,redLed = 2;
int pos =20;
Servo myservo;

void setup() {
Serial.begin(115200);
piMode(trigPin, OUTPUT);
piMode(echoPin, INPUT);
piMode(greenLed, OUTPUT);
piMode(redLed, OUTPUT);

myservo.attach(9);
}

void loop() {
int durationi distance, pos = 0, i;
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;

Serial.print(distance);
Serial.println("cm");

if(distance <= 15){

digitalWrite(greenLed,LOW);
digitalWrite(redLed,HIGH);
myservo.write(180);
delay(450);
digitalWrite(redLed,LOW);
myservo.write(90);
delay(450);
digitalWrite(redLed,HIGH);
myservo.write(0);
delay(0);
digitalWrite(redLed,LOW);
myservo.write(90);

}
else{
digitalWrite(redLed,HIGH);
digitalWrite(greenLed,LOW);

}
delay(450);
}