#define SEGMENT_ON HIGH
#define SEGMENT_OFF LOW
#define DIGIT_ON 0
#define DIGIT_OFF 255
//výstupy připojených číslic
int digit[4] = {10,11,9,3};
int bright_on = DIGIT_ON;
int bright_off = DIGIT_OFF;
//výstupy segmentů čísle A-G a DP
int seg[8] = {12,7,5,13,2,8,6,4};
//funkce nastavení výstupu a vypnutí všech LED
void reset7() {
for (int d=0; d < 4; d++) {
pinMode(digit[d], OUTPUT);
analogWrite(digit[d], DIGIT_OFF);
}
for (int s=0; s < 8; s++) {
pinMode(seg[s], OUTPUT);
digitalWrite(seg[s], SEGMENT_OFF);
}
}
void setup() {
reset7(); //nastavení vývodu
}
void loop() {
for ( int s=0;s < 8; s++) { //jeden segment za druhým
digitalWrite(seg[s], SEGMENT_ON); //zapne segment
for (int d=0; d<4; d++){ //vnořený cyklus, jedna číslice za druhou
analogWrite(digit[d],bright_on); //zapne číslici
delay(200); // počká 200ms
analogWrite(digit[d],bright_off); // vypne číslici a jde na další číslici
}
digitalWrite(seg[s], SEGMENT_OFF); // vypne segment a jde na další segment
}
}