• 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
Światła drogowe
#1
Witam!
Mam problem z kodem ciągle pojawia się błąd : 'eastGreen' was not declared in this scope
Co robię źle? 
Kod:
// definicja pinów, do których podłączono przyciski i diody LED:
#define westButton 7
#define eastButton 13
#define westRed 2
#define westYellow 1
#define westGreen 0
#define eastRed 12
#define eastYellow 11
#define westGreen 10

#define yellowBlinkTime 500 // żółte światło zapala na pół sekundy

boolean trafficWest = true; // west = true, east = false
int flowTime = 10000;       // czas puszczania ruchu pojazdów w jedną stronę
int changeDelay = 2000;     // czas pomiędzy zmianą koloru świateł

void setup()
{
 //ustawia cyfrowe piny wejścia - wyjścia
 pinMode (westButton, INPUT);
 pinMode (eastButton, INPUT);
 pinMode (westRed, OUTPUT);
 pinMode (westYellow, OUTPUT);
 pinMode (westGreen, OUTPUT);
 pinMode (eastRed, OUTPUT);
 pinMode (eastYellow, OUTPUT);
 pinMode (eastGreen, OUTPUT);

 // ustawia początkowy stan świateł (zielone światło od strony zachodniej)
 digitalWrite (westRed, LOW);
 digitalWrite (westYellow, LOW);
 digitalWrite (eastGreen, HIGH);
 digitalWrite (eastRed, HIGH);
 digitalWrite (eastYellow, LOW);
 digitalWrite (eastGreen, LOW);
}
void loop ()
{
 if ( digitalRead(westButton) == HIGH) // żądanie puszczania ruchem
                                       // z zachodu na wschód
 {
   if (trafficWest != true)
   // ten kod należy wywołać tylko w sytuacji, gdy ruch odbywa się w przeciwnym kierunku (na wschód)
  {
     trafficWest = true; // zmiana flagi kierunku ruchu na z zachodu na wschód
     delay (flowTime); // czas na opuszcznie mostu przez aktualne przejażdżające pojazdy
     digitalWrite (eastGreen, LOW); //zmiana świateł od strony wschodniej (z zielonego na żółte i czerwone)
   
     digitalWrite (eastYellow, HIGH);
     delay (changeDelay);
     digitalWrite (eastYellow, LOW);
     digitalWrite (eastRed, HIGH);
     delay (changeDelay);
     for (int a = 0; a < 5; a++ ) // migające żółte światło
     {
       digitalWrite(westYellow, LOW);
       delay( yellowBlinkTime);
       digitalWrite (westYellow, HIGH);
       delay(yellowBlinkTime);
     }
     digitalWrite(westYellow, LOW);
     digitalWrite(westRed, LOW); // zmiana światła od strony zachodniej na zielone
     digitalWrite (westGreen, HIGH);
     }                                    
   }
   if (digitalRead(eastButton) == HIGH) //żądanie puszczanie ruchu ze wszchodu na zachód
   {
     if trafficWest == true) //ten kod należy wywołać tylko w sytuacji, gdy ruch odbywa się w przeciwnym kierunku na zachód
     {
       trafficWest = false; //zmiana flagi kierunku na ze wschodu na zachód
       delay (flowTime); //czas na opuszczenie mostu przez aktulane przejażdżając pojazdy
       digitalWrite (westGreen, LOW);
       // zmiana światła od strony zachodniej z zielonego na żółte i czerwone
     
     digitalWrite (westYellow, HIGH);
     delay (changeDelay);
     digitalWrite (westYellow, LOW);
     digitalWrite (westRed, HIGH);
     delay (changeDelay);
     for (int a = 0; a < 5; a++ ) // migające żółte światło
    {
       digitalWrite(eastYellow, LOW);
       delay( yellowBlinkTime);
       digitalWrite (eastYellow, HIGH);
       delay(yellowBlinkTime);
     }
     digitalWrite(eastYellow, LOW);
     digitalWrite(eastRed, LOW); // zmiana światła od strony wschodniej z czerwonego na zielone
     digitalWrite(eastGreen, HIGH);
     }
 }
}
 
#2
Na moje to  masz dwa razy :

