Forum: Offtopic Zusatzplatine mit 4x4 Leucht-Tastern für Arduino-Neueinsteiger


von Wassermann E. (wassermann_e)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

nach einer längeren Pause habe ich eine neue Platine entwickelt.
Diesmal habe ich eure Verbesserungsvorschläge berücksichtigt.
Dank der Verwendung des MCP23017 werden jetzt nur noch vier Kabel 
benötigt:
+5V, GND, SDA und SCL. Das vereinfacht die Verdrahtung ungemein.
Siehe Foto.

Die Abmessungen der Platine: 88 x 88 mm.
Die Abmessungen der Leuchtkappen: 15 x 15 mm

Falls jemand Interesse hat mit so einer Zusatzplatine zu 
experimentieren,
dann kann er sie in eBay-Kleinanzeigen bei mir erwerben:

https://www.ebay-kleinanzeigen.de/s-anzeige/4x4-leucht-taster-zusatzplatine-fuer-arduino-neueinsteiger/1182164929-226-944

In Youtube kann man auch ein Demo sehen, wie das ganze in Betrieb 
aussieht:

https://youtu.be/DqNJi0F_67Y

Ich werde nach und nach die anderen Demos auch für diese neue Platine 
umschreiben.

Für Verbesserungsvorschläge bin ich weiterhin offen.

Euer Remigius Miron

von Matthias S. (da_user)


Lesenswert?

Das erste was mir jetzt eingefallen ist:

Warum keine WS2812b od. ähnl. LEDs? ;-)

von Gerald K. (geku)


Lesenswert?

Wassermann E. schrieb:
> nur noch vier Kabel

vier Kabel oder vier Leitungen?

Oder ein Kabel mit vier Leitungen?


https://iwer.info/article/Elektrotechnik/Unterschied-Kabel-und-Leitung/index.html

von Jörg R. (solar77)


Lesenswert?

Wassermann E. schrieb:
> Diesmal habe ich eure Verbesserungsvorschläge berücksichtigt.

Link zum dem dem Thread?

Soll die Platine ein Spiel sein, oder zur Eingabe und Anzeige für Geräte 
dienen?


Was mir auffällt:
- Abblockkondensatoren für die ICs fehlen
- keine Befestigungslöcher vorhanden falls das Teil in eine Frontplatte
  eingebaut werden soll
- durch die Anordnung bzw. Bauart der Buchse könnte das Teil nicht
  kontaktiert werden wenn es in einer Frontplatte verbaut wird
- ich würde auch keine Buchse sondern einen Stecker im 90 Grad Winkel
  für die Kontaktierung verbauen

Die Pullups für den I2C-Bus sitzen vermutlich auf dem uC-Board?

Du könntest die Schaltung und den Code posten?

@Mod, TO
Der Thread wäre in der Rubrik „Projekte & Code“ besser aufgehoben.

: Bearbeitet durch User
von Wassermann E. (wassermann_e)



Lesenswert?

Hallo Jörg,

vielen Dank für deine konstruktiven Fragen.
Mit meiner Aussage, dass ich "eure Verbesserungsvorschläge" 
berücksichtigt habe, habe ich auf meinen Thread vom Juni Bezug genommen.
Der Titel war "Zusatzplatine für Microcontroller-Boards".
Damals habe ich meine inzwischen veraltete Version vorgestellt.

Also meine Zusatzplatine ist eher zum Spielen gedacht.
Ich möchte lediglich dazu beitragen, dass sich noch mehr Leute für die 
Programmierung eines Arduino Boards begeistern. Und ihnen ein 
Hilfsmittel zur Verfügung stellen, wie man die Programmiersprache auf 
spielerische Weise erlernen kann. Ich spreche also gezielt Neueinsteiger 
an, um ihnen den Einstieg zu vereinfachen.
Zumindest hat es mir sehr geholfen die Programmiersprache wieder schnell 
aufzufrischen.
Vor allem mein Demo "Whisker Issue" war eine richtige Herausforderung 
und spannende Aufgabe zugleich.

Selbstverständlich stelle ich hier gerne alle gewünschten Informationen 
zur Verfügung. Der Schaltplan ist kein Geheimnis. Und auch meine 
Demo-Sketche werde ich Interessenten zur Verfügung stellen.
Darauf habe ich aber auch schon in meiner eBay-Kleinanzeige hingewiesen. 
Zumindest auf die Sketche.

