Pendeteksi Hitung Koin

Pendeteksi Hitung Koin

Alat dan bahan
-Arduino uno
-Bread board
-Kabel jumper
-Sensor jarak inframerah
-Lcd 16×2
-Poten sio

Coding:

// ——– Project Alat Penghitung Barang Otomatis ——— //
// —— Berbasis Arduino dan Sensor Jarak Infra Merah —– //
// ————- Dibuat oleh : M. Nofgi Y.P.U. ————– //
// ————- www.nofgipiston.wordpress.com ————– //

// memanggil library lcd

#include

// inialisasi pin lcd
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

// inialisasi masing2 pin
const int pinSensor = 8;
const int pinReset = 9;

// inialisasi masing2 variabel
int hitung = 0;
int kondisi1 = 0;
int status1;

// ——— program default/setting awal ———- //
void setup()
{
// inialisasi status pin reset
pinMode(pinReset, INPUT);
// mengaktifkan pull up resisitor pin reset sebagai INPUT
digitalWrite(pinReset, HIGH);

pinMode(pinSensor, INPUT);

// inialisasi jumlah baris-kolom lcd
lcd.begin(16, 2);

// tulisan awal pada lcd
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Alat Penghitung”);
lcd.setCursor(0, 1);
lcd.print(“Jumlah Barang …”);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Ready … “);
delay(1000);
}

// —————– PROGRAM UTAMA ——————– //
void loop()
{
// ————– program penghitung barang ————— //

// setting maksimal pembacaan jumlah barang
// ganti jumlah sesuai kebutuhan
hitung = constrain(hitung, 0, 10); // ==> jumlah maks barang

// status1 adalah hasil pembacaan pin sensor
status1 = digitalRead(pinSensor);

// jika pin sensor bernilai logic HIGH
if (status1 == HIGH)
{
// hasil hitung tetap
hitung = hitung;
kondisi1 = 0;
}

// jika pin sensor bernilai LOW dan kondisi1 bernilai = 0
else if (status1 == LOW && kondisi1 == 0)
{
// jumlah barang bertambah 1
hitung += 1;
// kondisi1 menjadi bernilai = 1
kondisi1 = 1;
}

// jika pin sensor bernilai LOW dan kondisi bernilai = 1
else if (status1 == LOW && kondisi1 == 1)
{
// hasil hitung tetap
hitung = hitung;
// kondisi1 tetap bernilai =1
kondisi1 = 1;
}

// ——— program tombol reset kembali ke = 0 ———- //

// jika tombol reset ditekan
// maka pin reset bernilai logic LOW
if (digitalRead(pinReset) == LOW)
{
// jumlah barang kembali menjadi = 0
hitung = 0;
// menuliskan pada lcd
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“RESET Aktif …”);
delay(1000);
}

// —— program tampilan jumlah barang pada lcd 16×2 —— //
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Jumlah Barang : “);
lcd.setCursor(0, 1);
lcd.print(hitung);
delay(300); // delay update tulisan pada lcd
}

jika ada kendala bisa diskusi di : 085369237896 (mas fajar)