Mehr Anschlüsse mit dem ROBO TX Controller

Dem ROBO TX Controller mehr Ein-/Ausgänge verpassen

Gerät Fischertechnik Robo TX Controller
Thema Port Erweiterung per I2C Bus
Ziel Mehr Eingänge /Ausgänge für LED´s, Schalter etc.
Bauteile Port Expander PCF8574, LED, Widerstände, Lochrasterplatine oder Laborsteckbrett, Verbindungsdrähte
Kosten 5€
Schwierigkeitsgrad mittel

Ein häufiges Problem in der Robotik ist die unzureichende Anzahl der Ein- und Ausgänge. Verfügt die Steuerung oder der Mikrocontroller über einen I2C Bus geht, dies mit entsprechenden Schaltkreisen recht einfach zu lösen.

Der ROBO TX Controller kann seit 2012 I2C ansteuern. Der Arduino, Lego NXT Baustein und diverse Mikrocontroller welche deren Basis sind,  können dies ebenfalls. Ein geeigneter günstiger Baustein dafür ist der Schaltkreis PCF8574.

Der I2C Port Expander PCF8574

Der PCF8574 ist ein sogenannter I/O Port-Expander. Man bekommt in ca. für 1 €. An weiteren Bauteilen braucht man eigentlich nur ein paar Widerstände. Der PCF8574 hat 8 Pins welche man als Ein- oder Ausgänge nutzen kann. Die Kommunikation mit den Controller erfolgt über den I2C Bus.

Der PCF8574 ist eine einfache und günstige Möglichkeit mal den I2C Bus auszuprobieren. Egal ob mit fischertechnik, Lego NXT oder Arduino.

Einsatz des PCF8574 beim ROBO TX Controller

Der PCF8574 wird über die beiden SDA und SDL Ports für die Kommunikation mit dem TX verbunden. Obwohl es eigentlich ein Zweidrahtbus ist, benötigen wir noch eine Masseverbindung. Sollten wir nur ein paar LEDs ansteuern, können wir auch die 5V Betriebsspannung vom TX bekommen.

Adressierung PCF8574

Der PCF8574 hat drei Adresspins (A0..A2). Damit lassen sich maximal 8 Schaltkreise an einem gemeinsamen Bus betreiben. Da jeder über 8  Eingänge /Ausgänge verfügt könnte man damit zum Beispiel 64 LED´s steuern. Im einfachsten Fall setzt man alle Adresspins auf Masse und der Schaltkreis hat die Adresse 20Hex.

 

A2 A1 A0 PCA8574 PCA8574A
0 0 0  20h 38h
0 0 1  21h 39h
0 1 0  22h 3Ah
0 1 1  23h 3Bh
1 0 0  24h 3Ch
1 0 1  25h 3Dh
1 1 0  26h 3Eh
1 1 1  27h 3Fh

Vom PCF8574 existieren verschiedene Ausführungen, erkennbar am Buchstaben nach “PCF8574”. Somit könnte man theoretisch auch mehr als 8 IC pro Bus ansteuern.

Der PCF8574 als Ausgangstreiber

Der PCF8574 hat sogenannte Open Collektor Ausgänge. Diese schaltet im aktiven Zustand den Ausgang nach Masse durch. Im einfachsten Fall kommt an den Ausgang eine LED mit Vorwiderstand gegen die Betriebspannung. Maximal verkraften die Ausgänge 25mA pro Port  bzw. 200 mA in Summe. Ein kleines Leiterplattenrelais könnte man damit schon ansteuern. Für größere Lasten braucht man eine Transistorstufe. Durch den Open Collektor Ausgang könnte man aber auch die Ausgängen an ein einen anderen Spannungspegel legen. Zum Beispiel an die 9Volt der fischertechnik. Die Widerstände müssen dann etwas höher ausfallen.

Bei höherem Strombedarf der I2C Komponenten ist es sowieso notwendig diese aus einer separaten Spannungsquelle mit den benötigten 5 Volt zu betreiben. In diesem Beispiel ist aber die Spannungsversorgung des EXT2 Anschlusses beim TX Controller ausreichend.

Hier noch mal die Anschlussbelegung des TX Controllers:

fischertechnik Robo TX connections

fischertechnik Robo TX connections

 

Portexpander PCF8574 LED Ausgänge

Portexpander PCF8574 LED Ausgänge auf Breadboard
Portexpander PCF8574 LED Ausgänge auf Breadboard

 

Die Ansteuerung des PCF8574 in ROBO Pro

Bei der aktuellen ROBO Pro Version gibt es diverse I2C Bibliotheken.
Ich verwende hier die” IOPort-PCF8574″. Speziell für die Ausgabe reicht die Funktion “I2C-Port Set”. Als erstes prüft man am besten ob die Funktion immer über den Error Zweig verlassen wird. Dann gibt es entweder ein Verkabelungsproblem mit dem Bus oder die Adresse des PCF8574 ist nicht richtig eingestellt. Bitte auch die Pins 1 bis 3 auf entsprechenden Spannungspegel setzen.

ROBO Pro und Portexpander PCF8574 als Ausgangserweiterung bei fischertechnik
ROBO Pro und Portexpander PCF8574 als Ausgangserweiterung bei fischertechnik

Das Programmbeispiel zählt einfach von 0 bis 255 hoch und setzt dem entsprechend die 8 LEDs im Binärcode.

 

Wie man den PCF8574 bei Lego Mindstorms NXT einsetzt, ist hier beschrieben  >>>

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.