int del=1000,ts=20, n=0;
const int segmentPins[] = {19,21,17,5,18,22,23};
const int digitPins[] = {4, 0};
const byte digits[10][7] = { // 0-9
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
for (int i = 0; i < 2; i++) {
pinMode(digitPins[i], OUTPUT);
}
}
void loop() {
n++;
if(n>99){
n=0;
}
unsigned long tiempoActual = millis();
unsigned long tiempoAnterior = millis();
while (tiempoActual - tiempoAnterior < del) {
displayNumber(n);
tiempoActual = millis();
}
}
void displayNumber(int number) {
int tens = number / 10;
int ones = number % 10;
// Display tens digit
displayDigit(tens);
digitalWrite(digitPins[0], LOW);
delay(ts);
digitalWrite(digitPins[0], HIGH);
// Display ones digit
displayDigit(ones);
digitalWrite(digitPins[1], LOW);
delay(ts);
digitalWrite(digitPins[1], HIGH);
}
void displayDigit(int digit) {
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], digits[digit][i]);
}
}