// Program Up-Counter 60
// Menampilkan angka 0-59 kemudian kembali ke 0 lagi dan seterusnya
// www.herwanto.my.id
const int inPulsa = A0;
int segA = 13;
int segB = 12;
int segC = 11;
int segD = 10;
int segE = 9;
int segF = 8;
int segG = 7;
int segDot = 6;
int digPul =5; // digit Puluhan
int digSat =4; // digit Satuan
int conPulsa = 0;
int nilPulsa = 0;
int angka =0;
int angkaSat =0;
int angkaPul =0;
void setup() {
pinMode(inPulsa,INPUT); //pin A0 in Pulsa
pinMode(segA,OUTPUT); //inisialisasi pin 13 out seg a
pinMode(segB,OUTPUT); //inisialisasi pin 12 out seg b
pinMode(segC,OUTPUT); //inisialisasi pin 11 out seg c
pinMode(segD,OUTPUT); //inisialisasi pin 10 out seg d
pinMode(segE,OUTPUT); //inisialisasi pin 9 out seg e
pinMode(segF,OUTPUT); //inisialisasi pin 8 out seg f
pinMode(segG,OUTPUT); //inisialisasi pin 7 out seg g
pinMode(segDot,OUTPUT); //pin 6 output seg titik
pinMode(digPul,OUTPUT); //digit 1
pinMode(digSat,OUTPUT); //digit 2
angka =0;
angkaSat =0;
angkaPul =0;
}
void loop() {
// put your main code here, to run repeatedly:
bacaPulsa();
hitungPulsa();
tampil7Seg();
}
void bacaPulsa(){
if(digitalRead(inPulsa)==HIGH){
while (digitalRead(inPulsa)==HIGH){
conPulsa=1;
tampil7Seg(); // agar tampilan tidak kedip
}
}
}
void out7seg(){
switch(angka){
case 0:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,HIGH);
digitalWrite(segDot,HIGH);
break;
case 1:
digitalWrite(segA,HIGH);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,HIGH);
digitalWrite(segDot,HIGH);
break;
case 2:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,HIGH);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,HIGH);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 3:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 4:
digitalWrite(segA,HIGH);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 5 :
digitalWrite(segA,LOW);
digitalWrite(segB,HIGH);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 6 :
digitalWrite(segA,LOW);
digitalWrite(segB,HIGH);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 7:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,HIGH);
digitalWrite(segDot,HIGH);
break;
case 8:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 9:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
}
}
//
void tampil7Seg(){
angkaSat=nilPulsa%10;
angka=angkaSat;
digitalWrite(digSat,HIGH); // digit satuan dipilih
out7seg(); // tulis angka di digit satuan
delay(5);
digitalWrite(digSat,LOW); // digit satuan dimatikan lagi
angkaPul=nilPulsa/10;
angka=angkaPul;
digitalWrite(digPul,HIGH);
out7seg();
delay(5);
digitalWrite(digPul,LOW);
}
void hitungPulsa(){
if(conPulsa==1){
nilPulsa=nilPulsa+1; // menambah isi nilPulsa
if(nilPulsa>=60){ // mengenolkan hitungan pulsa jika >60
nilPulsa=0;
}
conPulsa=0; //mengenolkan in Pulsa
}
}