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!
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 ....
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.
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
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'.
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"
Ich würde dir die Schaltung gerne zusammenbauen, melde dich hier mal
bitte an und schicke mir eine PM mit deiner email adresse.
Würde das mit einem ATtiny realisieren, ist ja keine Große sache.
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
voidmain(void)
2
{
3
uint8_ti,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.
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.
MaWin schrieb:
Nitpicking:
> PORTB=(i<60;2;0)
PORTB=(i<60?2:0)
die restlichen Detto.
EPROM ist übrigens eine gute Idee. Daran hatte ich noch gar nicht
gedacht.
Karl Heinz Buchegger schrieb:> EPROM ist übrigens eine gute Idee. Daran hatte ich noch gar nicht> gedacht.
Was allerdings auch programmiert werden will.
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.
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.
Martin Kreiner schrieb:> Jetzt weiß ich auch, warum sich hier wer "c-hater" nennt und an anderen> Stellen über kryptischen Code gestöhnt wird.
Man kanns so schreiben, wie MaWin das gemacht hat. Man muss aber nicht!
Man kanns auch deutlich lesbarer schreiben :-)
Karl Heinz Buchegger schrieb:> Man kanns auch deutlich lesbarer schreiben :-)
Ich lach' mich auch über den Versuch schlapp, hier dem unerfahrenen
Threadstarter so "tollen, kompakten" Code zum Fraß vorzuwerfen und dann
nicht mal selbst die kryptische Syntax richtig anwenden können.
Ok, wir driften ab....
Karl Heinz Buchegger schrieb:> Man kanns so schreiben, wie MaWin das gemacht hat. Man muss aber nicht!
Ja, aber nur, wenn man andere bis aufs Blut ärgern will.
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.