/*
* Tutorial By IOTkece
*/
#define OFF LOW
#define ON HIGH
unsigned int count;
int pinA = 12;
int pinB = 10;
int pinC = 8;
int pinD = 7;
int pinE = 6;
int pinF = 11;
int pinG = 9;
int dig1 = 5;
int dig2 = 2;
int dig3 = 3;
int dig4 = 4;
/*
A
---
F | | B
| G |
---
E | | C
| |
--- . dec
D
*/
void setup() {
for(char i=2; i<13; i++){
pinMode(i,OUTPUT);
}
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
digitalWrite(A0,1);
digitalWrite(A1,1);
digitalWrite(A2,1);
}
void loop() {
char seg1 = int(count)/1000;
char seg2 = (int(count)%1000)/100;
char seg3 = (int(count)%100)/10;
char seg4 = (int(count)%100)%10;
if (count < 10){
seg1=10;
seg2=10;
seg3=10;
}
else if (count < 100){
seg1=10;
seg2=10;
}
else if (count < 1000){
seg1=10;
}
digitalWrite(dig4,OFF);
digitalWrite(dig1,ON);
displaySeg(seg1);
delay(5);
digitalWrite(dig1,OFF);
digitalWrite(dig2,ON);
displaySeg(seg2);
delay(5);
digitalWrite(dig2,OFF);
digitalWrite(dig3,ON);
displaySeg(seg3);
delay(5);
digitalWrite(dig3,OFF);
digitalWrite(dig4,ON);
displaySeg(seg4);
delay(5);
if (digitalRead(A0)==0 && count < 9999){
count++;
delay(200);
}
else if(digitalRead(A1)==0 && count != 0){
count--;
delay(200);
}
else if(digitalRead(A2)==0){
count=0;
}
}
void displaySeg(char segment){
switch (segment){
case 0: nol(); break;
case 1: satu(); break;
case 2: dua(); break;
case 3: tiga(); break;
case 4: empat(); break;
case 5: lima(); break;
case 6: enam(); break;
case 7: tujuh(); break;
case 8: delapan(); break;
case 9: sembilan(); break;
case 10: sepuluh(); break;
}
}
void nol(){
digitalWrite(pinA, OFF);
digitalWrite(pinB, OFF);
digitalWrite(pinC, OFF);
digitalWrite(pinD, OFF);
digitalWrite(pinE, OFF);
digitalWrite(pinF, OFF);
digitalWrite(pinG, ON);
}
void satu(){
digitalWrite(pinA, ON);
digitalWrite(pinB, OFF);
digitalWrite(pinC, OFF);
digitalWrite(pinD, ON);
digitalWrite(pinE, ON);
digitalWrite(pinF, ON);
digitalWrite(pinG, ON);
}
void dua(){
digitalWrite(pinA, OFF);
digitalWrite(pinB, OFF);
digitalWrite(pinC, ON);
digitalWrite(pinD, OFF);
digitalWrite(pinE, OFF);
digitalWrite(pinF, ON);
digitalWrite(pinG, OFF);
}
void tiga(){
digitalWrite(pinA, OFF);
digitalWrite(pinB, OFF);
digitalWrite(pinC, OFF);
digitalWrite(pinD, OFF);
digitalWrite(pinE, ON);
digitalWrite(pinF, ON);
digitalWrite(pinG, OFF);
}
void empat(){
digitalWrite(pinA, ON);
digitalWrite(pinB, OFF);
digitalWrite(pinC, OFF);
digitalWrite(pinD, ON);
digitalWrite(pinE, ON);
digitalWrite(pinF, OFF);
digitalWrite(pinG, OFF);
}
void lima(){
digitalWrite(pinA, OFF);
digitalWrite(pinB, ON);
digitalWrite(pinC, OFF);
digitalWrite(pinD, OFF);
digitalWrite(pinE, ON);
digitalWrite(pinF, OFF);
digitalWrite(pinG, OFF);
}
void enam(){
digitalWrite(pinA, OFF);
digitalWrite(pinB, ON);
digitalWrite(pinC, OFF);
digitalWrite(pinD, OFF);
digitalWrite(pinE, OFF);
digitalWrite(pinF, OFF);
digitalWrite(pinG, OFF);
}
void tujuh(){
digitalWrite(pinA, OFF);
digitalWrite(pinB, OFF);
digitalWrite(pinC, OFF);
digitalWrite(pinD, ON);
digitalWrite(pinE, ON);
digitalWrite(pinF, ON);
digitalWrite(pinG, ON);
}
void delapan(){
digitalWrite(pinA, OFF);
digitalWrite(pinB, OFF);
digitalWrite(pinC, OFF);
digitalWrite(pinD, OFF);
digitalWrite(pinE, OFF);
digitalWrite(pinF, OFF);
digitalWrite(pinG, OFF);
}
void sembilan(){
digitalWrite(pinA, OFF);
digitalWrite(pinB, OFF);
digitalWrite(pinC, OFF);
digitalWrite(pinD, OFF);
digitalWrite(pinE, ON);
digitalWrite(pinF, OFF);
digitalWrite(pinG, OFF);
}
void sepuluh(){
digitalWrite(pinA, ON);
digitalWrite(pinB, ON);
digitalWrite(pinC, ON);
digitalWrite(pinD, ON);
digitalWrite(pinE, ON);
digitalWrite(pinF, ON);
digitalWrite(pinG, ON);
}