23-09-2019, 16:42
Kod:
int stan = 0;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11, INPUT_PULLUP); //Przycisk jako wejście
// digitalWrite(11, INPUT_PULLUP); //Włączenie przekaźnika nie wiem po co to jest pytanie do autora
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
}
void loop()
{
if (digitalRead(11) == LOW && stan ==0 ) { //Jeśli przycisk wciśnięty i zmienna stan jest równa 0
digitalWrite(2, LOW); //Włącz przekaźnik
delay(1000); //Czekamy 1 sekund
digitalWrite(3, LOW); //Włącz
delay(1000); //Czekamy 1 sekund
digitalWrite(4, LOW); //Włącz
delay(1000); //Czekamy 1 sekund
digitalWrite(5, LOW); //Włącz
delay(1000); //Czekamy 1 sekund
digitalWrite(6, LOW); //Włącz
delay(1000); //Czekamy 1 sekund
digitalWrite(7, LOW); //Włącz
delay(1000); //Czekamy 1 sekund
digitalWrite(8, LOW); //Włącz
delay(1000); //Czekamy 1 sekund
digitalWrite(9, LOW); //Włącz
stan = 1;
}
if (digitalRead(11) == LOW && stan ==1 ) { //Jeśli przycisk wciśnięty i zmienna stan jest równa 1
digitalWrite(9, HIGH); //Włącz przekaźnik
delay(2000); //Czekamy 2 sekundy
digitalWrite(8, HIGH); //Wyłącz
delay(2000); //Czekamy 2 sekundy
digitalWrite(7, HIGH); //Wyłącz
delay(2000); //Czekamy 2 sekundy
digitalWrite(6, HIGH); //Wyłącz
delay(2000); //Czekamy 2 sekundy
digitalWrite(5, HIGH); //Wyłącz
delay(2000); //Czekamy 2 sekundy
digitalWrite(4, HIGH); //Wyłącz
delay(2000); //Czekamy 2 sekundy
digitalWrite(2, HIGH); //Wyłącz
delay(2000); //Czekamy 2 sekundy
digitalWrite(2, HIGH); //Wyłącz
stan = 0;
}
}
Wiem, że można zrobić inaczej bardziej elegancko, ale chciałem pokazać, że tak też można.
Procesor z tym kodem oczywiście oprócz włączania i wyłączania przekaźników już nic więcej nie potrafi robić, no chyba, że nie będzie się w tym czasie naciskać przycisku.