// pin připojen na RCLK registru (12)
int latchPin = 3;
//Pin connected to SRCLK registru (11)
int clockPin = 4;
////Pin připojen na Data pin registu (14)
int dataPin = 2;
void setup() {
// nastavení vyvodů Arduina na výstup
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
// cyklus pro počítání od 0 do 99
for (int i = 0;i <100;i++)
{
// zjištění počtu desítek a jednotek
// pro rozdělení do displeje
int desitky = (i- (i%10))/10;
int jednotky = i - (desitky*10);
// pošle do registru jednotky
ShowDigit(jednotky);
//když jsou desítky 0 tak je nezobrazí
// hodnota 10 smaže čislici
if (desitky == 0) desitky = 10;
// zobrazí desítky
ShowDigit(desitky);
// čeká 80 milisekund
delay(80);
}
}
// funkce pro 7-segmentouvé číslice
void ShowDigit(byte value)
{
byte DigitData[11] = {
// zde uloženy data pro číslice a symboly
B00000010, //0
B11001111, //1
B00010001, //2
B00000101, //3
B01001100, //4
B00100100, //5
B00100000, //6
B00001111, //7
B00000000, //8
B00000100, //9
B11111111, //10 - smazat
// sami si můžete nějaké symboly přidat
};
// odeslání hodnoty do registru
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, DigitData[value]);
digitalWrite(latchPin, HIGH);
}