Kod:
#define westGreen 0
#define westGreen 10
jedno powinno być chyba eastGreen.
 
#3
Kod:
// definicja pinów, do których podłączono przyciski i diody LED:
#define westButton 7
#define eastButton 13
#define westRed 2
#define westYellow 1
#define westGreen 0
#define eastRed 12
#define eastYellow 11
#define eastGreen 10

#define yellowBlinkTime 500 // żółte światło zapala na pół sekundy

boolean trafficWest = true; // west = true, east = false
int flowTime = 10000;       // czas puszczania ruchu pojazdów w jedną stronę
int changeDelay = 2000;     // czas pomiędzy zmianą koloru świateł

void setup()
{
//ustawia cyfrowe piny wejścia - wyjścia
pinMode (westButton, INPUT);
pinMode (eastButton, INPUT);
pinMode (westRed, OUTPUT);
pinMode (westYellow, OUTPUT);
pinMode (westGreen, OUTPUT);
pinMode (eastRed, OUTPUT);
pinMode (eastYellow, OUTPUT);
pinMode (eastGreen, OUTPUT);

// ustawia początkowy stan świateł (zielone światło od strony zachodniej)
digitalWrite (westRed, LOW);
digitalWrite (westYellow, LOW);
digitalWrite (eastGreen, HIGH);
digitalWrite (eastRed, HIGH);
digitalWrite (eastYellow, LOW);
digitalWrite (eastGreen, LOW);
}
void loop ()
{
if ( digitalRead(westButton) == HIGH) // żądanie puszczania ruchem
                                       // z zachodu na wschód
{
   if (trafficWest != true)
   // ten kod należy wywołać tylko w sytuacji, gdy ruch odbywa się w przeciwnym kierunku (na wschód)
  {
     trafficWest = true; // zmiana flagi kierunku ruchu na z zachodu na wschód
     delay (flowTime); // czas na opuszcznie mostu przez aktualne przejażdżające pojazdy
     digitalWrite (eastGreen, LOW); //zmiana świateł od strony wschodniej (z zielonego na żółte i czerwone)
  
     digitalWrite (eastYellow, HIGH);
     delay (changeDelay);
     digitalWrite (eastYellow, LOW);
     digitalWrite (eastRed, HIGH);
     delay (changeDelay);
     for (int a = 0; a < 5; a++ ) // migające żółte światło
     {
       digitalWrite(westYellow, LOW);
       delay( yellowBlinkTime);
       digitalWrite (westYellow, HIGH);
       delay(yellowBlinkTime);
     }
     digitalWrite(westYellow, LOW);
     digitalWrite(westRed, LOW); // zmiana światła od strony zachodniej na zielone
     digitalWrite (westGreen, HIGH);
     }                                    
   }
   if (digitalRead(eastButton) == HIGH) //żądanie puszczanie ruchu ze wszchodu na zachód
   {
     if (trafficWest == true) //ten kod należy wywołać tylko w sytuacji, gdy ruch odbywa się w przeciwnym kierunku na zachód
     {
       trafficWest = false; //zmiana flagi kierunku na ze wschodu na zachód
       delay (flowTime); //czas na opuszczenie mostu przez aktulane przejażdżając pojazdy
       digitalWrite (westGreen, LOW);
       // zmiana światła od strony zachodniej z zielonego na żółte i czerwone
    
     digitalWrite (westYellow, HIGH);
     delay (changeDelay);
     digitalWrite (westYellow, LOW);
     digitalWrite (westRed, HIGH);
     delay (changeDelay);
     for (int a = 0; a < 5; a++ ) // migające żółte światło
    {
       digitalWrite(eastYellow, LOW);
       delay( yellowBlinkTime);
       digitalWrite (eastYellow, HIGH);
       delay(yellowBlinkTime);
     }
     digitalWrite(eastYellow, LOW);
     digitalWrite(eastRed, LOW); // zmiana światła od strony wschodniej z czerwonego na zielone
     digitalWrite(eastGreen, HIGH);
     }
}
}
Kod poprawiony .
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
#4
jest wszystko ok. dzięki
 
#5
Niema za co po to tu jesteśmy temat do zamknięcia.
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
#6
zamykam
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
  


Skocz do:


Przeglądający: 1 gości