Hilfe Ampelsteuerung

Gast #3146741
Hallo

Ich möchte gerne eine Ampelschaltung realisieren mit folgenden Vorgaben:

30 Sekunden vor Startzeit 1 rotes Licht
10 Sekunden vor Startzeit 2 rotes Licht
5 Sekunden vor Startzeit bis Start gelbes Blinklicht (jede Sekunde)
Start: grünes Licht
Nach dem „GO“ Signal: 20 Sekunden freier Start(grünes Licht)
Danach 30 Sekunden bis Neustart

Spannung zwischen 1,5V-24V DC
Lichter SMD-LED's

Hat jemand eine Iddee?

Danke schon mal im Voraus!
Gast
Wenn ich den Schaltplan hätte oder zumindest nen groben Plan dan würde 
ich das schon hinbekommen Problem ist nur das ich im Moment 0 Plan habe 
wie das hinhauen soll;)
Handwerklich besteht kein problem.
AndyT schrieb:
> Wenn ich den Schaltplan hätte oder zumindest nen groben Plan

Oh. Das wird schlecht.
Denn sowas diskret aufzubauen - ok, machbar ist das schon - aber 
eigentlich verdammt aufwändig.
Mit einem µC wärs um einiges einfacher im Aufbau. Allerdings muss man 
das ganze dann auch programmieren. Das ist auf der einen Seite zwar gut 
für den einfachen Aufbau. Auf der anderen Seite aber schlecht, weil noch 
eine Komponente mehr dazu kommt.

> dan würde
> ich das schon hinbekommen Problem ist nur das ich im Moment 0 Plan habe
> wie das hinhauen soll;)

Eine Uhr - und deine Ampel ist ja im weitesten Sinne eine Uhr - hat 
IMMER irgendeine Form eines Schwinggliedes, der einen Takt erzeugt. D.h. 
ohne wirds schon mal nicht gehen.
Und der Rest - nun das sind Takte zählen und je nach Zählerstand 
leuchten andere Leds.
Sieh dir zb das hier mal an
Beitrag "Lauflichtsteuerung"
und stell dir einfach mal vor, dass da einige LED nicht bestückt wären.

Der ganze linke Teil erzeugt den Takt. die beiden 4017 sind Zähler, die 
Taktpulse zählen und je nach Zählerstand geht ein Ausgangspin nach dem 
anderen auf 1. An den Ausgangspins hängen LED. Zb eine rote LED an den 
Pins ....

