/* a
_____
| |
f | | b
| g |
_____
| |
e | | c
| |
_____
d
// prvo število je lahko 1 ali 0, ni važno, ampak popravi hexadec zapis
/ g f e d c b a| rez | stev
0 0 1 1 1 1 1 1| 0x3F | 0
0 0 0 0 0 1 1 0| 0x06 | 1
0 1 0 1 1 0 1 1| 0x5B | 2
0 1 0 0 1 1 1 1| 0x4F | 3
0 1 1 0 0 1 1 0| 0x66 | 4
0 1 1 0 1 1 0 1| 0x6D | 5
0 1 1 1 1 1 0 1| 0x7D | 6
0 0 0 0 0 1 1 1| 0x07 | 7
0 1 1 1 1 1 1 1| 0x7F | 8
0 1 1 0 0 1 1 1| 0x67 | 9
// common pin v 7 segment display
skupna anoda - anoda vseh ledic (+)
skupna catoda - catoda vseh ledic (-)
*/
char digits[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x67};
char pin[] = {9, 10, 2, 3, 4, 8, 7};
void setup() {
for (int x = 0; x < 7; x++){
pinMode(pin[x], OUTPUT);
}
}
void loop() {
/* // check if its wired correctly
for (int x = 0; x < 7; x++){
digitalWrite(x, HIGH);
delay(500);
}*/
static int y = 0;
int i = digits[y];
for (int x = 0; x < 7; x++){
int temp = i & 0x01; // iz hexadec nam vrne izpis zadnjega bita iz hexadec stevila v digits (i)
digitalWrite(pin[x], temp);
i = i >> 1; // izpiše
// 0 1 1 0 0 0 0 1 - i & 0x01 -> 1
// i >> 1
// 0 0 1 1 0 0 0 0 - i & 0x01 -> 0
// i >> 1
// 0 0 0 1 1 0 0 0 - i & 0x01 -> 0
// i >> 1
// 0 0 0 0 1 1 0 0 - i & 0x01 -> 0
// i >> 1
// 0 0 0 0 0 1 1 0 - i & 0x01 -> 0
// i >> 1
// 0 0 0 0 0 0 1 1 - i & 0x01 -> 1
// i >> 1
// 0 0 0 0 0 0 0 1 - i & 0x01 -> 1
}
int m = sizeof(digits) / sizeof(digits[0]); // Število elementov seznama
y ++;
if (y > m - 1) y = 0;
delay(500);
}