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
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.
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
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.
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
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.
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.
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.