• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie semaforem kolejowym
#10
Witam po dłuższej przerwie

Dziękuję za cenne wskazówki, rady i porady.
Po zapoznaniu się z Waszymi wskazówkami, przeanalizowaniu kursu Arduino ze strony forbot.pl  i przełożeniu to na moje potrzeby sterowania semaforem udało mi się uruchomić sterowanie semaforem 4-ro komorowym Big GrinBig GrinBig Grin
Listing poniżej
void setup()
{
  pinMode(9, OUTPUT); //Dioda czerwona jako wyjście
  pinMode(10, OUTPUT); //Dioda zielona jako wyjście
  pinMode(11, OUTPUT); //Dioda zółta jako wyjście
  pinMode(12, OUTPUT); //Dioda biała jako wyjście
  pinMode(2, INPUT_PULLUP); //Przycisk jako wejście-sygnał S1
  pinMode(3, INPUT_PULLUP); //Przycisk jako wejście-sygnał S2
  pinMode(4, INPUT_PULLUP); //Przycisk jako wejście-sygnał S10
  pinMode(5, INPUT_PULLUP); //Przycisk jako wejście-sygnał Ms2
  digitalWrite(9, LOW); //Stan początkowy-sygnał S1
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);
}
 
void loop()
{


while(digitalRead(2) == LOW) { //Jeśli przycisk wciśnięty-sygnał S1
    digitalWrite(9, LOW); //Włącz diodę czerwoną
    digitalWrite(10, HIGH); //Włącz diodę zieloną
    digitalWrite(11, HIGH);//Wyłącz diodę żółtą
    digitalWrite(12, HIGH);//Wyłącz diodę białą
}

 while(digitalRead(3) == LOW) { //Jeśli przycisk wciśnięty-sygnał S2
    digitalWrite(9, HIGH); //Włącz diodę czerwoną
    digitalWrite(10, LOW); //Wyłącz diodę zieloną
    digitalWrite(11, HIGH);//Wyłącz diodę żółtą
   
}
while(digitalRead(4) == LOW){  //Jeśli przycisk wciśnięty-sygnał S10
    digitalWrite(9, HIGH); //Wyłącz diodę czerwoną
    digitalWrite(10, LOW); //Włącz diodę zieloną
    digitalWrite(11, LOW);//Włącz diodę żółtą
    digitalWrite(12, HIGH);//Wyłącz diodę białą
}
while(digitalRead(5) == LOW){ //Jeśli przycisk wciśnięty-sygnał Ms2
    digitalWrite(9, HIGH); //Wyłącz diodę czerwoną
    digitalWrite(10, HIGH); //Wyłącz diodę zieloną
    digitalWrite(11, HIGH);//Wyłącz diodę żółtą
    digitalWrite(12, LOW);//Włącz diodę białą   
}
}

Teraz pracuję nad dodaniem do powyższego sygnału Sz[sygnał zastępczy] (LED czerwona ciągła + LED biała pulsująca.
Na chwilę obecną po poniższym zapisie:

while(digitalRead(5) == LOW){ //Jeśli przycisk wciśnięty-sygnał Sz
    digitalWrite(9, LOW); //Włącz diodę czerwoną
    digitalWrite(10, HIGH); //Wyłącz diodę zieloną
    digitalWrite(11, HIGH);//Wyłącz diodę żółtą
    digitalWrite(12, LOW);//Włącz diodę białą
    delay(500); //Opóźnienie
    digitalWrite(12,HIGH);//Włącz diodę białą
    delay(500); //Opóźnienie
}

sygnał Sz działa tylko przy przytrzymywaniu switch'a.
Pracuję dalej. Po ukończeniu z powodzeniem (brak konieczności podtrzymywania switch'a) pozwolę sobie dać info i listing.

Jeszcze raz dziękuję Wam za pomoc.
Pozdrawiam !
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Sterowanie semaforem kolejowym - przez es2 - 19-11-2018, 14:09
RE: Sterowanie semaforem kolejowym - przez es2 - 19-11-2018, 14:55
RE: Sterowanie semaforem kolejowym - przez es2 - 19-11-2018, 17:26
RE: Sterowanie semaforem kolejowym - przez es2 - 19-11-2018, 18:59
RE: Sterowanie semaforem kolejowym - przez kaczakat - 22-11-2018, 08:28
RE: Sterowanie semaforem kolejowym - przez lighter1@wp.pl - 19-12-2018, 14:20
RE: Sterowanie semaforem kolejowym - przez es2 - 20-12-2018, 11:43

Skocz do:


Przeglądający: 1 gości