simple Ampelsteuerung mit 2 simulierten Ampeln
Seite 1 von 1
simple Ampelsteuerung mit 2 simulierten Ampeln
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:
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
Seite 1 von 1
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten
|
|