(Die Sache mit den 2 4017 brauchst du ja so nicht, wohl aber das Prinzip 
um Sekundenpulse zu erzeugen bzw. die Pulse zu zählen ....
Gast
Unter Start(zeit) verstehe ich immer irgendeine Aktion. Z.B. Knopfdruck.
Wie aber lässt sich: "30 Sekunden vor Start" erfassen?
Oder soll das System automatisch, zyklisch (30/10/5)s + 20s + 30s 
laufen.
Was soll eigentlich in den 20 Sekunden passieren? Nur Grünlicht?
amateur schrieb:
> Unter Start(zeit) verstehe ich immer irgendeine Aktion. Z.B. Knopfdruck.
> Wie aber lässt sich: "30 Sekunden vor Start" erfassen?

Ich denke die ganze Beschreibung sollte auf
"der Ablauf beginnt mit einem Knopfdruck"
umgemodelt werden.

Knopfdruck -> Zeit beginnt zu laufen  1 LED leuchtet
20 Sekunden später: eine 2.te LED leuchtet
wieder 5 Sekunden später: rote LED aus, dafür gelbe LED ein
1 Sekunde später: gelbe LED aus
1 Sekunde später: gelbe LED ein
....

Es sei denn, die Startzeit muss eine ganz bestimmte Realzeit sein. Dann 
wirds allerdings wirklich aufwändig und ohne µC würde ich da nichts mehr 
tun.
Gast
Man sollte einen Knopf drücken um das ganze zu starten und danach sollte 
der Vorgang wie in einer Endlosschleife immer wieder durchlaufen werden 
bis man einen anderen Knopf für Reset drückt
und ja in den 20 Sekunden sollte das grüne Licht weiter leuchten
Karl Heinz Buchegger schrieb:
> AndyT schrieb:
>> Man sollte einen Knopf drücken um das ganze zu starten und danach sollte
>> der Vorgang wie in einer Endlosschleife immer wieder durchlaufen werden
>> bis man einen anderen Knopf für Reset drückt
>
> Ah. Ok
>
> Na ja. Das ist ja dann im Prinzip nur ein etwas seltsameres 'Lauflicht'.

Allerdings eines mit 95 'Stufen', wobei natürlich viele Stufen dieselbe 
LED leuchten lassen. Aber Wired-Or mit Dioden ist ja schon erfunden. Mit 
den beiden 4017 aus dem Link wärst du zb dabei (wenn die 30 Sekunden 
Pause auch 35 Sekunden sein dürfen um in Summe auf 100 Sekunden zu 
kommen)

Ob der 555 jetzt allerdings einen 1-Sekunden Takt erzeugt .... müsste 
man nahrechnen.

Beitrag "Lauflichtsteuerung"
Gast
Du benötigt eine Sekundenauflösung und 95 Gesamtsekunden und 5 Ausgänge 
(4 LEDs und 1 Reset für den Zähler). Da die Decodierung, welcher Ausgang 
wann aktiv sein soll aufwändig ist, schlage ich keinen Mikrocontroller 
vor den man programmieren müsste, sondern einen NE555 als Taktgeber 
einen 74HC393 als rücksetzbaren 8 bit Zähler, und ein EPROM  als 
Zuordnung welcher Ausgang bei welcher Zählsekunde aktiv sein soll. Das 
EPROM muss man zwar auch programmieren,aber braucht dazu keine 
Programmiersprache zu erlernen. Wahlweise lässt sich Zähler und 
Decodierung auch in einem GAL22V10 realisieren (allerdings werden die 
wieder in einer Formelsprache programmirrt, sind also nicht so viel 
einfacher als ein uC der dann auch noch den Taktgeber ersetzen würde.
1
void main(void)
2
{
3
   uint8_t i,j;
4
   DDRB=0x0f;
5
   while(1) for(i=0;i<190;i++)
6
   {
7
     PORTB=(i<60;2;0)
8
       |(i<80;1;0)
9
       |(80<i&&i<90&&(i&1)==0;4;0)
10
       |(90<i&&i<130;8;0);
11
    for(j=0;j<50;j++) _delay_ms(10);
12
    }
13
}
Das wäre übrigens das Programm für einen Atmega8 in C.
Gast
Dann böte sich ein modifiziertes Lauflicht im Sekundentakt an.
Led1  0 bis  29 und 50 bis 79 Sekunden.
Led2 20 bis  29 Sekunden.
Led3 25, 27, 29 Sekunde.
Led4 31 bis  49 Sekunden.
Oder so.
amateur schrieb:
> Dann böte sich ein modifiziertes Lauflicht im Sekundentakt an.
> Led1  0 bis  29 und 50 bis 79 Sekunden.
> Led2 20 bis  29 Sekunden.
> Led3 25, 27, 29 Sekunde.
> Led4 31 bis  49 Sekunden.
> Oder so.

Die erste roe soll von beginn an leuchten dan die zweite rote dazu und 
sobald die gelbe zu blinken begind solten die beiden aufhören zu 
leuchten
wenn die grüne an geht sollte die gelbe nicht mer leuchtn und danach die 
grüne auch(nach gewisser zeit) und das genze beginnt von vorne
also nicht ganz richtig
Andreas Tippelt schrieb:
> amateur schrieb:
>> Dann böte sich ein modifiziertes Lauflicht im Sekundentakt an.
>> Led1  0 bis  29 und 50 bis 79 Sekunden.
>> Led2 20 bis  29 Sekunden.
>> Led3 25, 27, 29 Sekunde.
>> Led4 31 bis  49 Sekunden.
>> Oder so.
>
> Die erste roe soll von beginn an leuchten dan die zweite rote dazu und
> sobald die gelbe zu blinken begind solten die beiden aufhören zu
> leuchten
> wenn die grüne an geht sollte die gelbe nicht mer leuchtn und danach die
> grüne auch(nach gewisser zeit) und das genze beginnt von vorne
> also nicht ganz richtig

Na ja.
Ein bischen Arbeit soll ja für dich auch noch bleiben, so du denn 
wirklilch diskret aufbaust.
Gast
Sorry, das habe ich anders verstanden!

30 Sek vor Start Led1
10 Sek vor Start Led2
 5 Sek vor Start Led3

alles aus (Start)

20 Sek Led4

aus

30 Sek. Led1
... und weil's so schön war nochmal.
Gast
Warum nicht ein <rotesTuch> Arduino </rotesTuch> ?
Der hat genug IOs für LEDs, einfach mit Vorwiderstand ran. Tastereingang 
ebenso.
Das Programm ist in einer Stunde geschrieben.
Aufwand: 30 Euro Material, 1 Stunde Löten, 1 Stunde Programmieren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.