Membuat Counter Up Down Arduino Dengan Satu Digit Seven Segment

Rangkaian Counter Up/Down kali ini menggunakan Arduino Uno sebagai kontrolernya. Sebelumnya saya sudah posting rangkaian up/down counter menggunakan IC 74190 dengan output dua digit 7 segment.

Gambar Rangkaian

Untuk membuat Counter Up Down Arduino saya menggunakan skema rangkaian di bawah ini. Rangkaian counter kali ini menggunakan sebuah output seven segment common anoda, dan input push button. Rangkaian di bawah ini dapat disimulasikan dengan menggunakan software simulasi elektronika Proteus. Agar lebih jelas dapat dilihat gambarnya di bawah ini.
rangkaian-up-down-counter-arduino-uno
Dari gambar di atas input untuk up counter menggunakan input analog 0 ( A0 ), kemudian untuk input down counter menggunakan input analog 1 (A1). Sedangkan outputnya menggunakan pin digital 4-11. Kedua input dari push button dihubungkan ke input analog A0 dan A1 dengan pull down resistor R1 dan R2 sebesar 10K Ohm. Sedangkan seven segment yang digunakan merupakan seven segmen common anoda.

COntoh Program / Sketch Counter Up Down Arduino Uno

Sketch Arduino yang saya gunakan sangat sederhana. List program arduino uno ini dibuat dengan menggunakan software Arduino IDE. Untuk lebih jelasnya dapat dilihat di baris program di bawah ini.
//Program Up/Down Counter Arduino Uno
//Output 1 Digit 7 Segment Common Anode
//www.herwanto.my.id

int tomUp = 0;
int tomDown = 0;
int nilCount = 0;

void setup() {
pinMode(A0,INPUT); //pin A0 in Up Counter
pinMode(A1,INPUT); //pin A1 in Down Counter
pinMode(4,OUTPUT); //inisialisasi pin 4 out seg a
pinMode(5,OUTPUT); //inisialisasi pin 5 out seg b
pinMode(6,OUTPUT); //inisialisasi pin 6 out seg c
pinMode(7,OUTPUT); //inisialisasi pin 7 out seg d
pinMode(8,OUTPUT); //inisialisasi pin 8 out seg e
pinMode(9,OUTPUT); //inisialisasi pin 9 out seg f
pinMode(10,OUTPUT); //inisialisasi pin 10 out seg g
pinMode(11,OUTPUT); //pin 11 output seg titik
}

void out7seg(){
switch(nilCount){
case 0:
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
break;
case 1:
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
break;
case 2:
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
break;
case 3:
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
break;
case 4:
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
break;
case 5 :
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
break;
case 6 :
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
break;
case 7:
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
break;
case 8:
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
break;
case 9:
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
break;
}
}

void loop() {
while (digitalRead(A0)==HIGH){
tomUp=1;
}
while (digitalRead(A1)==HIGH){
tomDown=1;
}
if (tomUp==1 ||tomDown==1){
if(tomUp==1){
nilCount=nilCount+1;
tomUp=0;
}
else{
nilCount=nilCount-1;
tomDown=0;
}
if(nilCount>9){
nilCount=0;
}
if(nilCount<0){nilCount=9; }
}
out7seg();
}
Silahkan copy program arduino di atas di arduino IDE yang telah anda install di komputer, kemudian compile dan coba upload di Arduino Uno anda atau simulasikan di proteus.

Penutup

Begitulah cara membuat counter up down dengan 1 Digit 7 Segment Dengan Arduino Uno yang telah saya buat. Semoga dapat bermanfaat bagi para pembaca. Tentunya dalam program tersebut masih dapat disederhanakan, barangkali pembaca dapat mengembangkannya agar lebih sederhana.
Terima Kasih sudah berkunjung dan membaca catatan ini untuk berkomentar silahkan mengisi di kolom komentar di bawah ini.
LINK VIDEO SIMULASI Rangkaian Up/Down Counter 1 Digit 7 Segment Dengan Arduino Uno