#define A 2
#define B 3
#define C 4
#define D 5
#define E 6
#define F 7
#define G 8
#define DOT 9
#define SEG1 13
#define SEG2 12
#define SEG3 11
#define TAMBAH A0
#define KURANG A1
#define POT A2
void setup()
{
// put your setup code here, to run once:
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(DOT, OUTPUT);
pinMode(SEG1, OUTPUT);
pinMode(SEG2, OUTPUT);
pinMode(SEG3, OUTPUT);
pinMode(TAMBAH, INPUT);
pinMode(KURANG, INPUT);
pinMode(POT, INPUT);
Serial.begin(9600);
}
void out_port(byte temp)
{
digitalWrite(A, temp&0B00000001);
digitalWrite(B, temp&0B00000010);
digitalWrite(C, temp&0B00000100);
digitalWrite(D, temp&0B00001000);
digitalWrite(E, temp&0B00010000);
digitalWrite(F, temp&0B00100000);
digitalWrite(G, temp&0B01000000);
digitalWrite(DOT, temp&0B10000000);
}
byte tabelseg[]=
{
0b11000000, //0
0b11111001, //1
0b10100100, //2
0b10110000, //3
0b10011001, //4
0b10010010, //5
0b10000010, //6
0b11111000, //7
0b10000000, //8
0b10010000, //9
0b01111111, //dot
};
byte i=0;
byte ratusan, puluhan, satuan;
void loop()
{
//digitalWrite(SEG1, HIGH);
// put your main code here, to run repeatedly:
/*if(digitalRead(TAMBAH)==HIGH && i<255)
{
i++;
delay(200);
Serial.println(i);
}
if(digitalRead(KURANG)==HIGH && i>0)
{
i--;
delay(200);
Serial.println(i);
}*/
i=(analogRead(POT))/4;
ratusan=i/100;
puluhan=i/10; //misal 12/10=1, nilai 1 masuk ke puluhan
puluhan=puluhan%10;
satuan=i%10; //misal 12%10 sisa 2, nilai 2 masuk ke satuan
out_port (tabelseg[satuan]);
digitalWrite(SEG1, HIGH);
delay(50);
digitalWrite(SEG1, LOW);
out_port (tabelseg[puluhan]);
digitalWrite(SEG2, HIGH);
delay(50);
digitalWrite(SEG2, LOW);
out_port (tabelseg[ratusan]);
digitalWrite(SEG3, HIGH);
delay(50);
digitalWrite(SEG3, LOW);
}