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
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
Posting Komentar