Kurze Einführung:
Es gibt bestimmte Einsatzfälle, bei denen es sich lohnt, statt einer universellen
Lochrasterplatine eine zweckgebundene Platine zu ätzen, bei der dann alle Bauteile
auf einem geau festgelegten Platz stehen.
Hier haben wir zum Beispiel das Problem, die original QFIX Sensor-Stecker im Raster 2.0 mm
anzuschließen – das geht bei einem Lötpunktraster von 2.54 mm schlecht.
Außerdem muss bei einem Chip, das analoge Messungen durchführt, die Spannungsversorgung
sehr zuverlässig, mit möglichst breiten und kurzen Leiterbahnen angeschlossen werden,
um die Störungen im gemessenen Signal so klein zu halten wie es geht.
Na, dann wollen wir mal loslegen ...
I2C-Expander Digital:
Der I2C-Expander Digital bietet 8 weitere digitale Ein-/Ausgänge (Ports) am I2C-Bus an.
Im Gegensatz zu den Digital-Eingängen auf dem Bobby-Board sind alle Anschlüsse
dauernd mit +5 V versorgt, der Power-Pin lässt sich nicht schalten.
Es können maximal 16 Boards gleichzeitig an einem I2C-Bus adressiert werden
(ergibt 128 digitale Ein-/Ausgänge).
Wie sieht denn so ein I2C-Expander Digital überhaupt aus?
Wenn ein Port als Eingang benutzt werden soll, muss das entsprechende Bit vorher mit
HIGH (logisch 1) beschrieben werden. Die Eingangspins werden mit 100 kOhm auf HIGH gezogen,
so dass sie von außen (z.B. zum Erkennen eines geschlossenen Schalters) gegen GND
(Ground = Masse = 0 V) gezogen werden müssen.
Ein auf LOW (logisch 0) geschriebener Ausgang kann bis zu 25 mA Strom ausgeben. Das reicht
aus, um einzelne LEDs (oder Optokoppler) zu betreiben. Trotzdem muss man natürlich einen
strombegrenzenden Widerstand in Reihe schalten!
Die nötigen Programme:
Name |
Verwendung |
kopieren nach |
Bemerkungen |
I2C_PCF8574.h |
Bibliothek-Header |
RobotBuilder\qfix\qfixlib\incl |
Neue Datei |
I2C_PCF8574.cc |
Bibliothek-Funktionen |
RobotBuilder\qfix\qfixlib\src |
I2C-Test_PCF8574.cc |
Testprogramm |
in euer Projekt-Verzeichnis |
Beispiel für Verwendung des PCF8574 |
Die Programme werden ständig verbessert und verändert – es lohnt sich
also, von Zeit zu Zeit nachzuschauen, ob hier eine neue Version liegt.
I2C-Expander Digital mit Treiber 500 mA
Der I2C-Expander Digital kann an seinen Ausgängen maximal 25 mA Strom liefern.
Das reicht gerade eben für eine Leuchtdiode, aber nicht für Glühbirnen,
Motoren oder Relais.
Wenn man höhere Ströme braucht, muss man einen Stromverstärker (auch
"Treiber" genannt) dahinter schalten. Hier habe ich einen 8fach-Treiber
ULN2803
verwendet, der auf jedem Ausgang 500 mA gegen Masse ziehen kann.
Weil man die Ausgänge häufig gemeinsam braucht und nicht alle einzeln,
habe ich sie alle auf einen Stecker gelegt.
Unter Umständen braucht ihr am Spannungsregler einen Kühlkörper
– das hängt davon ab, wieviel Strom eure Verbraucher zusammen ziehen.
I2C-Expander Digital 16bit mit Wannenstecker
Falls man viele digitale Leitungen gleichzeitig braucht, lohnt es sich, alle
Kontakte auf einem Stecker zusammenzufassen. Diese Version des I2C-Expanders Digital
hat gleich 16 Anschlüsse, die an zwei 10poligen Wannensteckern oder einem
26poligen Wannenstecker abgegriffen werden können.
Eine sehr verbreitete Anwendung ist die Ansteuerung von Textdisplays wie bei meinem
Träger für textbasierte LCD-Anzeige,
deshalb habe ich gleich das Potentiometer für die Kontrastspannung auf der
Platine vorgesehen.
Wie sieht denn so ein I2C-Expander Digital 16bit überhaupt aus?
I2C-Expander Analog:
Der I2C-Expander Analog bietet 8 weitere Analog-Eingänge am I2C-Bus an.
Im Gegensatz zu den Analog-Eingängen auf dem Bobby-Board sind alle Anschlüsse
dauernd mit +5 V versorgt, der Power-Pin lässt sich nicht schalten.
Es können maximal 8 Boards gleichzeitig an einem I2C-Bus adressiert werden
(ergibt 64 analoge Eingänge).
Wie sieht denn so ein I2C-Expander Analog überhaupt aus?
Jeder Eingang misst mit 12 Bit Auflösung, gibt also Messwerte zwischen
0 und 4095 zurück. Je nach verwendetem Chip und eingestellter Betriebsart
bekommt man unterschiedliche Messbereiche:
|
RNG = 0 BIP = 0 |
RNG = 0 BIP = 1 |
RNG = 1 BIP = 0 |
RNG = 1 BIP = 1 |
MAX127 |
0.000 V +5.000 V |
-5.000 V +5.000 V |
0.00 V +10.00 V |
-10.00 V +10.00 V |
MAX128 |
0.000 V +2.048 V |
-2.048 V +2.048 V |
0.000 V +4.096 V |
-4.096 V +4.096 V |
Für genaue Spannungsmessungen ohne umständliche Umrechnung bietet sich der
MAX128 in Betriebsart
RNG = 1, BIP = 0 an. Dann bekommt man mit dem Messergebnis
die genaue Eingangsspannung in Millivolt.
Bitte beachten: 12 Bit Auflösung bedeuten nicht automatisch eine entsprechend
hohe Genauigkeit! Je nach Betriebsart, verwendetem Chip und dem Rauschen, das
die Schaltung mit allen Anschlusskabeln aus der Umgebung einfängt, kann die
tatsächlich erreichte Genauigkeit deutlich geringer als 12 Bit sein. Hier
liefert das Datenblatt wertvolle Informationen.
Die Analog-Eingänge sind nur gegen überspannungen bis ±16.5 V geschützt
– ihr müsst selbst dafür sorgen, dass keine noch höheren oder
niedrigeren Spannungen die Chips erreichen!
Die nötigen Programme:
Name |
Verwendung |
kopieren nach |
Bemerkungen |
qfixI2C.h |
Bibliothek-Header |
RobotBuilder\qfix\qfixlib\incl |
Ersetzt vorhandene Datei |
I2C_MAX128.h |
RobotBuilder\qfix\qfixlib\incl |
Neue Datei |
qfixI2C.cc |
Bibliothek-Funktionen |
RobotBuilder\qfix\qfixlib\src |
Ersetzt vorhandene Datei |
I2C_MAX128.cc |
RobotBuilder\qfix\qfixlib\src |
Neue Datei |
I2C-Test_MAX128.cc |
Testprogramm |
in euer Projekt-Verzeichnis |
Beispiel für Verwendung des MAX128 |
Die Programme werden ständig verbessert und verändert – es lohnt sich
also, von Zeit zu Zeit nachzuschauen, ob hier eine neue Version liegt.
|
E-mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!