Informatikunterricht

am Gymnasium Kirchenfeld

Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:seven-segment

Dies ist eine alte Version des Dokuments!


7-Segmentanzeige: Zählen

Zurück

Dieses Programm zählt auf einer 7-Segmentanzeige, welche an den Pins 3 bis 9 angeschlossen wird, wiederholend von 0 bis 9.

#define DELAY 1000
 
// Aussehen der Ziffern
const byte SEGMENT[10][7] = {
//        a     b     c     d     e     f     g
/* 0 */ { HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW  },
/* 1 */ { LOW,  HIGH, HIGH, LOW,  LOW,  LOW,  LOW  },
/* 2 */ { HIGH, HIGH, LOW,  HIGH, HIGH, LOW,  HIGH },
/* 3 */ { HIGH, HIGH, HIGH, HIGH, LOW,  LOW,  HIGH },
/* 4 */ { LOW,  HIGH, HIGH, LOW,  LOW,  HIGH, HIGH },
/* 5 */ { HIGH, LOW,  HIGH, HIGH, LOW,  HIGH, HIGH },
/* 6 */ { HIGH, LOW,  HIGH, HIGH, HIGH, HIGH, HIGH },
/* 7 */ { HIGH, HIGH, HIGH, LOW,  LOW,  LOW,  LOW  },
/* 8 */ { HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH },
/* 9 */ { HIGH, HIGH, HIGH, HIGH, LOW,  HIGH, HIGH }
};
 
// Pinbelegung
const byte SEGMENT_PIN[] = { 3, 4, 5, 6, 7, 8, 9 };
const byte SEGMENT_PIN_COUNT = sizeof(SEGMENT_PIN) / sizeof(byte);
 
int digit;
 
void setup() {
    for (int i = 0; i < SEGMENT_PIN_COUNT; ++i) {
        pinMode(SEGMENT_PIN[i], OUTPUT);
    }
 
    digit = 0;
}
 
void showDigit(int digit) {
    for (int i = 0; i < SEGMENT_PIN_COUNT; ++i) {
        digitalWrite(SEGMENT_PIN[i], SEGMENT[digit][i]);
    }
}
 
void loop() {
    showDigit(digit);
    delay(DELAY);
    ++digit;
    if (digit > 9) {
        digit = 0;
    }
}
arduino/seven-segment.1416422081.txt.gz · Zuletzt geändert: 2020/10/13 14:25 (Externe Bearbeitung)