/*
Simple Arduino program to display digits 0 to 9 on a common cathode seven-segment display.
Segments a-g connected to pins 2-8.
*/
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8};
// Digit patterns for 0-9 (a-g segments)
const byte digits[10][7] = {
{HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW}, // 0
{LOW, HIGH, HIGH, LOW, LOW, LOW, LOW}, // 1
{HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH}, // 2
{HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH}, // 3
{LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH}, // 4
{HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH}, // 5
{HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH}, // 6
{HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW}, // 7
{HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH}, // 8
{HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH} // 9
};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
for (int digit = 0; digit < 10; digit++) {
for (int seg = 0; seg < 7; seg++) {
digitalWrite(segmentPins[seg], digits[digit][seg]);
}
delay(1000); // Show each digit for 1 second
}
}