03-12-2020, 17:50
(Ten post był ostatnio modyfikowany: 03-12-2020, 23:34 przez Himura Kenshin.)
Kod:
#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11
#define SEG_F 10
#define PRZYCISK 12
int ostatniStan = HIGH; //BO PULLUP
int losowaLiczba;
void setup() {
Serial.begin(9600);
pinMode(PRZYCISK, INPUT_PULLUP);
//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);
}
void loop() {
pinMode(12, INPUT_PULLUP); //Przycisk jako wejście
if (digitalRead(PRZYCISK) == HIGH) { // Przycisk nie naciśnięty
digitalWrite(wyswietlacz,HIGH); //Wyświetlacz zgaszony
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);
}
if (digitalRead(PRZYCISK) == LOW) { // Przycisk naciśnięty
losowaLiczba = random(1, 7);
Serial.println(losowaLiczba);
digitalWrite(wyswietlacz, LOW); // Jeśli tak, zapala wyświetlscz
wyswietlacz(losowaLiczba);
}
}
void wyswietlacz(int cyfra) {
//Instrukcja switch ustawia odpowiednie stany na wyjsciach
//w zaleznosci od podanej cyfry
switch (cyfra) {
case 0:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, LOW);
digitalWrite(SEG_F, HIGH);
digitalWrite(SEG_G, LOW);
break;
case 1:
digitalWrite(SEG_A, HIGH);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, HIGH);
digitalWrite(SEG_E, HIGH);
digitalWrite(SEG_F, HIGH);
digitalWrite(SEG_G, HIGH);
break;
case 2:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, HIGH);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, LOW);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, HIGH);
break;
case 3:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, HIGH);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, HIGH);
break;
case 4:
digitalWrite(SEG_A, HIGH);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, HIGH);
digitalWrite(SEG_E, HIGH);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, LOW);
break;
case 5:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, HIGH);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, HIGH);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, LOW);
break;
case 6:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, HIGH);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, LOW);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, LOW);
break;
}
}
#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11
#define SEG_F 10
#define PRZYCISK 12
int ostatniStan = HIGH; //BO PULLUP
int losowaLiczba;
void setup() {
Serial.begin(9600);
pinMode(PRZYCISK, INPUT_PULLUP);
//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);
}
void loop() {
pinMode(12, INPUT_PULLUP); //Przycisk jako wejście
if (digitalRead(PRZYCISK) == HIGH) { // Przycisk nie naciśnięty
digitalWrite(wyswietlacz,HIGH); //Wyświetlacz zgaszony
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);
}
if (digitalRead(PRZYCISK) == LOW) { // Przycisk naciśnięty
losowaLiczba = random(1, 7);
Serial.println(losowaLiczba);
digitalWrite(wyswietlacz, LOW); // Jeśli tak, zapala wyświetlscz
wyswietlacz(losowaLiczba);
}
}
void wyswietlacz(int cyfra) {
//Instrukcja switch ustawia odpowiednie stany na wyjsciach
//w zaleznosci od podanej cyfry
switch (cyfra) {
case 0:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, LOW);
digitalWrite(SEG_F, HIGH);
digitalWrite(SEG_G, LOW);
break;
case 1:
digitalWrite(SEG_A, HIGH);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, HIGH);
digitalWrite(SEG_E, HIGH);
digitalWrite(SEG_F, HIGH);
digitalWrite(SEG_G, HIGH);
break;
case 2:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, HIGH);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, LOW);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, HIGH);
break;
case 3:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, HIGH);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, HIGH);
break;
case 4:
digitalWrite(SEG_A, HIGH);
digitalWrite(SEG_B, LOW);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, HIGH);
digitalWrite(SEG_E, HIGH);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, LOW);
break;
case 5:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, HIGH);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, HIGH);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, LOW);
break;
case 6:
digitalWrite(SEG_A, LOW);
digitalWrite(SEG_B, HIGH);
digitalWrite(SEG_C, LOW);
digitalWrite(SEG_D, LOW);
digitalWrite(SEG_E, LOW);
digitalWrite(SEG_F, LOW);
digitalWrite(SEG_G, LOW);
break;
}
}