simple Ampelsteuerung mit 2 simulierten Ampeln

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten

simple Ampelsteuerung mit 2 simulierten Ampeln

Beitrag von Stefan Rebl am Fr März 04, 2016 11:09 pm

Bei diesem Projekt habe ich 2 Ampeln simuliert.
2 rote und 2 grüne LED´s sollen hierbei als Ampel dienen.

Funktion:
-anfangs startet eine Startsequenz (einfach nur spielerei mit den verwendeten LED´s).
-dann leuchten beide "Ampeln" Rot.
-und ab sofort leuchtet immer abwechselnd eine grüne LED und die passende rote der anderen Ampel.
-zwischen jedem Umschalten von einer grünen LED auf die andere kommt eine "Rotphase".


was gibt´s noch?
-Reset Button
-Betriebsanzeige


was soll in Zukunft ermöglicht werden?
-mehr "Ampeln"
-Orange - wie in echt halt...
-Sensoren für "Stauerkennung"
-ganze Ampelsysteme mit verschiedenen "Kreuzungen" die dann auch noch interargieren sollen



Video zum Projekt:



Code:
int Gruen1 = 12;
int Rot1 = 11;
int Gruen2 = 10;
int Rot2 = 9;
int zeit = 1000;
int start = 0;
int startdelay = 100;    //  legt fest wie schnell die LED´s "hochfahren"
int starthelligkeit = 150;
int betriebshelligkeit = 150;



void setup() {
  // put your setup code here, to run once:
  analogWrite(Gruen1, OUTPUT);
  analogWrite(Rot1, OUTPUT);
  analogWrite(Gruen2, OUTPUT);
  analogWrite(Rot2, OUTPUT);

  //  ####################
  //  ##  Startsequenz  ##
  //  ####################
     for (int start = 0; start<260; start++)
  {
    analogWrite(13,start);
    delay(20);
  }
   for (int Gruen1start = 0; Gruen1start<starthelligkeit; Gruen1start++)
  {
    analogWrite(Gruen1,Gruen1start);
    delay(startdelay);
  }
  for(int Rot1start = 0; Rot1start<starthelligkeit+20; Rot1start++)
  {
    analogWrite(Rot1,Rot1start);
    delay(startdelay);
  }
   for (int Gruen2start = 0; Gruen2start<starthelligkeit; Gruen2start++)
  {
    analogWrite(Gruen2,Gruen2start);
    delay(startdelay);
  }
  for(int Rot2start = 0; Rot2start<starthelligkeit+20; Rot2start++)
  {
    analogWrite(Rot2,Rot2start);
    delay(startdelay);
  }
  delay(zeit);
  analogWrite(Rot1,150);
  analogWrite(Rot2,150);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,0);
  delay(zeit);
  analogWrite(Rot1,0);
  analogWrite(Rot2,0);
  analogWrite(Gruen1,150);
  analogWrite(Gruen2,150);
  delay(zeit);
  analogWrite(Rot1,0);
  analogWrite(Rot2,0);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,0);
  delay(zeit);
  analogWrite(Rot1,150);
  analogWrite(Rot2,150);
  analogWrite(Gruen1,150);
  analogWrite(Gruen2,150);
  delay(zeit);
   for (int Gruen1ende = starthelligkeit; Gruen1ende>0; Gruen1ende--)
  {
    analogWrite(Gruen1,Gruen1ende);
    delay(startdelay);
  }
  for(int Rot1ende = starthelligkeit; Rot1ende>0; Rot1ende--)
  {
    analogWrite(Rot1,Rot1ende);
    delay(startdelay);
  }
   for (int Gruen2ende = starthelligkeit; Gruen2ende>0; Gruen2ende--)
  {
    analogWrite(Gruen2,Gruen2ende);
    delay(startdelay);
  }
  for(int Rot2ende = starthelligkeit; Rot2ende>0; Rot2ende--)
  {
    analogWrite(Rot2,Rot2ende);
    delay(startdelay);
  }
  analogWrite(Rot1,0);
  analogWrite(Rot2,0);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,0);
  delay(200);
  analogWrite(Rot1,150);
  analogWrite(Rot2,150);
  analogWrite(Gruen1,150);
  analogWrite(Gruen2,150);
  delay(200);
  analogWrite(Rot1,0);
  analogWrite(Rot2,0);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,0);
  delay(200);
  analogWrite(Rot1,150);
  analogWrite(Rot2,150);
  analogWrite(Gruen1,150);
  analogWrite(Gruen2,150);
  delay(200);
  analogWrite(Rot1,0);
  analogWrite(Rot2,0);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,0);
  delay(200);
  analogWrite(Rot1,150);
  analogWrite(Rot2,150);
  analogWrite(Gruen1,150);
  analogWrite(Gruen2,150);
  delay(200);
  analogWrite(Rot1,0);
  analogWrite(Rot2,0);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,0);
  delay(600);
  

}

void loop() {
  analogWrite(Rot1,betriebshelligkeit);
  analogWrite(Rot2,betriebshelligkeit);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,0);
  delay(2000);
  analogWrite(Rot1,betriebshelligkeit);
  analogWrite(Rot2,0);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,betriebshelligkeit);
  delay(2000);
  analogWrite(Rot1,betriebshelligkeit);
  analogWrite(Rot2,betriebshelligkeit);
  analogWrite(Gruen1,0);
  analogWrite(Gruen2,0);
  delay(2000);
  analogWrite(Rot1,0);
  analogWrite(Rot2,betriebshelligkeit);
  analogWrite(Gruen1,betriebshelligkeit);
  analogWrite(Gruen2,0);
  delay(2000);
 
  
  

}

Stefan Rebl

Anzahl der Beiträge : 3
Anmeldedatum : 23.02.16

Nach oben Nach unten

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben

- Ähnliche Themen

 
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten