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ü
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);
}