|
|
Der Arduino ist eine
sehr beliebte und weit verbreitete Controller-Plattform.
Auch beim RoboCup sind immer wieder Roboter zu finden, die von
einem Arduino gesteuert werden.
|
|
|
Die Arduino-Boards haben auch eine I2C-Schnittstelle.
Damit man sie mit meinen I2C-Erweiterungen aus
Martin's Bastelstube, Teil X
verbinden kann, braucht man einen kleinen Adapter.
Ältere Arduino-Boards
(wie z.B. der Arduino Uno)
haben die I2C-Signale auf den Analog-Anschlüssen:
Neuere Boards haben neben dem Kontakt für AREF einen verlängerten Stecker mit den I2C-Signalen.
Diese Extra-Kontakte sind eingeführt worden, weil es auch Arduino-Boards mit größeren
Mikrocontrollern gibt, bei denen die I2C-Signale nicht mehr auf den analogen Eingängen liegen
(wie z.B. beim Arduino Due
oder dem Arduino Leonardo).
I2C-Adapter für Arduino, Version 1
Dieser Adapter funktioniert mit älteren Versionen des
Arduino Uno
und anderen Boards, bei denen die I2C-Signale auf den Analog-Anschlüssen
A4 / A5 liegen.
Die Platine ist sehr schmal (nur 48 x 14 mm), weil die zwei benötigten
Steckerleisten zum Arduino in einer Reihe liegen.
Die Versorgung der I2C-Schaltung wird aus dem Arduino gezogen.
Mit einer Steckbrücke (Jumper) kann man auswählen, ob die
I2C-Schaltung mit +5V oder mit der Eingangsspannung
aus dem Arduino-Netzteil gespeist wird.
Wenn eure I2C-Schaltung direkt aus den +5V gespeist wird, darf sie nicht
zuviel Strom verbrauchen – sonst wird der Spannungsregler
auf dem Arduino-Board überlastet.
Wie sieht denn der I2C-Adapter für Arduino (Version 1) überhaupt aus?
I2C-Adapter für Arduino, Version 2
Dieser Adapter funktioniert mit neueren Boards wie dem Arduino Uno R3 oder dem Arduino Leonardo.
Allerdings nicht mit dem Arduino Due – der läuft mit 3.3V Spannung, da muss man
erstmal einen Pegelwandler dazwischen schalten – dafür habe ich die Version 2b
gebaut.
Weil die zwei benötigten Steckerleisten zum Arduino weit auseinander liegen, ergibt sich eine
große Platinenfläche. Ich habe darauf erstmal nichts Besonderes untergebracht.
I2C-Adapter für Arduino, Version 2a für Arduino mit 5V GPIO-Spannung:
I2C-Adapter für Arduino, Version 2b für Arduino mit 3.3V GPIO-Spannung:
I2C-Adapter für Arduino, Version 3
Dieser Adapter ist über Steckbrücken (Jumper) umschaltbar, damit er auf allen Arduino-Boards eingesetzt werden kann.
Auf der großen Platinenfläche zwischen den Steckern habe ich gleich eine Lochrasterfläche untergebracht.
Wer genau hinschaut, wird das I2C-Experimentierboard aus
Martin's Bastelstube, Teil X
wiedererkennen. Selbst wenn man das Lochrasterfeld nicht braucht, sind die äußeren Montagebohrungen
hilfreich, um in der dritten Ebene eine I2C-Platine auf dem Adapter zu befestigen.
Benutzung der Steckbrücken:
Jumper |
1 - 2 |
2 - 3 |
|
JP2 |
+5V |
+Vin |
I2C Spannungsversorgung |
JP3 + JP4 |
Digital Port (J3) |
Analog Port (J2) |
I2C Signal zum Arduino |
Wenn man das ganze Board (und das, was vielleicht noch am I2C-Stecker angeschlossen wird)
direkt aus dem Arduino versorgen will, kann man den Spannungsregler IC1 weglassen und muss
dafür Jumper JP5 verbinden. Dabei muss man aber (wie oben schon erwähnt)
aufpassen, dass der Spannungsregler auf dem Arduino-Board nicht überlastet wird
– schließlich muss der dann die ganze Arbeit übernehmen.
Ich empfehle, den Spannungsregler IC1 zu bestücken und dafür Jumper JP5 offen zu
lassen (man kann auch gleich darauf verzichten, die Pins von JP5 einzulöten).
Wem ein Spannungsregler im TO220-Gehäuse zu groß ist, der kann stattdessen
einen kompakten Schaltregler wie den
Traco TSR 1-2450 einbauen.
Diese Teile werden auch nicht so heiß wie ein Linearregler, sind aber deutlich teurer.
Vom Adapter Version 3 gibt es zwei Varianten:
Version 3a hat Montagebohrungen, die zum Arduino passen. Damit kann man den Adapter solide
mit dem Arduino verbinden, falls die Steckkraft der vier Steckerleisten nicht ausreicht.
Version 3b verzichtet auf die Montagebohrungen zum Arduino und hat dafür eine
größere Lochrasterfläche.
I2C-Adapter für Arduino, Version 3:
Tschüß, euer Martin S.
|
E-mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!