Dingens Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 (bearbeitet) Guten tag zusammen.. ich muss für die Schule ne Übungsaufgabe mit Visual Basic machen, d.h. wir sollen bei einer Kreuzung die Ampelschaltung programmieren. An sich ja relativ einfach, ich hab jedoch das Problem, dass ich zu viele Timer hab. Das sind (wenn ich wirklich alle einsetzte bis zu 5-6 Timer pro Strasse , insgesamt dann ca. 20 - 24 Timer... Irgendwie muss es doch möglich sein, mit jeweils einem Timer eine Strasse komplett zu bearbeiten (also erst Fussgängerschalter drücken, dann Auto ampel auf Gelb, dannach rot, dann fussgängerampel auf grün, die dann wieder auf rot, dann Autoampel auf gelb und letzendlich diese wieder auf gruen). Da ja nicht alles gleichzeitig von statten gehen soll, muss es doch ne möglichkeit geben entweder einem timer verschiedene Intervalle zuzuweisen oder es so hinzubiegen, dass er halt wartet bevor er die nächste aktion ausführt.... Ps.: Bin momentan nich sehr bewandert in Visual Basic =) Hier maln Bild der Kreuzung mit Beschriftung der einzelnen Ampeln. Wenn jemand weiterweiß bitte melden =) Bearbeitet 24. Februar 2010 von Dingens Zitieren
MartinSt Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 Meines Erachtens kann man das so pauschal nicht beantworten. Was soll denn laut Aufgabenstellung die Ampelsteuerung insgesamt leisten? Zitieren
Dingens Geschrieben 24. Februar 2010 Autor Geschrieben 24. Februar 2010 insgesamt soll, wenn man auf die "fussgängerschalter" klickt, die ampeln wie im realen Leben geschaltet werden. Soll heißen: dass die Auto Ampeln ca. 5 sekunden gelb, dann nach ca. 5 sekunden rot, dann 5 sekunden später soll dann die Fußgängerampel grün geschaltet werden, nach 7 sekunden wieder rot, dann die Autoampeln wieder gelb und dannach wieder rot geschaltet werden. Wie eine ganz normale Kreuzung soll das alles von statten gehen. Zitieren
MartinSt Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 Definiere mal bitte ganz normale Kreuzung. Mit bzw. ohne separater Ampel für Links- und Rechtsabbieger? Mit bzw. ohne Erkennen wartender Fahrzeuge (Induktionsschleifen)? Zitieren
Dingens Geschrieben 24. Februar 2010 Autor Geschrieben 24. Februar 2010 ohne Abbiegen oder Fahrzeuge, nur wie in der Abbildung dargestellt. Aktiviert wird alles über die Schalter bei jeder Fußgängerampel. Programmiert hab ich bis jetzt noch nicht viel, nur dass wenn man auf die Schalter drückt Timer gestartet werden. Jetzt muss nur noch die zeitliche Abstimmung der Bilderwechsel (z.b. von grün auf gelb und dannach rot) definiert werden. Und da ich keine 24 Timer für jeden einzelnen Schritt verwenden will würd eich mich freuen wenn du da weiterweißt. Zitieren
Klotzkopp Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 Was soll deine Ampelsteuerung eigentlich tun, wenn kein Fußgänger kommt? An einer Kreuzung ohne Fahrzeugkontakte braucht man ja eigentlich keine Schalter für die Fußgängerampel, weil die sowieso Grün werden, wenn die parallel dazu fahrenden Fahrzeuge Grün haben. Zitieren
MartinSt Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 Du solltest mit 2 oder 3 Timern hinkommen, da du ja für die horizontal verlaufende Straße einen Timer und einen 2. Timer für die vertikal verlaufende Straße benötigst. Durch welchen der jeweils 4 Schalter an der horizontalen bzw. vertikalen Straße der Timer gestartet wird, ist doch egal. Den 3. Timer brauchst du dann, um nach einer Grünphase der Fußgänger für eine Mindestzeit den Autoverkehr Grün zu schalten, bevor eine neue Anforderung der Fußgänger erfolgen kann. Zitieren
Dingens Geschrieben 24. Februar 2010 Autor Geschrieben 24. Februar 2010 (bearbeitet) Du solltest mit 2 oder 3 Timern hinkommen, da du ja für die horizontal verlaufende Straße einen Timer und einen 2. Timer für die vertikal verlaufende Straße benötigst. Durch welchen der jeweils 4 Schalter an der horizontalen bzw. vertikalen Straße der Timer gestartet wird, ist doch egal. Den 3. Timer brauchst du dann, um nach einer Grünphase der Fußgänger für eine Mindestzeit den Autoverkehr Grün zu schalten, bevor eine neue Anforderung der Fußgänger erfolgen kann. Nun ja...aber da ja nicht alles direkt von grün auf rot (bei den "Autoampeln") geschaltet werden soll, würde ich gern wissen, wie man einem Timer sagt, dass er warten soll bevor er seine nächste Aktion ausführt.... und @Klotzkopp: Daran hatet ihc noch garnicht gedacht...aber dass will ich dann später selbst versuchen =) Und schonmal danke für Antworten =D Bearbeitet 24. Februar 2010 von Dingens Zitieren
MartinSt Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 Ein Timer hat keine zusätzliche Wartezeit o.ä., er führt nur alle n Millisek. den betreffenden Code aus. Zitieren
Dingens Geschrieben 24. Februar 2010 Autor Geschrieben 24. Februar 2010 Also muss ich doch mit ca. 20 timern arbeiten oder wie versteh ich das? Zitieren
MartinSt Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 Das kann dir so vermutlich keiner sagen. Stell doch mal hier deinen Algorithmus und deine Interaktionsszenarien zur Diskussion. Ich glaube dass diese Aufgabe viuel mehr Nachdenken über die Steuerung verlangst, als du vermutest. Zitieren
Klotzkopp Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 Also muss ich doch mit ca. 20 timern arbeiten oder wie versteh ich das?Nein, ein einziger Timer sollte reichen, wenn du das ordentlich modellierst, z.B. in Form eines endlichen Automaten. Zähl doch mal ab, wieviele Zustände dein ganzes Ampelsystem haben kann. Ich komme mit 8 Stück aus. Zitieren
Dingens Geschrieben 24. Februar 2010 Autor Geschrieben 24. Februar 2010 @Klotzkopp: Ich zähle für Oben und Unten (also wenn amn oben oder unten nen Schalter drückt) 7 Zustände. Zustand 1: Autoampeln (unten und oben rot, Fußgänger links und rechts gruen) Zustand 2: alle rot bis auf AutoAmpeln oben und unten Zustand 3: Links und rechts Autoampeln gelb, rest rot Zustand 4: Gruen für Autos von Links und rechts, ebenso Fußgänger oben und unten Zustand 5: wie 2 Zustand 6: alle autoampeln gleb, fußgänger alle rot Zustand 7:wie 1 ..für die andere Seite wären das dann wohl vermutlich auch 7...hieße insgesamt ca. 10 Timer (wenn ich mache doppelt verwende..) naja...ich werde nochmal alles überdenken, danke schonmal bis hierhin an euch =) Zitieren
Klotzkopp Geschrieben 24. Februar 2010 Geschrieben 24. Februar 2010 Zustand 6: alle autoampeln gleb,Da sind Unfälle programmiert. Zustand 7:wie 1Wenn 1 auf 7 folgt, und beide gleich sind, dann ist das nur ein einziger Zustand. ..für die andere Seite wären das dann wohl vermutlich auch 7...Welche andere Seite? Du hast doch das Gesamtsystem betrachtet. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.