Schaltplan und Demo-Sketch habe ich soeben hier an meinen Beitrag 
angehängt. Es war meine Absicht das Board so einfach wie möglich zu 
gestalten. Es soll eigentlich nicht in eine Frontplatte verbaut werden.
Es ist lediglich zum Experimentieren bzw. Spielen gedacht.
Deshalb auch nur die einfach Buchse.
Pullup-Widerstände sind lediglich die in den MCPs internen und werden 
per Befehl im Sketch aktiviert. Bezüglich der Abblockkondensatoren müßte 
ich noch recherchieren, ob die für spielerische Zwecke nötig sind.
Im Grunde besteht meine Platine lediglich aus 16 Taster, die beleuchtet 
werden können. Und um dem Nutzer Kabelsalat zu ersparen, sind die MCPs 
davor geschaltet.

Gruß,
Remigius Miron

von Vlad T. (vlad_tepesch)


Lesenswert?

nettes board.
Die Taster gefallen mir.
Ist das ein Modul? oder ist der Rand selbstgedruckt/gebastelt.
Ist die LED integrierter oder sind die LEDs unter den Schaltern 
positioniert. Hast du einen Artikel-Link zu den Tastern?

Vorschläge/Kritik:
Die fehlende Möglichkeit, das anzubauen, ist klar ein Kritikpunk.
Ich hätte das auch so designt, dass die Buttons auf der einen Seite und 
die Bestückung auf der anderen ist, und das PCB überstehen lassen und 
Befestigungslöcher vorgesehen, in die man ja auch Abstandshalter, 
stecken/schrauben kann, um es auf dem Tisch zum Experimentieren zu 
benutzen.

Falls die Taster so hoch sind, dass auch eine Befestigung trotz der oben 
aufgelöteten ICs möglich wäre, würde es reichen den Conector weiter an 
den Rand zu setzen, damit man auch einen abgewinkelten nehmen kann (und 
ich würde was einreihiges benutzen).

Man könnte noch einen Pin für die Interupt-Leitung verbinden. Wenn man 
den ganz außen an die leiste legt, kann der Benutzer selbst entscheiden, 
ob er eine Leitung mehr anschließen möchte.

Ein gemeinsamer Vorwiderstand für 2 LEDs ist auf jeden Fall mindestens 
unschön.

Ein Problem könnte sein, dass du alle LEDs an einem Chip hängen hast. 
Damit addiert sich im worst-case (alle LEDs an) der Gesamtstrom auf über 
125mA, die der Chip an VDD verkraftet. (schätze mal der 150Ohm 
Widerstand ist für ~ 10mA berechnet)

Du treibst die LEDs active-high. Mit active-low würde der Chip 25mA mehr 
liefern können, immer noch zu wenig für die LEDs.

Man könnte natürlich auch die LEDs und Taster aufteilen. Ein Chp für die 
oberen beiden Reihen, einer für die unteren. Dann wärst du auf jeden 
Fall im Grünen Bereich.


Frage an die Experten:
Könnte man durch geschickte Verschaltung und mittels Open-Drain-Setting 
des Expanders nicht Taster und LED an einen Pin hängen? Dass die LED 
beim drücken dann leuchtet, könnte man als Feature durchgehen lassen ;)
Zum Tastenauslesen, wird halt kurz auf Input umgeschaltet.

von Wassermann E. (wassermann_e)


Angehängte Dateien:

Lesenswert?

Hallo Vlad,

vielen Dank für die sehr fachkundige Auseinandersetzung mit meiner 
Zusatzplatine.

Also die Taster sind einfache Micro-Taster.
Auf diese sind Leuchtkappen von MENTOR aufgesteckt.
Neben den Tastern leuchten beide LEDs die Leuchtkappen an.
Auf dem neuen Foto kann man das am besten sehen.

Bei meiner nächsten Version könnte ich all die Verbesserungsvorschläge 
durchaus einfließen lassen. Aber ich denke auch so kann man mit dieser 
Platine schon einiges anfangen.

Für die LEDs habe ich tatsächlich 10 mA vorgesehen bzw. für zwei 
parallelgeschaltete LEDs ein Gesamtstrom von 20 mA.
Das schränkt die Anwendung aber ein, weil dann tatsächlich nie zu viele 
LEDs gleichzeitig leuchten dürfen, weil dann die 125 mA zulässiger 
Gesamtstrom schnell überschritten werden. Höchstens 6 Taster dürfen 
gleichzeitig leuchten. (20 mA x 6 Pins = 120 mA)
Deshalb ist es sicherer, wenn ich die LEDs nur mit 5 mA betreibe.
Dann muß man sich über die Anzahl der gleichzeitig leuchtenden LEDs 
weniger Sorgen machen.

