Ampelsteuerung an einer Kreuzung
-
Hallo Erhard,
was möchtest Du mir damit sagen?
-
lol
-
Das er, genauso wie ich, noch nie was von Abel gehört hat.
Wenn du Windows 98SE und drunter benutzt, kannst du den Parallelport per Asm, Pascal C++ etc ansteuern. Ansonsten brauchst irgendne Windows Api funktion.
Such mal nach RAWWRITE oder ähnlichen Funktionen.
Zum thema parralelport gabs mal ein großes thema. Ich schau mal ob ich es noch finde!Nr1: http://www.programmersheaven.com/zone7/cat402/index.htm
Nr2:[ Dieser Beitrag wurde am 16.06.2003 um 13:20 Uhr von stealth00 editiert. ]
-
nachtrag:
such mal mit der suchfunktion threads mit dem Thema Parallelport.
Findest massig sachen.
Du kannst die Daten über parallelport schicken. Das geht mit C++/ASM/Pascal/WinApi...
dann kaufst du dir bei conrad schalterteile (frag am besten nen E-techniker was man dafür braucht) lötest die zusamen. Per Dioden und IC (glaub ich) müsstest du dann bestimmen das wenn Pin1 0 ist die Ampel 1 licht grün an ist. Wenn pin2 0 ist, ist a1 licht gelb an etc..
Genaueres kann ich dazu auch nicht sagen...
Wird aber nicht das leichteste!
-
Danke für Deine Tipps.
Den Aufbau habe ich schon fertig. Also die ganzen Ampeln und Dioden usw...
Sind eigentlich insgesamt "4" Ampeln die ich zu berücksichtigen habe, weil ich es einfach gleichgeschaltet habe.
Um es einfach kurz zu erkären: Wenn die einen Autos grün haben, also von der Gegenseite und "ich", dann haben halt die Fußgänger rot.
Und die anderen Autos von links und rechts an der Kreuzung haben rot und die Fußgänger dort grün.Programmieren werde ich es definitiv mit Ride (also in Assembler).
Brauche insgesamt 2 Ports, weil ich 10 Bit brauche.
2*Autoampel (6 Bit) + 2*Fußgängerampel (4 Bit) --> 10 BitMeine Funktionstabelle sieht so aus...
rot gelb grün rot grün // Die zweiten rot,grün sind für die Fußgängerampel
1 0 0 0 1
1 1 0 1 0
0 0 1 1 0
0 1 0 1 0
...Sprung zum Anfang...Und die anderen Ampeln müssen halt "negiert" sein, die von der anderen "Kreuzungsseite"
Ich hoffe, das ist bis dahin ok.
So habe ich den code bisher, der aber noch lange nicht fertig ist...
include REG_51.PDF Loop: mov DPTR,#tab mov A,P1 movc a,@A+DPTR SJMP Loop tab: db 1000100b,1101000b,0011000b,0101000b
Wie kann ich am geschicktesten die Zeitverzögerungen beim Schalten einbauen?
Vielen Dank nochmal!
-
Du kannst auch einfach immer 2 Datenpackete schicken, die dann in einem dings zwischenspeichern..
Keine ahnung wie das teil genau hieß aber es gibt ne möglichkeit beliebig viele IC oder sowas hintereinander zuschalten. Dann kannst du 64 Bits schicken und dann die Speicherbänke überprüfen...
-
Sieht bei mir jetzt so aus und wie es aussieht läuft es auch zumindest in der Simulation bei Ride.
include Reg_51.PDF Loop: MOV DPTR,#tab mov a,0 push 0E0h MOVC a,@A+DPTR MOV P1,a pop 0E0h inc a w1: djnz r0,w1 mov r1,#80 w2: djnz r1,w2 push 0E0h movc a,@a+dptr mov P1,a pop 0E0h w3: djnz r0,w3 mov r1,#20 w4: djnz r1,w4 inc a push 0E0h movc a,@a+dptr mov P1,a pop 0E0h w5: djnz r0,w5 mov r1,#80 w6: djnz r1,w6 inc a push 0E0h movc a,@a+dptr mov P1,a pop 0E0h w7: djnz r1,w7 mov r0,#20 w8: djnz r0,w8 SJMP Loop tab: db 00010001b, 00011010b, 00000110b, 00001010b
Jetzt habe ich nur zwei Probleme.
Kann mir jemand sagen wie ich die einzelnen Bitstellen (von der Zustandstabelle) PINs zuweise? Also die Platine durch die ich es steuern will hat PINs 20 bis 40.
Kann mir jemand sagen wie ich das machen kann?
-
2*Autoampel (6 Bit) + 2*Fußgängerampel (4 Bit) --> 10 Bit
Also mindestens für die Fussgänger Ampel kannst du 2 bits sparen.
Man nehme einfach die 2 grünen und die 2 roten zusammen, es ist ja nicht möglich dass auf der einen seite grün ist und auf der anderen Rot.Verwendest du eigentlich einen mikrocontroller oder machst du das jetzt über den parallel port ?
-
Also die Schaltung mit den LEDs usw...ist ganz fertig.
Mache es über den Parallelport.Nur habe ich immer noch das Problem, dass ich nicht weiß, wie ich die einzelnen Bitstellen den PINs zuweise...
Weiß das jemand?
-
?
du weist, welche pins du am paralellport per software auf HI / LO stellst. du weist, an welche pins du deine leds angestöpselt hast (hoffentlich mit vorwiderstand). wo ist jetzt das problem?
-
Die Belegung des Parallel-Ports entnimmst du z.B.
Parallelport(PC) im Hardwarebook.
Mit dem timing etc. ist es wahrscheinlich am einfachsten unter DOS zu realisieren, da kannst du dann einfach den Timer Interupt nutzen, und die Daten auch relativ einfach nach draußen befördern.
Ist es euch freigestellt, womit ihr das realisiert?mfg
-bg-
-
War uns freigestellt.
Ich bin zwar mit dem Projekt nicht fertig geworden, aber mit dem Quelltext schon. Habe es zeitlich nicht mehr hinbekommen das am Modell zu realisieren.
Die Note (punkte) die dabei rausgekommen sind, waren trotzdem für mich sehr zufriedenstellend, auch wenn ich das nicht bis zum Ende fertig bekommen habe mit 2 anderen...