Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

bezeichnungenprogramm06.th.jpg

Wenn jemand weiterweiß bitte melden =)

Bearbeitet von Dingens

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.

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.

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.

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.

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 von Dingens

Also muss ich doch mit ca. 20 timern arbeiten oder wie versteh ich das?

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.

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.

@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 =)

Zustand 6: alle autoampeln gleb,
Da sind Unfälle programmiert.

Zustand 7:wie 1
Wenn 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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.