#define seg_a 7 //Opis
#define seg_b 5 //segmentów
#define seg_c 2 // i
#define seg_d 4 // ich
#define seg_e 3 //pinów
#define seg_f 6
#define seg_g 8
#define wys_jed 9 // piny do
#define wys_dwa 10 // wyświetlaczy
void setup() {
pinMode(seg_a,OUTPUT);
pinMode(seg_b,OUTPUT);
pinMode(seg_c,OUTPUT);
pinMode(seg_d,OUTPUT);
pinMode(seg_e,OUTPUT);
pinMode(seg_f,OUTPUT);
pinMode(seg_g,OUTPUT);
pinMode(wys_jed,OUTPUT);
pinMode(wys_dwa,OUTPUT);
}
int k=0; //Z mienna potrzeba do poruszania się po kolumnach tablicy "stany"
byte segmenty[7]={seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_g}; // Tablica przechowująca piny Arduino od poszczególnych segmentów
int stany[10][7]={{HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,LOW},
{LOW,HIGH,HIGH,LOW,LOW,LOW,LOW}, // Tablica dwuwymiarowa, która
{HIGH,HIGH,LOW,HIGH,HIGH,LOW,HIGH}, // przechowuje stany segmentów
{HIGH,HIGH,HIGH,HIGH,LOW,LOW,HIGH}, // dla kolejnych cyfr
{LOW,HIGH,HIGH,LOW,LOW,HIGH,HIGH},
{HIGH,LOW,HIGH,HIGH,LOW,HIGH,HIGH},
{HIGH,LOW,HIGH,HIGH,HIGH,HIGH,HIGH},
{HIGH,HIGH,HIGH,LOW,LOW,LOW,LOW},
{HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH},
{HIGH,HIGH,HIGH,HIGH,LOW,HIGH,HIGH}};
void loop() {
for(int i=0;i<10;i++){ // Pętla do zmiany cyfry dziesiątek
for ( int j=0;j<10;j++){ // Pętla do zmiany cyfry jedności
for( int k=0;k<10;k++){ // Pętla do zmiany czasu trwania odliczania
digitalWrite(wys_jed,HIGH); // Włączenie wyświetlacza numer 1
digitalWrite(wys_dwa,LOW); // Wyłączenie wyświetlacza numer 2
showTheNumber(i); // Funkcja do wybierania odpowiedniej cyfry
delay(5);
digitalWrite(wys_jed,LOW);
digitalWrite(wys_dwa,HIGH);
showTheNumber(j);
delay(5);
}
}
}
}
void showTheNumber(byte number){
for ( int i=0; i<7; i++){ // Pętla do poruszania się po kolejnych segmentach
digitalWrite(segmenty[i],stany[number][k]); // Załączanie segmentów w zależności od cyfry, która ma być wyświetlona
k++;
if(k==7) k=0; // Jeżeli cyfra została wyświetlona to idziemy do następnej
}
}
Hej marek 1707, dzięki za komentarz. Czy chodziło Ci o coś takiego ?