LED Ausgabe am I2C Portexpander

Jetzt wage ich mich einfach einmal daran selbst eine Hardware zu Entwickeln und dann zu Programmieren. Eine Ausgabe auf LED’s soll es werden. Also acht LED’s in einer Reihe, die einzeln angesteuert werden können.

Die Hardware
Ausgehend von einem Arduino Uno kommen noch
– ein I2C Display Treiber mit einem PCF8574 Chip
– ein Darlington Treiber ULN2803
– Acht LED’s plus Vorwiderstand

Der Prototyp Stufe 1
Zusammengesteckt auf einem Breadboard funktioniert die Schaltung schon ganz gut. Da P3 über einen Transistor geschaltet wird, invertiert das Signal. Um auch einen Highlevel erreichen zu können, schalte ich noch einen 10KOhm Widerstand zwischen +5V und dem Pin16 in den Kollektorzweig vom Transistor auf dem I2C Board. Das gibt dann ca. 0,5 mA von Pin16 für den Eingang des Darlington Treibers und sollte zum Durchschalten ausreichen. Alle anderen haben den Eingangswiderstand des Darlington Treibers und liegen damit bei ca. 2 mA. Das Beispielprogramm mit dem ‚Walking Pattern‘ läuft, wenn ich die Ausgabe für P3 invertiere. Dafür gibt es eine extra Funktion.


Die Schaltung auf dem Breadboard

Die Software
Nun ist die Software dafür dran. Egal ob als Lauflicht, als Balken, oder jede LED individuell soll sie funktionieren.

Der Prototyp Stufe 2
Für den Gebrauch als Modul zum Aufstecken auf den LCD Display Treiber löte ich die ganze Schaltung auf eine Lochrasterplatine.


Die Schaltung auf Lochraster


Unterseite der Lochrasterplatine mit dem I2C Display Treiber

Der Sketch
I2C-LED-Steuerung-8574

Fazit
Diese Schaltung ist speziell für den acht Bit Display Treiber mit dem PCF8574 gestaltet. Benutze ich z.B. einen Display Treiber mit einem MCP23017, dann entfällt der 10 KOhm Widerstand und die Invertierung. Bei einem Keypadshield z.B. von Adafruit kann ich dann zehn Bit nutzen und habe noch fünf Tasten für eine Eingabemöglichkeit.

Links

I2C Display Treiber Schematic
https://www.sunrom.com/m/4585

Achtfach Darlington Array Datasheet ULN2803

Klicke, um auf uln2801a.pdf zuzugreifen

Beispielprogramm und Schematic

Arduino and a PCF8574 expander

Prototyping
Prototyping mit dem Arduino

Keypadshield als Portexpander
Ein Keypadshield als Portexpander am Digispark nutzen

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.