const int a = 2;
const int b = 3;
const int c = 4;
const int d = 5;
const int e = 6;
const int f = 7;
const int g = 8;
const int dp = 9;
const int segments[]={2,3,4,5,6,7,8,9,10,11,12,13};
// seg[10]{0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xF6}
int pos(unsigned int index,int digit[],unsigned char dot,String num_str);
// void set0();
void blank();
void displayDigit(int digit);
void digitalseg(unsigned int num);
void setup() {
// put your setup code here, to run once:
for (int i = 0; i < 12; i++) {
pinMode(segments[i], OUTPUT);
}
// int pinnumber;
// pinnumber=3;
// while(pinnumber<=13){
// pinMode(pinnumber, OUTPUT);
// pinnumber+=1;
// }
// pinMode(10, OUTPUT);
// pinMode(11, OUTPUT);
// pinMode(12, OUTPUT);
// pinMode(13, OUTPUT);
// pinMode(a, OUTPUT);
// pinMode(b, OUTPUT);
// pinMode(c, OUTPUT);
// pinMode(d, OUTPUT);
// pinMode(e, OUTPUT);
// pinMode(f, OUTPUT);
// pinMode(g, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
while (true) {
blank();
digitalseg(10);
displayDigit(0);
delay(20);
blank();
digitalseg(11);
displayDigit(1);
delay(20);
blank();
digitalseg(12);
displayDigit(2);
delay(20);
blank();
digitalseg(13);
displayDigit(3);
delay(20);
blank();
digitalseg(14);
displayDigit(4);
delay(20);
blank();
}
}
// void set0(){
// for (int i = 9; i < 13; i++) {
// digitalWrite(segments[i], LOW);
// }
// }
void displayDigit(int digit) {
const int digitMap[][8] = {
{1, 1, 1, 1, 1, 1, 0, 0}, // 0
{0, 1, 1, 0, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1, 0},
{1, 1, 1, 1, 0, 0, 1, 0}
};
int i = 0;
for (i = 0; i < 8; i++) {
digitalWrite(segments[i], digitMap[digit][i]);
}
}
int pos(unsigned int index,int digit[],unsigned char dot,String num_str){
digit[0]={};
for (int index=0;index < num_str.length(); index++){
if (isdigit(num_str[index])){
digit[index]=num_str[index]-'0';
}
else if (num_str[index] == '.'){
dot=index;
}
}
}
void blank(){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void digitalseg(unsigned int num){
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
digitalWrite(num,LOW);
}