Ich möchte mir, als zusätzlichen Controller, eine Button Box mit einem Leonardo bauen.
Da ich möglichst viele Knöpfe anschließen möchte, (10 Drucktaster, 4 Kippschalter, 3 Encoder) habe ich den Output der 10 Knöpfe in Reihe Geschaltet, und jeden mit einem 1k Ohm Wiederstand getrennt. Der Output geht dann an einen Analogen Input. Dieser misst die Unterschiede der Spannung. Der Arduino wird so programmiert, dass er bei unterschiedlichen Werten unterschiedliche Tasten an den PC ausgibt.
Die Inputs lasse ich mir über den Seriel Monitor ausgeben.
Ich bekomme zwar unterschiedlichen Input, jedoch überlappen sich die Inputs der Knöpfe teilweise.
Im Regelfall bewegen sich die Inputs in einer gewissen Spanne, manchmal jedoch gibt es Ausschläge in die Spannen der anderen Knöpfe. Würde ich einen Knopf drücken könnte es somit sein das er als benachbarter Knopf erkannt wird.
Ich habe es auch mit weniger Knöpfen versucht, das machte aber auch keinen großen unterschied.
Liegt das nur an den losen Verbindungen des Breadboards oder läuft das generell instabiel?
Output an die Knöpfe sind 5V.
Ich hab den Arduino auch über USB-Hub mit Stromversorgung und direkt mit 12V mit Strom versorgt, bekomme dennoch Schwankungen.
Pulldownresistor mit 10KOhm ist auch angeschlossen.
Bevor ich jetzt alles zusammenlöte wollte ich mich erstmal erkundigen woran es liegen könnte und welche Fehler sich vermeiden lassen.
Das ist mein erster Arduino und bezüglich elektronik besitze höchstens gefährliches Halbwissen.
Steckbretter sind hier eine wirklich gute Fehlerquelle.
Die labberig sitzenden Dupon-Strippen tun Ihres dazu, besser wird's dadurch nicht.
Die Taster sind auch mit Vorsicht zu genießen - etwas weniger Druck und Du hast immer noch einen Widerstand, statt des Kurzschließen von Vdd auf den angrenzenden Widerstand.
Hast Du Dir die Spannungen Mal ausgerechnet, Welche Spannung bei welchem Taster kommen müsste?
Hast Du die Referenz umgestellt? (Hier wäre die Versorgungsspannung als Referenz richtig, ist auch Standard)
Sofern Du mit vielen Digital-Eingängen zufrieden bist, suche Mal nach 'Port-Expander' - Die gibt's als I²C-Slave und können 8 oder 16 I/O bereit stellen, mehrere dieser Expander sind zusammen möglich.
Auch meldet sich der Expander mit einem Interrupt-Pin, wenn sich an Ihm was ändert (müsste in den Einstellungen ... einstellbar ... sein - kA, bisher ohne Interrupt-Pin gearbeitet, aber auch eher selten).
Allerdings wird das mit 10 Tastern schon sehr eng bist fast nicht möglich.
Wobei ich grad noch einen Beitrag gesehen habe, der hier was anderes zeigt.
Der Autor (MicroBahner) der Webseite ist hier auch im Forum aktiv.
Die Taster sind auch mit Vorsicht zu genießen - etwas weniger Druck und Du hast immer noch einen Widerstand, statt des Kurzschließen von Vdd auf den angrenzenden Widerstand.
Ich hab ein Video bei Youtube gefunden das erklärt wie man taster über code "entprellt". Habs mir bis jetzt aber flüchtig angeschaut.
Hast Du Dir die Spannungen Mal ausgerechnet, Welche Spannung bei welchem Taster kommen müsste?
Nein noch nicht, ich würde den Code dann nach den realen Werten anpassen. Werde ich aber mal machen
Hast Du die Referenz umgestellt? (Hier wäre die Versorgungsspannung als Referenz richtig, ist auch Standard)
Wenn du damit die Stromversorgung meinst, hab ich daran nichts verstellt. Ich hab gelesen, dass der Arduino automatisch die Buchse nimmt wenn dort Spannung anliegt.
Sieh dir hier mal ein Beispiel an.
Danke, werd ich machen.
Allerdings wird das mit 10 Tastern schon sehr eng bist fast nicht möglich.
Zur not würde ich den Schaltkreis aufteilen. Also 5 Taster an einen Pin, 5 Taster an einen anderen Pin. Ich könnte mich auch auf insgesamt 8 Knöpfe beschränken.
Fake will ich hier nicht Mal sagen - eher Halbwahrheiten, Die wohl Mal funktioniert haben.
Das hat aber leider Nichts damit zu tun, ob die Schaltung bei Dir funktioniert.
@To
Da Du Dir vorstellen kannst, die Taster auf zwei Pins aufzuteilen, wäre Da nicht der I²C-Port-Expander die Idee schlecht hin?
2 Pins (SDA/SCL, oder A4/A5 auf Uno/Nano) und Du hast 8/16 Digitale I/O (ja, auch Ausgänge).
Die können zwar 'nur' nach GND schalten, Das ist aber nur ein Problem in der Logik des Betrachter.
Wenn Dir diese 8/16 Taster-Eingänge nicht reichen, kann man MEHRERE dieser Port-Expander anschließen - wieder 8 oder 16 mehr.
Man kann auch die 8er und 16er mischen - und wenn man dort an die Grenzen kommt, gibt's noch Multiplexer, womit man diese ganze Armader an Port-Expandern insgesamt 8x aufbauen kann.
Sollte Das immer noch nicht reichen, lassen sich auch mehrere Port-Expander kaskadieren ... so viele Knöpfe, wie wir hier theoretisch zusammen bekommen können, willst Du Dir gar nicht vorstellen ... JEDER davon will verlötet werden
Alles mit zwei Drähten (sofern wir auf die INT-leitungen der Port-Expander verzichten und die Dinger pollen).
Auch wäre hier das Erkennen mehrere gleichzeitig gedrückter Taster kein Problem - bei der R-2R-Reihe schon.
Hast Du Dir die Spannungen Mal ausgerechnet, Welche Spannung bei welchem Taster kommen müsste?
Ich hab bei Tinkercad mal ein Multimeter angeschlossen.
Bei dem 1. Kopf ganz links (siehe Bild im Anhang 1. post) zeigt er mir 2.5V an
Beim 2. Knopf 2.37V
Die Spannung fällt dann stetig ab.
Beim Letzten Knopf sind es dann 455 mV.
Was ich nicht verstehe ist, dass die Spannung abfällt. Die müsste doch steigen. der Pin A0 gibt mir beim 1. Knopf jedenfalls den niedrigsten und beim letzten Knopf den höchsten Wert aus.
Wobei ich grad noch einen Beitrag gesehen habe, der hier was anderes zeigt.
Ich hab das bei Tinkercad mal so nachgebaut. Wenn ich da die Spannung messe zeigt er mir bei jedem Knopf so ca. 4.7V an. Da werd ich wohl irgenwo einen Fehler drin haben.
Da Du Dir vorstellen kannst, die Taster auf zwei Pins aufzuteilen, wäre Da nicht der I²C-Port-Expander die Idee schlecht hin?
Ich werd mich mal darüber informieren, Danke für den Hinweiß
2 Pins (SDA/SCL, oder A4/A5 auf Uno/Nano) und Du hast 8/16 Digitale I/O (ja, auch Ausgänge).
Die können zwar 'nur' nach GND schalten, Das ist aber nur ein Problem in der Logik des Betrachter.
Die Konfiguration der Schaltung der Ausgänge hängt vom verwendeten Port Expander ab. Da Du kein Modell nennst ist die Aussage halbwahr.
zB
MCP23016 hat TTL kompatible Ausgänge mit +/-25mA
MCP23017 hat Ausgänge mit +/- 25mA
MCP23018 hat Open Drain Ausgangspins mit max -25mA.
Grüße Uwe