////////////////////// WYŚWIETLANIE LICZB
#define SEG_C 3 #define SEG_E 6 #define SEG_D 5 #define SEG_B 2 #define SEG_G 7 #define SEG_A 9 #define SEG_F 8 #define SEG_P 4 #define WYSW_1 10 #define WYSW_2 11 #define WYSW_3 12 #define WYSW_4 13
int liczba = 0; int ms = 0;
void setup() { //Konfiguracja pinow jako wyjscia 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(SEG_P, OUTPUT); pinMode(WYSW_1,OUTPUT); pinMode(WYSW_2,OUTPUT); pinMode(WYSW_3,OUTPUT); pinMode(WYSW_4,OUTPUT); }
void loop() { ms++; if(ms == 200) { ms = 0; liczba++; } display_liczba(liczba); }
void wyswiet_off (){ digitalWrite(WYSW_1,HIGH);//Wyłącz 1 wyświetlacz digitalWrite(WYSW_2,HIGH); digitalWrite(WYSW_3,HIGH); digitalWrite(WYSW_4,HIGH); }
void display_liczba(int licz){ // X000 wyswiet_off(); digitalWrite(WYSW_1,LOW); //Włącz 1 wyświetlacz int tys = licz / 1000; display_number(tys); delay(1); // 0X00 wyswiet_off(); int setki = (licz - (1000 * tys)) / 100; digitalWrite(WYSW_2,LOW); //Włącz 2 wyświetlacz display_number(setki); delay(1); // 00X0 wyswiet_off(); int dzies = (licz - (1000 * tys) - (100 * setki)) / 10; digitalWrite(WYSW_3,LOW); //Włącz 3 wyświetlacz display_number(dzies); delay(1); // 000X wyswiet_off(); int jednostki = licz - (1000 * tys) - (100 * setki) - (10 * dzies); digitalWrite(WYSW_4,LOW); //Włącz 4 wyświetlacz display_number(jednostki); delay(1); }
void display_number(int num){ switch(num) { case 0: digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, HIGH); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, LOW); break; case 1: digitalWrite(SEG_A, LOW); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, LOW); break; case 2: digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, LOW); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, HIGH); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, HIGH); break; case 3: digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, HIGH); break; case 4: digitalWrite(SEG_A, LOW); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); break; case 5: digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, LOW); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); break; case 6: digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, LOW); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, HIGH); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); break; case 7: digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, LOW); break; case 8: digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, HIGH); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); break; case 9: digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); break; default: digitalWrite(SEG_A, LOW); digitalWrite(SEG_B, LOW); digitalWrite(SEG_C, LOW); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, LOW); break; } }
|