#define latchPin 1
#define clockPin 2
#define dataPin 0
const byte nums[16] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111, // 9
0b01110111, // 10 A
0b01111100, // 11 b
0b00111001, // 12 C
0b01011110, // 13 d
0b01111001, // 14 E
0b01110001 // 15 F
};
/*
const byte nums[16] = {
0b11000000, // 0
0b11111001, // 1
0b10100100, // 2
0b10110000, // 3
0b10011001, // 4
0b10010010, // 5
0b10000010, // 6
0b11111000, // 7
0b10000000, // 8
0b10010000, // 9
0b10001000, // 10 A
0b10000011, // 11 b
0b11000110, // 12 C
0b10100001, // 13 d
0b10000110, // 14 E
0b10001110 // 15 F
};
*/
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void displayDigit(byte d) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, nums[d]);
/*
for (byte i = 0; i < 8; i++) {
digitalWrite(clockPin, LOW);
digitalWrite(dataPin, bitRead(nums[d], i));
digitalWrite(clockPin, HIGH);
}
*/
digitalWrite(latchPin, HIGH);
}
void loop() {
for (byte i = 0; i < 16; i++) {
displayDigit(i);
delay(500);
}
// displayDigit(2);
}