Dalam proyek sederhana ini, saya akan
membuat sebuah alarm menggunakan sensor PIR (pasif inframerah) dan
pemrograman Arduino Uno. Ini adalah cara yang bagus untuk anda
mempelajari dasar-dasar menggunakan input digital pada arduino dari
sebuah sensor dan output dalam praktek kali ini menggunakan Alrm sebuah
Buzzer.
Alarm sensor pir Arduino ini berguna untuk simulasi keamanan di rumah
anda atau dapat anda gunakan sebagai gurauan jebakan dan lelucon
praktis. Anda tidak membutuhkan solder karena dalam praktek kali ini
kita hanya menggunaka papan belajar Bread Board dan beberapa kabel
jumper saja.
Merangkai Sensor Pir dan Arduino
Alat dan Bahan:
Koneksi Pin sesnor PIR:
PIR | Arduino |
1 +vcc | +5v |
2 out | Pin 2 |
3 GND | GND |
Supply tegangan pada sensor ini dapat menggunakan tegangan vcc 5V dari
arduino atau board mikrokontroller lainnya, terdapat tiga pin sensor
berupa VCC, Ground dan Output untuk dihubungkan ke Pin 2 Arduino. Buzzer
terhubung ke PIN 10 Arduino dan GND sedangkan LED di hubungkan ke 13
sebagai indikator. Contoh prgram penggunaan sensor PIR menggunakan
arduino bisa kamu lihat pada kode berikut yang diubah dari contoh kode
program sensor PIR pada arduino dengan alarm buzzer dan menggunakan LED
untuk indikator adanya gerakan manusia pada radius sensor.
Program Sensor Pir Arduino
Berikut ini adalah program Alrm menggunakan sensor pir dan arduino uno,
silahkan kopi dan paste pada program Arduino IDE kemudian silahkan
upload pada arduino anda yang sudah di rangkai sesai langkah yang sudah
saya berikan di atas:
//http://roboticbasics.blogspot.com
int ledPin = 13; // Memilih pin untuk LED
int inputPin = 2; // Memilih input pin (untuk sensor PIR)
int pirState = LOW; // Kita mulai, dengan asumsi tidak ada gerakan terdeteksi
int val = 0; // Variabel untuk membaca status pin
int pinSpeaker = 10; // Mengatur pembicara pada pin PWM (digital 9, 10, atau 11)
void setup() {
pinMode(ledPin, OUTPUT); // Mendeklarasikan LED sebagai output
pinMode(inputPin, INPUT); // Mendeklarasikan sensor sebagai input
pinMode(pinSpeaker, OUTPUT);
Serial.begin(9600);
}
void loop(){
val = digitalRead(inputPin); // Membaca nilai masukan
if (val == HIGH) { // Memeriksa apakah input adalah TINGGI
digitalWrite(ledPin, HIGH); // Hidupkan LED ON
playTone(300, 160);
delay(150);
if (pirState == LOW) {
// Kita baru saja diaktifkan
Serial.println("Motion detected!");
// Kami hanya ingin mencetak pada perubahan output, tidak menyatakan
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // turn LED OFF
playTone(0, 0);
delay(300);
if (pirState == HIGH){
// Kita baru saja dimatikan
Serial.println("Motion ended!");
// Kami hanya ingin mencetak pada perubahan output, tidak menyatakan
pirState = LOW;
}
}
}
// Durasi msecs dalam, hertz Frekuensi
void playTone(long duration, int freq) {
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);
}
}
http://roboticbasics.blogspot.co.id/2016/02/Sensor-Pir-dengan-Arduino-untuk-deteksi-gerak-manusia.html