Arduino Counter dengan Button dan Tampilan LCD 16x2

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Oke, selamat datang ane ucapkan untuk kalian semua para Pengunjung Blog BoArduino.
Semoga saja kalian semua masih diberikan segala nikmat oleh Tuhan, Amiin

Hari ini ane ingin sedikit berbagi Tutorial Arduino, semoga saja dapat bermanfaat untuk kalian. Sekarang kita akan mencoba membuat counter (penghitung) dengan Arduino, dan hasilnya akan ditampilkan pada penampil LCD 16x2. Pada tutorial ini kita membutuhkan 3 buah button atau tacticle switch yang akan difungsikan untuk Penghitung naik (Counter UP), Penghitung turun (Counter Down) dan juga Reset untuk mereset hasil penghitungannya.

Tutorial ini dapat anda kembangkan sendiri, mungkin anda ingin menjadikan alat untuk menghitung jumlah kendaraan pada area parkir, atau menghitung jumlah produk, dll. Button sebagai input juga dapat anda ubah sesuai kebutuhan input anda. Bisa dengan Laser Diode dan LDR, atau mungkin Sensor ultrasonik, PIR Sensor, Limit switch atau input lainnya.
Okelah bro, mari langsung saja di simak, pelajari dan praktikkan Tutorial Arduino kali ini!

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino Compatible
  • 1x LCD 16x2
  • 1x Buzzer
  • 1x Potensiometer 10K Ohm
  • 3x Button (tacticle switch)
  • 3x Resistor 10K Ohm
  • Kabel jumper secukupnya
  • Breadboard (Projectboard)

Langkah - Langkahnya :

1.) Pertama, susunlah rangkaian seperti gambar berikut ini
Keterangan Konfigurasi Kabel :
  • Pin 6 pada Arduino dihubungkan dengan Button Masuk
  • Pin 7 pada Arduino dihubungkan dengan Button Keluar
  • Pin 8 pada Arduino dihubungkan dengan Button Reset
  • Pin 13 pada Arduino dihubungkan dengan kabel merah Buzzer
  • Pin RS (kaki 4) di sambungkan dengan pin arduino digital pin 12
  • Pin E (kaki 6) di sambungkan dengan pin arduino digital pin 11
  • Pin D4 (kaki 11) di sambungkan dengan pin arduino digital pin 5
  • Pin D5 (kaki 12) di sambungkan dengan pin arduino digital pin 4
  • Pin D6 (kaki 13) di sambungkan dengan pin arduino digital pin 3
  • Pin D7 (kaki 14) di sambungkan dengan pin arduino digital pin 2
  • Sambungkan potensio 10 KOhm ke  +5v dan GND , dan Pin LCD 3 ke potensio
  • Pin 5 (R/W) pada LCD dihubungkan ke Ground Arduino
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
4.) Setelah terinstall, jalankan program Arduino-nya.
5.) Klik menu "Tools -> Board -> Arduino Uno"
6.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
7.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

Klik LIHAT DONG untuk melihat sketch
/*
*Simulasi Penghitung Jumlah Kendaraan Parkir di Mall
*Created by Muhamad Andi Prasetyo
*30 Juni 2015
*Email : muhandi.prasetyo@gmail.com
*www.boarduino.blogspot.com
*/

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int  buttonMasuk = 6;
const int  buttonKeluar = 7;
const int  buttonReset = 8;
int Penghitung = 0;
int statusMasuk = 0;
int statusKeluar = 0;
int statusReset = 0;
int statusTerakhir = 0;
int led = 13;
int maksimal = 20;

void setup() { 
   pinMode(buttonMasuk, INPUT);  
   pinMode(buttonKeluar, INPUT);
   pinMode(buttonReset, INPUT);
   pinMode(led, OUTPUT);    
   lcd.begin(16,2); 
   lcd.setCursor(1,0);
   lcd.print("Selamat Datang");
   lcd.setCursor(2,1);
   lcd.print("Di Boarduino");
   delay(5000);
   lcd.clear();
   lcd.setCursor(1,0);  
   lcd.print("Total :");
   lcd.setCursor(9,0);
   lcd.print("KOSONG");
   lcd.setCursor(1,1);
   lcd.print("Sisa  : ");
   lcd.setCursor(9,1);
   lcd.print(maksimal);
}

