Dziękuje Ci bardzo za odpowiedź, na początku chcę zrobić to tak aby mi to chodziło pod każdym aspektem. Oczywiście twoja propozycja jest dobra co do przycisków ale problem leży w tym że to ja muszę się "dostosować" do chociażby przełączników a nie one do mnie stąd 4 a nie dwa.
W każdym razie rozszerzyłem swój kod o dalszą funkcję ale mam mały problem z którym nie mogę sobie poradzić.
Cóż, dalsza część kodu sprawdza którą kombinację przycisków wybraliśmy i zależnie od tego załącza wybrane wyjścia jednoczenie blokując możliwość wyboru np. dwóch wyjść z jednej pary. To wszystko wrzuciłem w pętle while oraz dodałem element "Wyjscie" który jest odpowiedzialny za odliczanie czasu, wyłączenie wyjść po X czasie i wrócenie na początek pętli oczekując na kombinację. Problem leży w tym że po wyborze kombinacji, załączeniu wyjść i ich wyłączeniu po ustalonych 5s program prawdopodobnie zapamiętuje stan wejść i powtarza kod w kółko czyli sam załącza od nowa te same wyjście, odczekuje X czasu, wyłącza je i od nowa załącza i tak w kółko.
W czym leży problem?
int przekaznik1 = 2; //przekaznik1 podłączamy do pinu 2
int przekaznik2 = 3; //przekaznik2 podłączamy do pinu 3
int przekaznik3 = 4; //przekaznik1 podłączamy do pinu 4
int przekaznik4 = 5; //przekaznik1 podłączamy do pinu 5
int przekaznik5 = 6; //przekaznik1 podłączamy do pinu 6
int przekaznik6 = 7; //przekaznik1 podłączamy do pinu 7
int przycisk1 = 8; //przycisk1 podłączamy do pinu 8
int przycisk2 = 9; //przycisk2 podłączamy do pinu 9
int przycisk3 = 10; //przycisk1 podłączamy do pinu 10
int przycisk4 = 11; //przycisk1 podłączamy do pinu 11
int przycisk5 = 12; //przycisk1 podłączamy do pinu 12
int przycisk6 = 13; //przycisk1 podłączamy do pinu 13
boolean Stan1;
boolean Stan2;
boolean Stan3;
boolean Stan4;
boolean Wyjscie;
boolean End;
void setup()
{
pinMode(przekaznik1, OUTPUT); //przekaznik1 jako wyjście
pinMode(przekaznik2, OUTPUT); //przekaznik2 jako wyjście
pinMode(przekaznik3, OUTPUT); //przekaznik3 jako wyjście
pinMode(przekaznik4, OUTPUT); //przekaznik4 jako wyjście
pinMode(przekaznik5, OUTPUT); //przekaznik5 jako wyjście
pinMode(przekaznik6, OUTPUT); //przekaznik6 jako wyjście
pinMode(przycisk1, INPUT_PULLUP); //przycisk1 jako wejście
pinMode(przycisk2, INPUT_PULLUP); //przycisk2 jako wejście
pinMode(przycisk3, INPUT_PULLUP); //przycisk3 jako wejście
pinMode(przycisk4, INPUT_PULLUP); //przycisk4 jako wejście
pinMode(przycisk5, INPUT_PULLUP); //przycisk5 jako wejście
pinMode(przycisk6, INPUT_PULLUP); //przycisk6 jako wejście
digitalWrite(przekaznik1, LOW); //stan poczÄ…tkowy przekaznika1 niski
digitalWrite(przekaznik2, LOW); //stan poczÄ…tkowy przekaznika2 niski
digitalWrite(przekaznik3, LOW); //stan poczÄ…tkowy przekaznika3 niski
digitalWrite(przekaznik4, LOW); //stan poczÄ…tkowy przekaznika4 niski
digitalWrite(przekaznik5, LOW); //stan poczÄ…tkowy przekaznika5 niski
digitalWrite(przekaznik6, LOW); //stan poczÄ…tkowy przekaznika6 niski
Wyjscie = false;
Serial.begin(9600); //Prędkość komunikacji z portem
}
void loop()
{
Serial.println(F("loop"));
while(Wyjscie = true)
{
int przycisk1 = digitalRead(8); //Odczytuje stan wejscia 1
int przycisk2 = digitalRead(9); //Odczytuje stan wejscia 2
int przycisk3 = digitalRead(10); //Odczytuje stan wejscia 3
int przycisk4 = digitalRead(11); //Odczytuje stan wejscia 4
delay(1000);
if(przycisk1 == LOW && przycisk2 == HIGH)
{
Stan1 = true;
Stan2 = false;
Serial.println(F("Stan1"));
}
else if(przycisk2 == LOW && przycisk1 == HIGH)
{
Stan2 = true;
Stan1 = false;
Serial.println(F("Stan2"));
}
if(przycisk3 == LOW && przycisk4 == HIGH)
{
Stan3 = true;
Stan4 = false;
Serial.println(F("Stan3"));
}
else if(przycisk4 == LOW && przycisk3 == HIGH)
{
Stan4 = true;
Stan3 = false;
Serial.println(F("Stan4"));
}
if(Stan1 == true && Stan2 == false && Stan3 == true && Stan4 == false)
{
Serial.println(F("Wysterowanie wyjścia 1 i 3"));
digitalWrite(przekaznik1, HIGH);
digitalWrite(przekaznik2, LOW);
digitalWrite(przekaznik3, HIGH);
digitalWrite(przekaznik4, LOW);
Wyjscie = false;
}
if(Stan1 == true && Stan2 == false && Stan3 == false && Stan4 == true)
{
Serial.println(F("Wysterowanie wyjścia 1 i 4"));
digitalWrite(przekaznik1, HIGH);
digitalWrite(przekaznik2, LOW);
digitalWrite(przekaznik3, LOW);
digitalWrite(przekaznik4, HIGH);
}
if(Stan1 == false && Stan2 == true && Stan3 == true && Stan4 == false)
{
Serial.println(F("Wysterowanie wyjścia 2 i 4"));
digitalWrite(przekaznik1, LOW);
digitalWrite(przekaznik2, HIGH);
digitalWrite(przekaznik3, HIGH);
digitalWrite(przekaznik4, LOW);
}
if(Stan1 == false && Stan2 == true && Stan3 == false && Stan4 == true)
{
Serial.println(F("Wysterowanie wyjścia 2 i 4"));
digitalWrite(przekaznik1, LOW);
digitalWrite(przekaznik2, HIGH);
digitalWrite(przekaznik3, LOW);
digitalWrite(przekaznik4, HIGH);
}
if(Wyjscie == false)
{
Serial.println(F("Wyjscie"));
delay(5000);
digitalWrite(przekaznik1, LOW);
digitalWrite(przekaznik3, LOW);
break;
}
delay (1000);
}
}