Projek Arduino Motion Sensor Alarm
Dalam projek ini, kita akan membangun alarm pendindikasi gerak menggunakan sensor passive infrared (PIR).
Komponen yang diperlukan :
1. Arduino board
2. Breadboard
3. HC SR501 PIR sensor
4. LED
5. Piezo buzzer
Anda dapat menggunakan alarm ini untuk memicu berbagai output, seperti lampu, motor, atau bahkan pesan "selamat datang di rumah" ketika Anda mendekati pintu depan Anda.
Cara Kerja :
Proyek ini didasarkan pada sensor HC SR501 PIR. Kita akan mengaturnya sehingga ketika seseorang lewat di depan sensor PIR, LED akan menyala dan buzzer piezo akan berbunyi (lihat Gambar), tetapi Anda dapat menyesuaikannya untuk berbagai output lainnya.
Sensor PIR serupa lainnya akan bekerja dengan kode ini, tetapi penting untuk memeriksa tata letak pin sensor Anda pada lembar data, karena ini dapat bervariasi. Semua sensor harus memiliki +5V, GND, dan pin keluaran. Pada model ini, pin tidak ditandai dengan jelas, tetapi jika Anda cukup melepas lensa luar (terjepit di tempatnya dan dapat dilepas dengan mudah), Anda dapat mengidentifikasi pin di bawahnya, seperti yang ditunjukkan pada Gambar.
Dua potensiometer oranye pada sensor menunjukkan bahwa ada dua pengaturan yang dapat disesuaikan. Dengan sensor tegak, seperti yang ditunjukkan pada gambar, potensiometer kiri mengontrol berapa lama output diatur ke tinggi ketika sesuatu terdeteksi, dan dapat diatur antara 5 dan 200 detik. Saat kita memasang LED ke output, LED akan menyala antara 5 dan 200 detik tergantung pengaturan. Potensiometer yang tepat menyesuaikan rentang deteksi dari 0 hingga 7 meter.
Sensor bekerja dengan mendeteksi radiasi infra merah, yang dipancarkan dari benda-benda yang menghasilkan panas. Bahan kristal di dalam sensor mendeteksi radiasi infra merah, dan ketika mendeteksi tingkat yang ditetapkan, itu memicu sinyal keluaran sensor. Arduino membaca output ini sebagai tegangan, sehingga kita dapat menggunakan ini sebagai saklar sederhana untuk menyalakan sesuatu dalam contoh ini, sebuah LED.
Kita sedang menyiapkan sensor sehingga alarm berbunyi saat sensor dipicu, tetapi ada cara lain yang dapat Anda sesuaikan dengan proyek. Misalnya, Anda dapat menakut-nakuti teman Anda dengan memasang servo dan mengaturnya untuk melepaskan karet gelang saat mereka lewat.
Cara membuat rangkaian :
1. Hubungkan kabel +5V dan GND sensor PIR ke rel +5V dan GND di papan tempat memotong roti, dan sambungkan rel ini ke Arduino. Hubungkan kabel output sensor PIR ke pin Arduino 2.
int ledPin = 13; // Pin connected to LED
int inputPin = 2; // Pin connected to PIR sensor
int pirState = LOW; // Start PIR state LOW with no motion
int val = 0; // Variable for reading the pin status
int pinSpeaker = 10; // Pin connected to piezo
void setup() {
pinMode(ledPin, OUTPUT); // Set LED as output
pinMode(inputPin, INPUT); // Set sensor as input
pinMode(pinSpeaker, OUTPUT);
Serial.begin(9600);
}
void loop() {
val = digitalRead(inputPin); // Read PIR input value
if (val == HIGH) { // Check if input is HIGH
digitalWrite(ledPin, HIGH); // If it is, turn ON LED
playTone(300, 160);
delay(150);
if (pirState == LOW) {
// Print to the Serial Monitor if motion detected
Serial.println("Motion detected!");
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // If input is not HIGH,
// turn OFF LED
playTone(0, 0);
delay(300);
if (pirState == HIGH) {
Serial.println("Motion ended!");
pirState = LOW;
}
}
}
void playTone(long duration, int freq) { // Duration in ms,
// frequency in Hz
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(pinSpeaker, HIGH);
delayMicroseconds(period / 2);
digitalWrite(pinSpeaker, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
}
0 Comments