treczoks
23.09.2004, 15:09

Ampel-Programmierung


Re: [B]Zu den Details ![/link] von rat am 23. September 2004 09:07:48:


>Der Prozessor ist ein Pic 12F675.
OK, ich habe mir mal die Doku rangezogen. Scheint ja nicht sonderlich schwierig zu sein. Trotzdem habe ich keine Programm, sondern nur ein Schema geschrieben.

Dafür sollte man doch grundsätzlich auch den 12F629 nehmen können. Evtl. ist der sogar billiger als der 12F675. Ich hör mich mal um.

Meine Idee für ein grundsätzliches Design einer Kombi-Ampel (Auto/Fußgänger) wäre eine Konstruktion aus Gleichrichter, Kondensator, PIC12F675/629, ggf. Pullup/Down-Widerstand:

In1 und In2 sind die Versorgungsanschlüsse, gehen in den Gleichrichter, der VCC und GND über den Kondensator an den PIC weitergibt. Gleichzeitig eine Leitung von In1 an GP3 vom PIC, evtl. mit Pullup/Down (Oder hat der PIC in den GPs schon was drin in der Richtung?). GP0->AutoRot, GP1->AutoGelb, GP2->AutoGrün, GP4->FußgängerRot, GP5->FußgängerGrün

Start mit/Wechsel auf In1=VCC und In2=GND -> Autoampel fängt grün an, geht über gelb nach rot, Fußgängerampel wird grün.
Start mit/Wechsel auf In1=GND und In2=VCC -> Fußgängerampel wird rot, Autoampel fängt rot an, geht über rot-gelb nach grün

Ablaufschema:

Reset
GP0-2 Direction auf Output setzen
GP4-5 Direction auf Output setzen
GP3 Low? -> Sprung L3
GP0-2 Data auf 001 (Grün)
GP4-5 Data auf 10 (Rot)
L1: Delay (Subroutine, egal, ob über Timer oder Loop)
GP0-2 Data auf 010 (Gelb)
Delay
GP0-2 Data auf 100 (Rot)
Delay (Evtl 2x)
GP4-5 Data auf 01 (Grün)
L2: GP3 Low? -> Sprung L2
L3: GP0-2 Data auf 100 (Rot)
GP4-5 Data auf 10 (Rot)
Delay
Delay
GP0-2 Data auf 110 (Rot/Gelb)
Delay
GP0-2 Data auf 001 (Grün)
L4: GP3 High? -> Sprung L4
Sprung L1

Und wenn ich das richtig verstanden habe, muss bei er Programmierung noch BODEN auf 1 gesetzt werden, MCLRE auf 0 und FOSCE2:0 auf 100 (Aber das wirst Du sicher besser wissen).

So. Ganz einfach. Wer das nicht verstanden hat, ist selber schuld ;D

mfg, Christian



Gesamter Thread: