Kolejny sygnalizator świetlny i pytania z nim związane.

Zrobiłeś coś fajnego z wykorzystaniem Arduino? Pochwal się tym!
ODPOWIEDZ
hubertk
Młodszy majsterkowicz
Posty: 16
Rejestracja: 24 paź 2014, 10:50

Kolejny sygnalizator świetlny i pytania z nim związane.

Post autor: hubertk » 18 lis 2014, 22:36

Witam, ja też sam zrobiłem swój sygnalizator świetlny. Jeden sygnalizator dla aut i jeden dla pieszych. Jeśli ktoś chciałby rzucić okiem i skomentować będę wdzięczny. Mam jeden problem tzn po załadowaniu przy pierwszym uruchomieniu nic się nie pali, dopiero po pierwszym załączeniu switcha pętla zaczyna działać. Czy da się ustawić tak, aby od razu po załadowaniu było czerwone dla pieszych i zielone dla aut? Czy zawsze musi być to pierwsze uruchomienie switcha?

Kod: Zaznacz cały

/*Prosta symulacja sygnalizatora świateł uliczych składających się z trzech kolorów
  by Hubert Kubasiewicz
 */

  int zielone = 7;
  int zolte = 6;
  int czerwone = 5;
  int zielonep = 10;
  int czerwonep = 9;
  int przycisk = 2;
  unsigned long changeTime;

void setup() {
  
  pinMode(zielone, OUTPUT);
  pinMode(zolte, OUTPUT);
  pinMode(czerwone, OUTPUT);
  pinMode(zielonep, OUTPUT);
  pinMode(czerwonep, OUTPUT);
  pinMode(przycisk, INPUT_PULLUP); // ustawienie przycisku rezystora podciągającego
}

  void loop() { 

  
   int stanprzycisku = digitalRead(przycisk);
 Serial.println(stanprzycisku);
 
 int state = digitalRead(przycisk); 
  
  if (state == LOW && (millis() - changeTime) > 1000) {
  
    digitalWrite(czerwonep, HIGH); // włącza czerwone dla pieszyc
    digitalWrite(zielone, HIGH);   // włącza zielone dla samochodów
    delay(2000);

    
  for (int x=0; x<3; x++)
  {
    digitalWrite(zielone, HIGH);
    delay(300);
    digitalWrite(zielone, LOW);
    delay(300);
  }

  for (int x=0; x<3; x++)
  {
    digitalWrite(czerwonep, HIGH);
    digitalWrite(zolte, HIGH);
    delay(300);
    digitalWrite(czerwonep, LOW);
    digitalWrite(zolte, LOW);
    delay(300);
  }

    digitalWrite(zolte, LOW);
    digitalWrite(czerwone, HIGH);
    digitalWrite(zielonep, HIGH);
    delay(5000);
    
  for (int x=0; x<3; x++)
  {

    digitalWrite(zolte, HIGH);
    digitalWrite(zielonep, HIGH);
    delay(300);
    digitalWrite(zolte, LOW);
    digitalWrite(zielonep, LOW);
    delay(300);    
  }
    
    digitalWrite(zielone, HIGH);
    digitalWrite(czerwonep, HIGH);
    digitalWrite(czerwone, LOW);
    digitalWrite(zielonep, LOW);
  }
 }

Ostatnio zmieniony 19 lis 2014, 09:32 przez hubertk, łącznie zmieniany 1 raz.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


kazzik87
Starszy majsterkowicz
Posty: 441
Rejestracja: 14 lip 2014, 21:54
Lokalizacja: Lublin

Re: Kolejny sygnalizator świetlny i pytania z nim związane.

Post autor: kazzik87 » 18 lis 2014, 23:15

1) Wstaw kod w znaczniki [ code ] [/code]
2) Może tak:

Kod: Zaznacz cały

void setup() {

pinMode(zielone, OUTPUT);
pinMode(zolte, OUTPUT);
pinMode(czerwone, OUTPUT);
pinMode(zielonep, OUTPUT);
pinMode(czerwonep, OUTPUT);
pinMode(przycisk, INPUT_PULLUP); // ustawienie przycisku rezystora podciągającego

digitalWrite(czerwonep, HIGH);     // Dodany kod
digitalWrite(zielone, HIGH);     // Dodany kod
}
---
Jeżeli pomogłem to kliknij "Pomógł".
hubertk
Młodszy majsterkowicz
Posty: 16
Rejestracja: 24 paź 2014, 10:50

Re: Kolejny sygnalizator świetlny i pytania z nim związane.

Post autor: hubertk » 18 lis 2014, 23:41

ojej jakie to było proste, dzięki :) Teraz robię jeszcze modyfikację tzn dodaję wyświetlacz LED 8 , który będzie odliczał np 5 sekund gdy będzie światło zielone dla pieszych. We Włoszech chyba widziałem takie coś w realu...
kazzik87
Starszy majsterkowicz
Posty: 441
Rejestracja: 14 lip 2014, 21:54
Lokalizacja: Lublin

Re: Kolejny sygnalizator świetlny i pytania z nim związane.

Post autor: kazzik87 » 18 lis 2014, 23:54

Jak skończysz to proponuje napisać artykuł i dodać do działu "Zrób to sam" - fajnie by było gdybyś zrobił makietę :-)

A kodu dalej nie dodałeś w znaczniki!
---
Jeżeli pomogłem to kliknij "Pomógł".
ODPOWIEDZ

Strony partnerskie: