
Features
16 digitale Ein- und Ausgänge
Umschaltbare Logikspannung 3,3V oder 5V*
Konfigurierbare Pull-Ups und Interrupts
2

Beschreibung
Mit dem IO-16 Bricklet können Bricks um externe digitale Ein- und Ausgänge (I/Os) erweitert werden.
Das Bricklet besitzt 2x 8 I/O Pins die unabhängig voneinander als Ein- oder Ausgänge konfiguriert werden können.
Jeder Eingang kann zusätzlich einem Pull-Up oder als Interrupt-Quelle konfiguriert werden. Die I/O Spannung kann
manuell zwischen 3,3V und 5V* umgeschaltet werden. Die I/O Pins sind über Schraubklemmen mit zusätzlichen
GND Verbindungen nach außen geführt. Eine zusätzliche Schraubklemme führt die gewählte Spannung nach
außen.
In typischen Anwendungen können Schalter, Taster und LEDs angeschlossen werden.
Technische Spezifikation
Eigenschaft Wert
I/O Pins 16
Stromverbrauch 1mA
I/O Spannung Umschaltbar zwischen 3,3V und 5V*
Maximaler Ausgangsstrom 20mA (pro Ausgang), 125mA (gesamt)
Maximale API Aufrufe** set-port (1kHz), get-port (> 0,25kHz), Callbacks (1kHz)
Abmessungen (B x T x H) 35 x 75 x 14mm (1,38 x 2,95 x 0,55")
Gewicht 30g
* Die maximale Spannung hängt von der Versorgungsspannung des Bricks ab. Wird dieses über USB versorgt, so
kann es sein, dass 5V nicht erreicht werden können. Der Grund für diesen Spannungsabfall um 0,5V sind
Schutzdioden auf den Bricks. Wenn 5V Ausgangsspannung benötigt werden kann der Stapel mit einer zusätzlichen
Stromversorgung, wie der Step-Down Power Supply
** abhängig vom jeweiligen System (Betriebssystem, CPU etc.)
, erweitert werden.
Ressourcen
MCP23017 Datenblatt (Download)
Schaltplan (Download
Umriss und Bohrplan (Download
Quelltexte und Platinenlayout (Download
3D Modell (Online ansehen
)
)
)
| Download: STEP, FreeCAD)
3

Erster Test
Um ein IO-16 Bricklet testen zu können müssen zuerst Brick Daemon und Brick Viewer installiert werden. Brick
Daemon arbeitet als Proxy zwischen der USB Schnittstelle der Bricks und den API Bindings. Brick Viewer kann sich
mit Brick Daemon verbinden, gibt Informationen über die angeschlossenen Bricks und Bricklets aus und ermöglicht
es diese zu testen.
Als nächstes muss das IO-16 Bricklet mittels eines Bricklet Kabels mit einem Brick
Testaufbau ist eine LED über einen Vorwiderstand angeschlossen, mit Anode an Port B Pin 0 und Kathode an
einen GND Pin. Zusätzlich ist noch ein Schiebeschalter angeschlossen der Port A Pin 7 mit GND verbinden kann
(siehe folgendes Bild).
verbunden werden. In unserem
Wenn der Brick per USB an den PC angeschlossen wird sollte einen Moment später im Brick Viewer ein neuer Tab
namens "IO-16 Bricklet" auftauchen. Wähle diesen Tab aus.
4

Hier kann die "Debounce Period" eingestellt werden, dies ist die Entprellperiode für die Interrupt Callbacks. Ein
Beispiel: Wenn die Entprellperiode auf 100 gestellt wird, werden Interrupts maximal alle 100ms ausgelöst. Dies ist
notwendig wenn etwas prellendes (z.B. ein Taster) an das IO-16 Bricklet angeschlossen wird. Der optimale Wert
kann im Brick Viewer ermittelt und dann später im eigenen Programm verwendet werden.
Unter der Einstellung für die Entprellperiode können die einzelnen Pins konfiguriert werden. Jeder Pin kann als
Eingang oder Ausgang betrieben werden. Für Eingangspins kann zusätzlich ein Pull-Up geschaltet werden. Die
aktuelle Konfiguration und der Zustand der Pins ist dann in der Tabelle weiter unten aufgelistet.
Um die LED leuchten zu lassen muss Port B Pin 0 als Ausgang konfiguriert und auf logisch 1 (High) gestellt
werden. Um den Schiebeschalter zu testen muss Port A Pin 7 als Eingang mit Pull-Up konfiguriert werden. Der PullUp ist nötig um einen stabilen Zustand zu erreichen wenn der Schiebeschalter Port A Pin 7 nicht mit GND
verbindet. In der Tabelle sollte sich jetzt der Zustand des Pins ändern wenn der Schiebeschalter umgeschaltet wird.
Wenn kein Schalter oder eine LED zu Hand ist kann auch ein Voltmeter verwendet werden um Änderungen an
Ausgangspins zu messen. Interrupts an Eingangspins können auch mit Hilfe einer Büroklammer erzeugt werden.
Nun kann ein eigenes Programm geschrieben werden. Der Abschnitt Programmierschnittstelle
16 Bricklet und Beispiele in verschiedenen Programmiersprachen auf.
5
listet die API des IO-