Sensor Infrared adalah komponen elektronika yang dapat mendeteksi benda ketika cahaya infra merah terhalangi oleh benda. Sensor infared terdiri dari led infrared sebagai pemancar dan foto transistor, fotodioda atau inframerah sebagai penerimannya. Dengan menggabungkan sensor infrared dan LCD kita dapat membuat RPM counter sederhana.
Membuat RPM Counter sederhana
1. Alat / Bahan
- Arduino IDE Download disini
- Library: LiquidCrystal_I2C Download disini
- Arduino UNO 1 Buah
- Sensor IR 1 Buah
- LCD 1 Buah
- I2C 1 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.
Baca Juga : Tutorial Membuat Jam Digital Menggunakan Arduino
2. Skema Rangkaian
Gambar Rangkaian Membuat RPM Counter sederhana
Keterangan:
- 5V – VCC IR, VCC I2C
- GND – GND IR, GND I2C
- D2 – Pin Data IR
- SDA – SDA I2C
- SCL – SCL I2C
- Kaki I2C – Kaki LCD
[/membership]
Baca Juga : Membuat Tampilan Menu Pada LCD Dengan Push Button
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 - Untuk menguji program, buat motor DC dengan kecepatan bervariasi. Tutorial dapat dilihat pada materi berikut:
Kontrol Putaran Motor DC dengan PWM (Pulse With Modulation) - Lakukan proses uploading program
4. Sketch Program
/* Program Membuat RPM Counter sederhana dibuat oleh Indobot */ volatile byte rpmcount; unsigned int rpm; unsigned long timeold; #include <LiquidCrystal_I2C.h> //Library LCD I2C LiquidCrystal_I2C lcd(0x27,16,2); //Alamat I2C void rpm_fun() { rpmcount++; } void setup() { lcd.init (); lcd.setBacklight(HIGH); //Interrupt 0 is digital pin 2, so that is where the IR detector is connected //Triggers on FALLING (change from HIGH to LOW) attachInterrupt(0, rpm_fun, FALLING); rpmcount = 0; rpm = 0; timeold = 0; } void loop() { //Update RPM every second delay(1000); //Don't process interrupts during calculations detachInterrupt(0); //Note that this would be 60*1000/(millis() - timeold)*rpmcount if the interrupt //happened once per revolution instead of twice. Other multiples could be used //for multi-bladed propellers or fans rpm = 30*1000/(millis() - timeold)*rpmcount; timeold = millis(); rpmcount = 0; //Print out result to lcd lcd.clear(); lcd.setCursor(0,0); lcd.print("Kecepatan"); lcd.setCursor(0,1); lcd.print(rpm); lcd.print(" rpm"); //Restart the interrupt processing attachInterrupt(0, rpm_fun, FALLING); }
Kesimpulan:
Untuk dapat mengetahui program bekerja, tempatkan motor didepan sensor infrared kemudian cobalah untuk memutar motor menggunakan kendali, sensor akan mulai menghitung RPM pada motor sesuai program hasil perhitungan tersebut akan ditampilkan pada layar LCD.