void loop() {
    statusReset = digitalRead(buttonReset);
    if (statusReset == HIGH) {
      Penghitung = 0;
      maksimal = 20;
      lcd.clear();
      delay(50);
      lcd.setCursor(1,0);  
      lcd.print("Total :");  
      lcd.setCursor(1,1);
      lcd.print("Sisa  : ");
      lcd.setCursor(9,0);
      lcd.print("KOSONG");
      lcd.setCursor(9,1);
      lcd.print(maksimal);
      digitalWrite(led, HIGH);
      delay(100);
      digitalWrite(led, LOW);
    }
   statusMasuk = digitalRead(buttonMasuk);
   if (statusMasuk != statusTerakhir) {
     if (statusMasuk == HIGH)
     {
      Penghitung++;
      maksimal--;
      digitalWrite(led, HIGH);
      delay(100);
      digitalWrite(led, LOW);
      lcd.setCursor(9,0);  
      lcd.print(Penghitung);
      lcd.setCursor(9,1);
      lcd.print(maksimal);
     }
      delay(50);

   }
   statusTerakhir = statusMasuk;
   statusKeluar = digitalRead(buttonKeluar);
   if (statusKeluar != statusTerakhir) {
     if (statusKeluar == HIGH)
     {
      Penghitung-=1;
      maksimal++;
      digitalWrite(led, HIGH);
      delay(100);
      digitalWrite(led, LOW);
      lcd.setCursor(9,0);
      lcd.print(Penghitung);
     }
         delay(50); 
         if (Penghitung > 0)
         {
            lcd.clear();
            delay(3);
            lcd.setCursor(1,0);  
            lcd.print("Total :");  
            lcd.setCursor(1,1);
            lcd.print("Sisa  : ");
            lcd.setCursor(9,0);
            lcd.print(Penghitung);
            lcd.setCursor(9,1);
            lcd.print(maksimal);
         }

         if (Penghitung <= 0)
         {         
            Penghitung = 0;
            maksimal = 20;
            lcd.setCursor(1,1);
            lcd.print("Sisa  : ");
            lcd.setCursor(9,1);
            lcd.print(maksimal);
            lcd.setCursor(9,0);
            lcd.print("KOSONG");
         }
         if (Penghitung >= maksimal)
         {
           Penghitung = 20;
           maksimal = 0;
           lcd.setCursor(9,0);
           lcd.print(Penghitung);
           lcd.setCursor(9,1);
           lcd.print("KOSONG");
           digitalWrite(led, HIGH);
           delay(5000);
           digitalWrite(led, LOW);
           delay(1000);
         } 
   }
   statusTerakhir = statusKeluar;
}


 
Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 19:02:00

12 comments:

  1. Mas ko rangkaian punya saya ga muncul tampilan apapun di lcd nya padahal di skech nya udah ga ada yg salah, yg salah apanya ya ? Mohon penjelasannya
    Terima kasih

    ReplyDelete
  2. mas kalo ditambahkan seven segmentnya 2 buah, jadi angka yang siset itu ditampilkan programnya gimana ya mas? trus kalo untuk kabel2nya ditambhkanya di pin berapa,, mohon pencerahanya mas

    ReplyDelete
    Replies
    1. Coba pelajari dulu arduino dan 1 buah seven segment untuk menampilkan angka 1 sampai dengan 9 gan. Nanti kalau udah, tambah satu lagi seven segment. Pelajari juga multiplexing.

      Delete
  3. mas saya kan menggunakan push button untuk menggerakkan servo nah apakah push button itu dijadikan counter sekaligus bisa mas? dan bagaimana caranya
    terimakasih

    ReplyDelete
    Replies
    1. Tentu saja bisa, Caranya? silahkan modifikasi contoh sketch yang ada.

      Delete
  4. mas bisa kirim programnya engga?

    ReplyDelete
  5. mantap mas...
    sedikit pertanyaan neh.

    jika dipakai untuk menghitung jumlah barang, gimana cara nya ketika mencapai jumlah yang di inginkan maka ada warning berupa bunyi?

    setelah tercapai jumlah yang diinginkan, apakah bisa dikasih tombol reset untuk merubah nilai counter menjadi nol kembali?

    matur nuwun mas

    ReplyDelete
    Replies
    1. Tentu sangat bisa... semua tergantung programmer :)

      Delete

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian