Projek Arduino Intruder Sensor
Dalam projek ini, kita akan memvuat alat pengaman menggunakan sensor Ultrasonik untuk mendeteksi penyusup.
Komponen yang diperlukan :
Arduino board
1. Breadboard
2. Kabel Jumper
3. Four-pin HC-SR04 ultra-sonic sensor
4. Servomotor
5. Red LED
6. Green LED
7. 2 220-ohm resistors
Kita akan menghubungkan sensor penyusup ke servo dan beberapa LED sehingga ketika seseorang datang dalam jarak tertentu, LED hijau mati, LED merah menyala, dan servomotor bergerak (lihat Gambar).
Cara Kerja :
Proyek ini serbaguna dan dapat digunakan dan diadaptasi dengan berbagai cara. Karena sensor ultrasonik dapat menentukan jarak, Anda dapat, misalnya, menggunakannya untuk menentukan area dan memicu alarm ketika perimeter dilanggar. Sensor bekerja mirip dengan radar: mengirimkan sinyal ultrasonik, atau ping. Ketika sinyal ini mengenai suatu objek, ia memantul kembali seperti gema, dan waktu antara ping dan gema digunakan untuk menghitung jarak. Arduino dapat menggunakan perhitungan ini untuk memicu suatu peristiwa, tergantung pada nilai yang diterima.
Dalam proyek ini, ketika sensor mendeteksi penyusup di sekitar yang telah ditentukan, LED merah akan menyala dan lengan servo akan bergerak. Anda dapat menyesuaikan proyek ini untuk memicu peristiwa berbeda saat penyusup terdeteksi, seperti menekan tombol sistem keamanan atau mengunci pintu. Untuk skenario yang lebih bersahabat, Anda dapat mengatur jarak yang sangat dekat sehingga ketika Anda melambaikan tangan di depan sensor, servo menekan tombol untuk melepaskan camilan, seperti permen.
Cara membuat rangkaian :
1. Masukkan sensor ultrasonik ke dalam breadbord. Sensor yang kami gunakan dalam proyek ini memiliki empat pin, seperti yang ditunjukkan pada Gambar. Hubungkan GND sensor ke rel Arduino GND, VCC ke Arduino +5V, Trig ke pin Arduino 12, dan Echo ke pin Arduino 13.
2. Hubungkan kabel coklat (ground) servo ke rel Arduino GND, kabel merah (daya) ke rel Arduino +5V, dan kabel sinyal kuning (kontrol) ke pin Arduino 9.
3. Masukkan LED merah dan hijau ke breadbord dengan kaki negatif yang lebih pendek di rel Arduino GND. Tambahkan resistor 220-ohm ke masing-masing kaki positif, dan sambungkan LED merah ke pin Arduino 2 dan LED hijau ke pin 3 melalui resistor.
4. Hubungkan power rail pada breadboard ke Arduino +5V dan GND. Konfigurasi akhir ditunjukkan pada Gambar.
5. Periksa apakah pengaturan Anda cocok dengan Gambar, lalu unggah kode di "Sketsa".
Sketch program arduino :
Ketika suatu objek berada dalam jarak pemicu, LED merah akan menyala dan servo akan bergerak 45 derajat. Anda dapat mengubah jarak bidang sensor di baris sketsa berikut:
if (distance <= 15)
Dalam contoh ini, jika sesuatu dirasakan dalam jarak 15 sentimeter, blok kode berikutnya akan dijalankan.
Pin Trigonometri pada sensor terhubung ke pin Arduino 12 dan memancarkan sinyal ultrasonik atau ping. Ketika sinyal mencapai suatu objek, itu memantul kembali ke modul, dan gema ini dikirim ke pin Arduino 13. Perbedaan waktu antara dua sinyal memberi kita pembacaan jarak. Jika jaraknya lebih dari jarak minimum yang kami tetapkan, LED hijau akan tetap menyala; jika tidak, lampu LED merah dan servo bergerak.
#include <NewPing.h> // Call NewPing library
#include <Servo.h> // Call Servo library
#define trigPin 12 // Trig pin connected to Arduino 12
#define echoPin 13 // Echo pin connected to Arduino 13
#define MAX_DISTANCE 500
NewPing sonar(trigPin, echoPin, MAX_DISTANCE); // Library setting
int greenLed = 3, redLed = 2; // Set green LED to pin 3, red to pin 2
int pos = 20;
Servo myservo;
void setup() {
Serial.begin (115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(greenLed, OUTPUT);
pinMode(redLed, OUTPUT);
myservo.attach(9); // Servo attached to pin 9
}
void loop() {
int duration, distance, pos = 0, i;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // Trig pin sends a ping
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // Echo receives the ping
distance = (duration / 2) / 29.1;
Serial.print(distance);
Serial.println(" cm");
// If sensor detects object within 15 cm
if (distance <= 15) {
digitalWrite(greenLed, LOW); // Turn off green LED
digitalWrite(redLed, HIGH); // Turn on red LED
myservo.write(180); // Move servo arm 180 degrees
delay(450);
digitalWrite(redLed, LOW); // Light the red LED
myservo.write(90);
delay(450);
digitalWrite(redLed, HIGH);
myservo.write(0);
delay(450);
digitalWrite(redLed, LOW);
myservo.write(90);
}
// Otherwise
else {
digitalWrite(redLed, LOW); // Turn off red LED
digitalWrite(greenLed, HIGH); // Turn on green LED
myservo.write(90);
}
delay(450);
}
0 Comments