Modell einer Fußgängerampel 

von Hermann Nieder

Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller

 

Der Mikrocontroller auf der Ping-Pong-Platine [1] kann u. a. auch das Modell einer Fußgängerampel [2] ansteuern, wie dies im Bild dargestellt ist.

Die Leuchtdioden des Modells sind jeweils über Vorwiderstände an die Ausgänge der nachfolgenden Schaltung angeschlossen.

Die Ausgänge des I2c-Ics PCF8574 steuern über Vorwiderstände fünf Transistorstufen aus je einem Npn-Transistor und einem PPP-Transistor an. Im Schaltplan ist der Übersichtlichkeit wegen nur eine dieser Stufen dargestellt. Beide Transistoren invertieren das jeweilige Eingangssignal. Am Ausgang von T2 stehen bei High-Pegel etwa 6 V für die jeweilige Leuchtdiode des Ampelmodells an.
Hinweise zum Betrieb des PCF8574 sind z. B. in den Datenblättern des Bausteins zu finden. Außerdem wurde bereits in einem ELO-Beitrag zur Programmierung des Attiny13 [3] in BASCOM AVR die Verwendung solcher Ics behandelt. Damit für die Fußgänger deutlich ist, wann sie auf dem Bürgersteig an der Ampel stehen bleiben sollen oder die Straße überqueren können, wird dies neben der Ansteuerung der Leuchtdioden des Ampelmodells durch den Mikrocontroller zusätzlich auf der Ping-Pong-Platine veranschaulicht.

 

Im Initialisierungsteil des Programmlistings in BASCOM AVR wird u. a. festgelegt, dass Portd.2 Eingang ist, und dass ein Interrupt bei fallender Flanke (Übergang von High-Pegel auf Low-Pegel) an Pin INT0/Portd.2 möglich ist.

...
Sub Initialisierung
...
Ddrd = &B11111010
...
Config Int0 = Falling 'Falling
Enable Int0
On Int0 Int_isr
...


Beim Interrupt INT0 wird das Bit Startb auf 1 gesetzt und anschließend eine erneute Auslösung verhindert.

 

Int_isr:
Startb = 1
Disable Int0
Return

..

 

Am Anfang des Programms wird u. a. nach der Festlegung der Variablen Dat und Startb bestimmt, dass für die Ansteuerung eines I2C-Ics Portb.6 mit Pin SDA und Portb.7 mit dem Anschluss SCL verbunden ist.

 

...
Dim Dat As Byte
Dim Startb As Bit

'Pin 15 = SDA
Config Sda = Portb.6
'Pin 14 = SCL
Config Scl = Portb.7

 

Nach der Initialisierung werden zunächst per Programm alle Portleitungen des I2C_Ics PCF8574 auf 0 gesetzt und danach für die Autos die grüne LED eingeschaltet und für die Fußgänger die rote. Ihnen wird außerdem mit den Leuchtdioden der Ping-Pong-Platine angezeigt, dass sie auf dem Bürgersteig stehen bleiben sollen.

 

Dat = 0
Gosub I2c_write

Startb = 0
Gosub Fug_hlt
Dat = 12
Gosub I2c_write

 

Anschließend wird per Programm ständig überprüft, ob das Bit Startb noch 0 ist, die Fußgänger also noch warten müssen.

 

Do
Beginn:
Enable Int0
If Startb = 0 Then
Gosub Fug_hlt
'Auto grün, Fußgänger rot
Dat = 12
Gosub I2c_write
Goto Beginn
End If

 

 

Download: 1003Ampel.zip


Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller