• 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
żarząca dioda LED
#11
Kod:
// definicja pinów, do których podłączono przyciski i diody LED:
#define westButton 7
#define eastButton 13
#define westRed 2
#define westYellow 4
#define westGreen 3
#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 (westGreen, LOW);
digitalWrite (westRed, LOW);
digitalWrite (westYellow, LOW);
digitalWrite (eastGreen, HIGH);
digitalWrite (eastRed, HIGH);
digitalWrite (eastYellow, 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);
}
}

sprawdź teraz jeszcze 2 błędy znalazłem dzięki za schemat jest ok za wyjątkiem d1 d2 tam być nie możne .
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
#12
W kodzie jest błąd. Świecą się na raz 3 diody
 
Odpowiedź
#13
Znalazłem błąd:
Kod:
fragment kodu z błędem:
#define westButton 7
#define eastButton 13
#define westRed 2
#define westYellow 4
#define eastGreen 8
#define eastRed 12
#define eastYellow 11
#define eastGreen 10


kod bez błędu:
Kod:
#define westButton 7
#define eastButton 13
#define westRed 2
#define westYellow 4
#define westGreen 8
#define eastRed 12
#define eastYellow 11
#define eastGreen 10

Literówka
Dziękuje za pomoc
 
Odpowiedź
#14
czyli poprawki moje w kodzie pomogły ok jak działa to fajnie
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości