Count Up/Down using Arduino Seven Segment Display 4 Digit

Selamat Pagi Kawan-kawan. Berikut adalah postingan saya selanjutnya dengan meneruskan postingan sebelumnya http://hobielkamikro.blogspot.co.id/2018/03/7-segment-display-4-digit-using-arduino.html

Untuk mempersiapkan project selanjutnya berikut bahan yang harus dipersiapkan adalah:

1. Arduino Uno,
2. Modul 7 Segment rakitan sendiri, postingan sebelumnya (http://hobielkamikro.blogspot.co.id/2018/03/7-segment-display-4-digit-using-arduino.html).

oke smuanya langsung saja tanpa berlama-lama, saatnya kita coding/penulisan program

Program/Sketch Count Up/Down Display 4 Digit Seven Segment 74LS47 dengan Arduino.

/*============ Inisialisasi Tombol Up/Down =================*/
#define T_Up A0         //Port A0
#define T_Down A1       //Port A1
/*============ Inisialisasi Display 7 Segment ==============*/
#define A 0             //Port 0
#define B 1             //Port 1
#define C 2             //Port 2
#define D 3             //Port 3
#define Digit1 4        //Port 4
#define Digit2 5        //Port 5
#define Digit3 6        //Port 6
#define Digit4 7        //Port 7
#define duration 5000
#define angka_7segment { \
{0,0,0,0},\
{0,0,0,1},\
{0,0,1,0},\
{0,0,1,1},\
{0,1,0,0},\
{0,1,0,1},\
{0,1,1,0},\
{0,1,1,1},\
{1,0,0,0},\
{1,0,0,1},\
}
byte numbers[10][4] = angka_7segment;
const int segments[4] = {D, C, B, A};
unsigned int counter = 0;
/*======================= tombol up =======================*/
int Status_awal_T_Up = 0;
int Status_akhir_T_Up = 0;

/*====================== tombol down ======================*/
int Status_awal_T_Down = 0;
int Status_akhir_T_Down = 0;

void Display();
void Counter_Up_Down();

void setup()
{
  /*============= Setup port kaki 7 Segment ===============*/
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
 
  pinMode(Digit1, OUTPUT);
  pinMode(Digit2, OUTPUT);
  pinMode(Digit3, OUTPUT);
  pinMode(Digit4, OUTPUT);
 
  /*============= Setup port kaki Tombol Up/Down ==========*/
  pinMode(T_Up, INPUT_PULLUP);
  pinMode(T_Down, INPUT_PULLUP);
 
  /*========= Inisialisasi port kaki 7Segment =============*/
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
 
  digitalWrite(Digit1, LOW);
  digitalWrite(Digit2, LOW);
  digitalWrite(Digit3, LOW);
  digitalWrite(Digit4, LOW);
}

void loop()
{
    Display();
    Counter_Up_Down();
}

/*========================================================
 * ---------------- Tampilan Display ---------------------
 *========================================================*/      
void Display()
{
  unsigned int number1 = (counter/1000)%10;
  setsegments(number1, Digit1, duration);
  unsigned int number2 = (counter/100)%10;
  setsegments(number2, Digit2, duration);
  unsigned int number3 = (counter/10)%10;
  setsegments(number3, Digit3, duration);
  unsigned int number4 = counter%10;
  setsegments(number4, Digit4, duration);
}
void setsegments(unsigned int number, int digit, int ontime)
{
    for (int seg=0; seg<4; seg++)
    {
      digitalWrite(segments[seg], numbers[number][seg]);
    }
    digitalWrite(digit, LOW);
    delayMicroseconds(ontime);
    digitalWrite(digit, HIGH);
}
/*===================== END DISPLAY ======================*/
/*========================================================
 * ---------------- Counter Up/Down ---------------------
 *========================================================*/
void Counter_Up_Down()
{
    // cek kondisi Tombol Up dan Down
    Status_awal_T_Up = digitalRead(T_Up);
    Status_awal_T_Down = digitalRead(T_Down);
/*======================= UP =============================*/  
    if (Status_awal_T_Up != Status_akhir_T_Up)
    {
      Status_akhir_T_Up = Status_awal_T_Up;
      if (Status_awal_T_Up == HIGH)
      {
        counter++;
        if(counter == 100){counter = 0;}
/*jika nilai di 7 segmen 100, maka nilai "counter" akan direset menjadi "0", tanpa menampilkan angka 100*/
      }
    }
/*======================= DOWN ===========================*/  
    if (Status_awal_T_Down != Status_akhir_T_Down)
    {
      Status_akhir_T_Down = Status_awal_T_Down;
      if (Status_awal_T_Down == HIGH)
      {
        if(counter == 0){counter = 0;}
        else {counter--;}      
      }
   }
}
/*===================== END COUNTER ======================*/


Oke kawan, itulah program lengkapnya untuk "Count Up/Down using Arduino Seven Segment Display 4 Digit"  jika ada pertanyaan mohon isi pada kolom komentar.....selamat mencoba.
Terima Kasih

Komentar

Postingan populer dari blog ini

7 Segment Display 4 Digit Using Arduino