Pada artikel kali ini, kita akan membuat sebuah alat dengan IR Sensor. Sensor Infrared adalah komponen elektronika yang dapat mendeteksi benda ketika cahaya infra merah terhalangi oleh benda. Sensor ini dapat di aplikasikan keberbagai peralatan, dalah satunya sebagai pendeteksi kecepatan dijalan raya yang dapat membuat kita terkena tilang karena melebihi kecepatan.
1. Alat / Bahan
- Arduino IDE Download
- Library: LiquidCrystal_I2C Download
- Arduino Uno 1 Buah
- LCD 16×2 1 Buah
- I2C 1 Buah
- Sensor IR Obstcle 2 Buah
- Buzzer 1 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.
2. Skema Rangkaian
Gambar Rangkaian Detektor Kecepatan
Keterangan:
- 5V – VCC I2C, VCC IR1, VCC IR2
- GND – GND I2C, GND IR1, GND IR2, GND Buzzer
- SDA – SDA I2C
- SCL – SCL I2C
- D2 – Pin Data IR1
- D3 – Pin Data IR2
- D8 – pin Data Buzzer
3. Langkah Kerja
- Pertama Siapkan alat dan bahan yang akan kamu gunakan
- Kedua Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian
- Ketiga Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Kemudian Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library
- Lalu Ketikkan sketch program pada halaman Arduino IDE
- Masukan alamat I2C LCD pada sketch program, untuk mengetahui alamat I2C pelajari materi berikut:
Mencari Tahu Alamat I2C Pada Modul I2C - Terakhir Lakukan proses uploading program kemudian ujiboca project kamu.
4. Sketch Program
Dapatkan puluhan ebook gratis dengan registrasi melalui tombol di bawah!
/* Program Detektor Kecepatan dibuat oleh Indobot */ #include <LiquidCrystal_I2C.h> //Library LCD I2C LiquidCrystal_I2C lcd(0x27,16,2); //Alamat I2C #define sensor1 2 //Deklarasi sensor1 pada pin D2 #define sensor2 3 #define Buzzer 8 int waktu1; int waktu2; float waktu; //Variabel pencatat waktu int flag1 = 0; //Variabel pencatat kondisi sensor int flag2 = 0; float jarak = 5; //Jarak antar sensor 5cm float kecepatan; //Variabel penampung nilai kecepatan void setup() { lcd.init (); //Mulai LCD lcd.setBacklight(HIGH); //Set lampu LCD pinMode(sensor1,INPUT); //Setting I/O pinMode(sensor2,INPUT); pinMode(Buzzer,OUTPUT); } void loop() { lcd.setCursor(0,0); //Tampilan LCD lcd.print("Kecepatan:"); //-------------Catat mobil yang melewati sensor-------------// if(digitalRead(sensor1) == LOW && flag1 == 0){ waktu1 = millis(); flag1 = 1; } if(digitalRead(sensor2) == LOW && flag2 == 0){ waktu2 = millis(); flag2 = 1; } if(flag1 == 1 && flag2 == 1){ if(waktu1 > waktu2){ waktu = waktu1 - waktu2; } else if(waktu2 > waktu1){ waktu = waktu2 - waktu1; } waktu = waktu / 1000; //Konversi waktu dari ms ke s kecepatan = jarak / waktu; //Rumus kecepatan kecepatan = kecepatan*3600/1000; //Konversi kecepatan dari m/s ke km/jam } if(kecepatan == 0){ //Jika kecepatan 0, maka if(flag1 == 0 && flag2 == 0){ lcd.setCursor(0,1); lcd.print("Tidak ada mobil"); //Tampilkan text } } else{ if(kecepatan > 50){ //Jika kecepatan > 50 km/jam, maka lcd.clear(); lcd.setCursor(0,0); lcd.print("Kecepatan:"); lcd.setCursor(0,1); lcd.print("OVER SPEEDING!"); //Tampilkan text for(int i = 0; i < 16; i++){ //Ulang prosedur alarm(); sebanyak 5 kali alarm(); } } else{ //Jika kecepatan <= 50 km/jam, maka lcd.clear(); lcd.setCursor(0,0); lcd.print("Kecepatan:"); lcd.setCursor(0,1); lcd.print(kecepatan); //Tampilkan nilai kecepatan lcd.print(" Km/Jam "); } kecepatan = 0; flag1 = 0; flag2 = 0; delay(3000); } } void alarm(){ //Prosedur alarm digitalWrite(Buzzer, HIGH); //Nyalakan buzzer delay(125); //Selama 500 ms digitalWrite(Buzzer, LOW); //Matikan buzzer delay(125); //Selama 500 ms }
Kesimpulan:
Hasil dari alat ini adalah ketika sensor diaktifkan dan mendeteksi adaya pergerakan maka pergerakan tersebuta akan di respon dengan buzzer yang menyala.
Baca Juga : Sertifikasi IoT BNSP? Di Indobot Academy Aja
Ingin mengadakan pelatihan Arduino / IoT (Internet of Things) bersama Indobot?