#define a 6
#define b 7
#define c 8
#define d 9
#define e 10
#define f 11
#define g 12
#define dp 13
#define D1 4
#define D2 5
#define Dsw A0
// 1 = 36
// 2 = 33
// 3 = 26
// 4 = 21
// Define segments array
byte segments[] = {a, b, c, d, e, f, g};
byte digitPatterns[10][7] = {
{0, 0, 0, 0, 0, 0, 1}, // 0
{1, 0, 0, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0}, // 2
{0, 0, 0, 0, 1, 1, 0}, // 3
{1, 0, 0, 1, 1, 0, 0}, // 4
{0, 1, 0, 0, 1, 0, 0}, // 5
{0, 1, 0, 0, 0, 0, 0}, // 6
{0, 0, 0, 1, 1, 1, 1}, // 7
{0, 0, 0, 0, 0, 0, 0}, // 8
{0, 0, 0, 0, 1, 0, 0} // 9
};
void setup() {
// put your setup code here, to run once:
for (int i = 0; i < 7; i++) { // changed 8 to 7
pinMode(segments[i], OUTPUT);
}
pinMode(dp,OUTPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(Dsw,INPUT_PULLUP);
Serial.begin(9600);
}
void number (int display) {
if (display >= 0 && display <= 9) {
for (int i = 0; i < 7; i++) {
digitalWrite(segments[i], digitPatterns[display][i]);
}
}
}
void loop() {
int sw = analogRead(Dsw);
Serial.print("ADC Value = ");
Serial.println(sw);
delay(100);
if(sw == 36){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(1);
delay(50);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(0);
delay(50);
}
else if(sw == 33){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
number(0);
delay(1000);
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(1);
delay(1000);
}
else if(sw == 26){
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
number(0);
delay(1000);
number(1);
delay(1000);
number(2);
delay(1000);
number(3);
delay(1000);
number(4);
delay(1000);
number(5);
delay(1000);
number(6);
delay(1000);
number(7);
delay(1000);
number(8);
delay(1000);
number(9);
delay(1000);
}
else if(sw == 21){
digitalWrite(D1,HIGH);
digitalWrite(D2,HIGH);
number(0);
delay(1000);
number(1);
delay(1000);
number(2);
delay(1000);
number(3);
delay(1000);
number(4);
delay(1000);
number(5);
delay(1000);
number(6);
delay(1000);
number(7);
delay(1000);
number(8);
delay(1000);
number(9);
delay(1000);
}
}
Komentar
Posting Komentar