Sensor Infrared adalah komponen elektronika yang dapat mendeteksi benda ketika cahaya infra merah terhalangi oleh benda. Sensor ini dapat diaplikasikan keberbagai peralatan, dalah satunya sebagai pendeteksi kecepatan dijalan raya yang dapat membuat kita terkena tilang karena melebihi kecepatan.
1. Alat / Bahan
- Arduino IDE Download disini
- Library: LiquidCrystal_I2C Download disini
- 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
- Siapkan alat dan bahan yang akan digunakan
- Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
- Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library
- 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 - Lakukan proses uploading program
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.
Ingin mengadakan pelatihan Arduino / IoT (Internet of Things) bersama Indobot?