• 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
Skrzyżowanie z przejściami dla pieszych.
#11
(04-02-2017, 12:08)namok napisał(a): Nie ma takiej możliwości a by jednocześnie działały dwie sekwencje z użyciem delay().
W momencie wywołania delay() program "stoi w miejscu" do momentu aż minie zadany czas.
W momencie wywołania delay() nie działają przyciski czytane w pętli loop().
Możesz to zrobić z użyciem millis() ale musisz dobrze przemyśleć algorytm. Poczytaj: https://techniczny.wordpress.com/2012/04...w-arduino/
Oczywiście są biblioteki pomagające w wielowątkowości np: http://www.jarzebski.pl/arduino/bibliote...duino.html.

Hmm , dzisiaj miałem trochę czasu i próbowałem poprawić program.Coś mi to nie wychodzi. ograniczyłem więc go do dwóch sygnalizatorów (mijanka). Co w nim zmienić aby działały przyciski?Jakiś przykład proszę.

Kod:
 // Pierwszy sygnalizator
 
 int led0 = 2;// Dioda czerwona
 int led1 = 3;// Dioda pomarańczowa
 int led2 = 4;// Dioda zielona

  // Drugi sygnalizator
 
 int led3 = 7;// Dioda czerwona
 int led4 = 8;// Dioda pomarańczowa
 int led5 = 9;// Dioda zielona
   
 int switch0 = 0;    //  przycisk na pin 0
 int switch1 = 1;    //  przycisk na pin 1
 
void setup()
{
     pinMode(led0, OUTPUT);   //pin 2 jako wyjście
     pinMode(led1, OUTPUT);   //pin 3 jako wyjście
     pinMode(led2, OUTPUT);   //pin 4 jako wyjście
     pinMode(led3, OUTPUT);   //pin 7 jako wyjście
     pinMode(led4, OUTPUT);   //pin 8 jako wyjście
     pinMode(led5, OUTPUT);   //pin 9 jako wyjście

     pinMode(switch0, INPUT_PULLUP);   //pin 0 jako wejście
     pinMode(switch1, INPUT_PULLUP);   //pin 1 jako wejście
   
}
void loop()

{  
  if (digitalRead(0) == LOW) { //Jeśli przycisk wciśnięty
           
 
  digitalWrite(led0, HIGH);digitalWrite(led3,  LOW); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4,  LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną
       
  delay(5000);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, HIGH);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną
       
  delay(2000);

  }
 
  //Miganie diod pomarańczowej i zielonej

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, HIGH);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, HIGH);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, HIGH);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, HIGH);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, HIGH);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną

  delay(500);

  digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną

  delay(500);

  {
 
  if (digitalRead(1) == LOW) { //Jeśli przycisk wciśnięty

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(5000);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, HIGH);  // włącz diodę pomarańczową
  digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(2000);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, HIGH);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, HIGH);  // włącz diodę pomarańczową
  digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, HIGH);  // włącz diodę pomarańczową
  digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, HIGH);  // włącz diodę pomarańczową
  digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, HIGH);  // włącz diodę pomarańczową
  digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);

  digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
  digitalWrite(led1, LOW);digitalWrite(led4, LOW);  // włącz diodę pomarańczową
  digitalWrite(led2, LOW);digitalWrite(led5, LOW); // włącz diodę zieloną
       
  delay(500);
           
 }  
}
}  
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Skrzyżowanie z przejściami dla pieszych. - przez Orion045 - 08-02-2017, 00:08

Skocz do:


Przeglądający: 1 gości