const int latchPinSTCP = 4;
const int clockPinSHCP = 5;
const int dataPinDS = 3;
unsigned long previousMillis = 0;
uint16_t cislo = 0;
uint8_t segment[] = {1,2,4,8};
const uint8_t cifry[] = {
0b00000011, // 0
0b10011111, // 1
0b00100101, // 2
0b00001101, // 3
0b10011001, // 4
0b01001001, // 5
0b01000001, // 6
0b00011111, // 7
0b00000001, // 8
0b00001001, // 9
0b11111111 // -
};
void setup() {
pinMode(latchPinSTCP, OUTPUT);
pinMode(dataPinDS, OUTPUT);
pinMode(clockPinSHCP, OUTPUT);
}
void loop() {
zobraz(cislo);
if(millis() - previousMillis >= 1000)
{
previousMillis = millis();
cislo = (cislo + 1) %10;
}
}
void zobraz(uint16_t cislo)
{
digitalWrite(latchPinSTCP, LOW);
shiftOut(dataPinDS, clockPinSHCP, LSBFIRST, cifry[cislo]);
shiftOut(dataPinDS, clockPinSHCP, MSBFIRST, 15);
digitalWrite(latchPinSTCP, HIGH);
}