Der LED-Strom darf aber auch nicht zu klein sein, weil sonst die 
Leuchtkappen zu schwach leuchten. Tatsächlich ist dein Vorschlag, dass 
ein IC für 8 LEDs und 8 Taster zuständig sein sollte ein sehr 
konstruktiver.
Das versuche ich auf jeden Fall bei meiner nächsten Version umzusetzen.
Das wäre mir immer noch lieber als jeden Pin mit einem 
Treiber-Transistor zu versehen, weil zusätzliche Treiber-Transistoren 
die Anzahl der Elektronik-Bauteile wesentlich erhöht und das Handlöten 
dadurch immer aufwändiger wird. Sobald ich das Budget habe meine 
Platinen auch maschinell bestücken zu lassen, können auch mehr 
Elektronik-Bauteile drauf.

Die Frage, ob man LED und Taster an einen Pin hängen könnte?
Ich glaube das würde die Anwendungsmöglichkeiten auch einschränken.
Der Nachteil wäre ja dann, dass beim kurzen Tasterauslesen, die LEDs 
kurz ausgehen würden. Das könnte in vielen Anwendungen durchaus stören.
Aber die Idee ist tatsächlich interessant, weil man dann mit nur zwei 
ICs ein 2 x 16 = 32 LED-Taster-Feld realisieren könnte...

Danke und Gruß,
Remigius Miron

von Vlad T. (vlad_tepesch)


Lesenswert?

Wassermann E. schrieb:
> Für die LEDs habe ich tatsächlich 10 mA vorgesehen bzw. für zwei
> parallelgeschaltete LEDs ein Gesamtstrom von 20 mA.

bist du sicher, dass das stimmt?

Die LEDs werden doch ca 3.6V brauchen, oder?
5V
150Ohm

-> (5V-3.6V)/150Ohm
Macht einen Strom von 10mA durch den Widerstand, also insgesammt.
Wie die sich auf beide LEDs aufteilt, hängt von Fertigungstoleranzen ab.

Du könntest dir natürlich auch "einfach" einen IC suchen, der mehr 
treiben kann.

Für SPI kenne ich den TPIC595, gibt doch bestimmt was ähnliches für I²C

Wassermann E. schrieb:
> Ich glaube das würde die Anwendungsmöglichkeiten auch einschränken.
> Der Nachteil wäre ja dann, dass beim kurzen Tasterauslesen, die LEDs
> kurz ausgehen würden.

Ich bezweifel, dass du das sehen könntest, wenn man alle 5-10 
millisekunden mal umschaltet und die taster ausliest.

von Matthias S. (da_user)


Lesenswert?

Vlad T. schrieb:
> Wassermann E. schrieb:
>> Ich glaube das würde die Anwendungsmöglichkeiten auch einschränken.
>> Der Nachteil wäre ja dann, dass beim kurzen Tasterauslesen, die LEDs
>> kurz ausgehen würden.
>
> Ich bezweifel, dass du das sehen könntest, wenn man alle 5-10
> millisekunden mal umschaltet und die taster ausliest.

Die Platine soll sich ja an Neueinsteiger richten?
Damit fände ich so ein Vorgehen eigentlich zu kompliziert.

von Wassermann E. (wassermann_e)


Lesenswert?

Hallo Vlad,

zu den LEDs:

Ich ging fälschlicherweise davon aus, dass die LEDs nur 2 V brauchen.
Deshalb kam ich beim Vorwiderstand auf einen Strom von:

I = (5V-2V) / 150 Ohm = 3V /150 Ohm = 20 mA bzw. pro LED 10 mA.

Tatsächlich sieht es aber ganz anderes aus.
Ich habe nämlich mal nachgemessen:

Die LEDs haben eine Vorwärtsspannung von 2.8V
Das stimmt auch mit dem Datenblatt überein wo die Vf,min = 2.7V ist.
Siehe Datenblatt zur LWT673-Serie von OSRAM.
Und am I/O-Ausgang des MCP23017 z.B. am Pin21 = GPA0 steht von der 
angelegten Vdd = 5V nur noch 4.4 V zur Verfügung.

D.h. der Strom ist in Wirklichkeit:

I = (4.4V - 2.8V) / 150 Ohm =  10.7 mA bzw. pro LED nur 5.35 mA.

Also kann man noch viel mehr LEDs gleichzeitig betreiben.

Vielleicht wäre es aber trotzdem das beste, wenn es einen IC gäbe, der 
mehr treiben kann. Das werde ich für die nächste Version überprüfen.
Auch den Vorschlag die Taster für paar msec auszulesen werde ich mal 
überdenken. Doch jetzt brauche ich erstmal eine Weihnachtspause.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.