Artikel kali ini masih berhubungan dengan artikel sebelumnya yaitu membahas tentang cara membuat alat penghitung / counter otomatis dengan arduino, alat ini terdiri dari IR Sensor sebagai pendeteksi pergerakan, LCD 16x2 untuk menampilkan hasil perhitungan, dan arduino sebagai otak / yang menghubungkan semua komponen sehingga menjadi satu kesatuan alat yang penghitung otomatis.
Cara kerja alat ini nantinya yaitu ketika
ada objek melewati IR Sensor (IN) maka pada serial monitor Arduino IDE angka
akan bertambah, jika ada objek melewat IR Sensor (Out) jika pada artikel
sebelumnya hasil dari perhitugan Counter
hanya ditampilkan pada serial monitor maka untuk artikel ini hasil akan
ditampilkan di LCD.
Yang perlu disiapkan untuk membuat alat ini yaitu :
- Arduino
- IR Proximity Sensor 2 Buah
- LCD 16x2
- Kabel Jumper Secukupnya
Ketika sudah sedikit tahu tentang
cara kerja alat ini selanjutnya yaitu merangkai secara keseluruhan, jika kalian
sudah mengikuti artikel sebelumnya maka hanya tinggal menambahkan modul LCD
16x2, tetapi jika belum silahkan ikuti langkah dibawah ini :
Keterangan :
- Pada Pin GND IR Sensor hubungkan menjadi satu dan hubungkan ke pin GND pada arduino
- Pada Pin VCC IR Sensor hubungkan menjadi satu dan hubungkan ke pin 5v pada arduino
- Pin Out IR Sensor 1.sebelah kanan hubungkan ke pin 4 pada arduino
- Pin Out IR Sensor 2.sebelah kiri hubungkan ke pin 5 pada arduino
- Pin VCC LCD 16x2 hubungkan ke pin 5v arduino
- Pin GND LCD 16x2 hubungkan ke pin GND arduino
- Pin SCL LCD 16x2 hubungkan ke pin SCL aduino / pin A5
- Pin SDA LCD 16x2 hubungkan ke pin SDA arduino / pin A4
Selanjutnya program untuk
alat penghitung / counter otomatis ini, copy program dibawah ini kemudian paste
ke project baru arduino ide dan selanjutnya upload program seperti biasanya.
[program]
#include
#include
LiquidCrystal_I2C
lcd(0x27, 16, 2);
#define irPin1 9
#define irPin2 11
int
count=0;
boolean
state1 = true;
boolean
state2 = true;
boolean
insideState = false;
boolean
outsideIr=false;
boolean
isPeopleExiting=false;
int
i=1;
void
setup() {
Serial.begin(9600);
lcd.begin();
pinMode(irPin1,
INPUT);
pinMode(irPin2,
INPUT);
}
void
loop() {
if (!digitalRead(irPin1) && i==1 && state1){
outsideIr=true;
delay(100);
i++;
state1 = false;
}
if (!digitalRead(irPin2) && i==2 && state2){
Serial.println("Entering into room");
outsideIr=true;
delay(100);
i = 1 ;
count++;
Serial.print("No of persons inside the room: ");
Serial.println(count);
lcd.setCursor(4,0);
lcd.print("COUNTER");
lcd.setCursor(0,1);
lcd.print("VISITORS : ");
lcd.print(count);
state2 = false;
}
if (!digitalRead(irPin2) && i==1 && state2 ){
outsideIr=true;
delay(100);
i = 2 ;
state2 = false;
}
if (!digitalRead(irPin1) && i==2 && state1 ){
Serial.println("Exiting from room");
outsideIr=true;
delay(100);
count--;
Serial.print("No of persons inside the room: ");
Serial.println(count);
lcd.setCursor(4,0);
lcd.print("COUNTER");
lcd.setCursor(0,1);
lcd.print("VISITORS : ");
lcd.print(count);
i = 1;
state1 = false;
}
if (digitalRead(irPin1)){
state1 = true;
}
if (digitalRead(irPin2)){
state2 = true;
}
}