Hallo, wie es im Betreff steht, hoffe ich, Ihr wisst eine bessere Lösung (bestimmt!). Stehe vor folgender Aufgabe: Ein mechanisches Kinderspielzeug mit 8 Tasten (Bedienfeld einer Supermarkt Waage, siehe Foto) soll einen Arduino steuern (und interessante Aktionen auslösen). 1. Lösung: Der Einbau von 8 kleinen Tastern (Schließer = Schalter mit "normal aus") mit Bohrmaschine und Klebstoff ist möglich - aber etwas aufwendig und im Hinblick auf das Nutzungsverhalten eines Kindes nicht die favorisierte Lösung (dazu sogleich mehr). 2. Lösung: Die vorhandene Mechanik lässt sich mit wenig Aufwand (es reichen ein paar Drähte) dazu nutzen, aus den 8 Tastern Öffner (= Schalter mit "normal an") zu machen. (Schön für ein Kinderspielzeug ist an dieser Lösung auch, dass Tasten nicht ganz heruntergedrückt werden müssen, um eine Aktion auszulösen und dass auch bei starker und unsachgemäßer Beanspruchung keine kleinen Taster von möglicherweise fragwürdiger Qualität kaputtgemacht werden können.) Was ist nun aber die beste Lösung, um das Öffnen eines Schalters am Arduino erkennen zu können? 8 separate Eingänge am Arduino zu nutzen, wäre natürlich möglich aber etwas schade, da mir dann Pins für die Aktionen fehlen, die ich mit den Tasten verknüpft will. Was tun? R2R-Netzwerk (auch Widerstandsnetzwerk genannt) funktioniert bei Öffnern ja leider nicht... (Mehrere gedrückte Schalter gleichzeitig erkennen zu können, wäre schön ist aber nicht notwenig.) Danke Euch schon jetzt für Eure Ideen!
Ich wurde ein PFC-8574 verbauen. Daran die 8 Schalter anschließen (Je Port einer) gegen Masse. Mit den Arduino über i2c Bus den Chip auslesen und was machen.... . ;) Das verbraucht die wenigsten Kabel. Ist jedenfalls die Lösung die ich verbaue. Hinweis : Für den Chip gibt es hier info in der Wiki o.wie man das nennt.
ordne die Taster in einer 3x3 Matrix an. Ist aber auch schon hier behandelt: Beitrag "3x4 Tastenmatrix auslesen"
Warum sollte mit Öffnern nicht alles gehen, was mit Schließern geht?
asdf schrieb: > ordne die Taster in einer 3x3 Matrix an. Ist aber auch schon hier > behandelt: > Beitrag "3x4 Tastenmatrix auslesen" Und wieviele IO-Pins braucht es für eine 3x3 Matrix? 6 Stück. Wenn, dann eher Charliplexing, da kann man mit 4 IOs 12 Taster einlesen, man braucht lediglich noch 12, hier nur 8 Dioden. https://www.mikrocontroller.net/articles/LED-Matrix#Charlieplexing Das geht auch mit Tastern. Ein IO-Expander ala PCF8574 braucht nur 2 IOs für I2C.
A. S. schrieb: > Warum sollte mit Öffnern nicht alles gehen, was mit Schließern geht? So ist es. Einfach diese Idee: https://www.mikrocontroller.net/attachment/368710/Tastaturmatrix_2.PNG in eine mit Öffner verwandeln.
Falk B. schrieb: > Ein IO-Expander ala PCF8574 braucht nur 2 IOs für I2C. Und da das ein Bus ist, sind die nicht wirklich belegt. Da können auch noch andere Mitfahren. z.b. ein 2.ten PCF8574 (nur andere Adresse) und damit dann die Funktionen die der TO will auslösen. Was dann wiederum KEINE Extra Leitungen vom Arduino erfordert. Das war mein Gedanke. Davon abgesehen ist die Programmierung/Abfrage des Chips viel einfacher als ein Schieberegister.
Frank B. schrieb: > Was tun? R2R-Netzwerk (auch Widerstandsnetzwerk genannt) funktioniert > bei Öffnern ja leider nicht... Aber wenn du 8 binär gestufte Widerstände in reihe schaltest geht es. Jeweils von einer Taste Kurzgeschlossen. Keine Taste gedrückt = 0 Ohm Taste 1 = 1 kOhm Taste 2 = 2 kOhm usw. 1+2 = 3 kOhm Also auch Mehrfach Betätigungen erkennbar.
A. S. schrieb: > Warum sollte mit Öffnern nicht alles gehen, was mit Schließern > geht? Oh Mann, weil bei einer Matrixauswertung oder Widerstandsspannungsteiler dann alle Leitungen kurzgeschlossen wären. Die Schaltungsweisen können auch nicht n Tasten gleichzeitig gedrückt auswerten. Unangenehm bei Öffnern ist auch dass bei üblicher Auswertung mit 1 Taster pro Pin dauern der Strom durch die pull ups fliesst, für Batteriebetrieb doof. Schlaumaier schrieb: > Ich wurde ein PFC-8574 verbauen. Dann lieber einen grösseren AVR mit mehr Pins. Es werden nicht nur uC mit 28 pins hergestellt, und das hat seinen Grund, auch andere Leute nutzen manchmal mehr I/Os und Überraschung: die Hersteller liefern das passende. Einer schrieb: > Aber wenn du 8 binär gestufte Widerstände in reihe schaltest geht es. Analogauswertung von Tastern ist immer fehleranfällig. Bei 0V ohne und 4V bei einem Tastendruck geht die Spannung halt mal kurz auch über 2.8V für eine andere Taste. Und wer 2 mal auswertet erwischt die Taste vielleicht schon wieder beim loslassen. Digitalauswertung ist immer besser.
MaWin schrieb: > Analogauswertung von Tastern ist immer fehleranfällig. habe ich an meinen PKW Lenkradtasten nach 4 Jahren auch bemerkt, nur kam ich an die Kontakte zum Putzen. Hier würde ich auch PCF8574(a) vorziehen.
Frank B. schrieb: > Was ist nun aber die beste Lösung, um das Öffnen eines > Schalters am Arduino erkennen zu können? " EINES Schalters" ?! > 8 separate Eingänge am Arduino zu nutzen, wäre natürlich > möglich aber etwas schade, [...] 74HC151.
MaWin schrieb: > Analogauswertung von Tastern ist immer fehleranfällig. Davon kann ich ein Lied singen. Ich musste deswegen in meiner Stereoanlage mehrfach Taster wechseln. Irgendwann habe ich genervt aufgegeben und einen neuen Verstärker gekauft. Frank, offenbar möchtest du die Schrauben als Kontakt benutzen. Ich hätte da bedenken, ob das langfristig zuverlässig funktioniert. Vernünftige Taster haben nicht ohne Grund ein spezielles Material auf den Kontakten.
MaWin schrieb: > Oh Mann, weil bei einer Matrixauswertung oder Widerstandsspannungsteiler > dann alle Leitungen kurzgeschlossen wären. Nicht, wenn man jedem Taster eine Diode spendiert. Aber bei "nur" acht Tastern würde ich sie der Einfachheit halber lieber direkt oder über ein Schieberegister/Port Expander anschließen.
Danke Euch sehr! Die Argumente für PCF8574 haben mich überzeugt. Den 74HC151 merke ich mir mal für ein Projekt, bei dem ich etwas mehr Zeit investieren will. Danke!
MaWin schrieb: >> Warum sollte mit Öffnern nicht alles gehen, was mit Schließern >> geht? > > Oh Mann, weil bei einer Matrixauswertung oder Widerstandsspannungsteiler > dann alle Leitungen kurzgeschlossen wären. > > Die Schaltungsweisen können auch nicht n Tasten gleichzeitig gedrückt > auswerten. > > Unangenehm bei Öffnern ist auch dass bei üblicher Auswertung mit 1 > Taster pro Pin dauern der Strom durch die pull ups fliesst, für > Batteriebetrieb doof. Die Öffner kommen nicht von mir. Widerstandsteiler lassen sich damit genauso aufbauen. Matrix ist möglich, wenn mehr als 2 Tasten gleichzeitig erlaubt sind. Bei 8 Tasten spart eine einfache Matrix aber kaum etwas.
Einer schrieb: > Aber wenn du 8 binär gestufte Widerstände in reihe schaltest geht es. > Jeweils von einer Taste Kurzgeschlossen. > > Keine Taste gedrückt = 0 Ohm > Taste 1 = 1 kOhm > Taste 2 = 2 kOhm > usw. > 1+2 = 3 kOhm > Also auch Mehrfach Betätigungen erkennbar. Jo, das könnte in der Tat gehen, 9 Widerstände, einen für den Spannungsteiler drei Pins und dann voltage referenz. aber man hat halt von ~50 bis ~12kOhm zu überbrücken, dass kann also recht ungenau werden mit nur dem Widerstandsnetzwerk. Ich bin dann auch eher bei egons port-multiplexer.. 50ct chip (bezahlst für die widerstände auch nicht viel weniger) und der drops ist gelutscht 'sid
sid schrieb: > Jo, das könnte in der Tat gehen, > 9 Widerstände, einen für den Spannungsteiler > drei Pins und dann voltage referenz. > aber man hat halt von ~50 bis ~12kOhm zu überbrücken, > dass kann also recht ungenau werden mit nur dem Widerstandsnetzwerk. Klar ist ein Schieberegister oder Portmultiplexer immer einfacher. Und wenn man einen Spannungsteiler macht, dann hat der bei 8 Bit natürlich 256 Stufen, ist also nicht einfach auswertbar. Man würde aber in jedem Fall das so dimensionieren, dass auch wirklich 256 gleichmäßige Stufen entstehen, z.B. mit dem vom TO vorgeschlagenen R2R-Netzwerk.
A. S. schrieb: > z.B. mit dem vom TO vorgeschlagenen R2R-Netzwerk. Dafür brauchst du Taster mit makellos funktionierenden Wechsler-Kontakten.
sid schrieb: > Ich bin dann auch eher bei egons port-multiplexer.. > 50ct chip (bezahlst für die widerstände auch nicht viel weniger) > und der drops ist gelutscht Genau. Und den Chip musst du auch nicht "Einpegeln" bzw. das Risiko eingehen das die mal "unsauber" werden. Wenn ich den Chip auf ein Sockel stecke, kann ich den im ungünstigsten Fall mal eben austauschen. @TO. Es gibt noch wenn gewünscht Ersatzchips mit 16 Anschlüssen, z.b. den PCF8575. Aber leider sind die SMD. Ich kenne keinen Steckbaren Chip mit 16 Ausgängen der Bezahlbar ist. Was bedeutet du musst dir eine Adapter-Platine besorgen wenn du den Chip Steckpins verpassen willst. Kosten aber kaum was die Teile. Und wenn man viel mit Steckboards macht, sind die Gold wert. Ich persönlich bestelle immer min. 2 Chips so das ich einen dann so eine Platine auf Ewig verpassen kann. Wenn du aber kein SMD magst, kannst du ja bis zu 8 Stück PCF8574 nehmen. Via I2C-Bus verbinden. Ist kein Problem. Musst halt nur die Codierungs-Pins unterschiedlich gegen GND ziehen. Ist übrigens bei deiner Konstruktion vielleicht sogar körperlich besser. Was bedeutet du ziehst 4 Kabel zum Steuerchip für die Reaktionen und von dort 4 Kabel weiter zur Tastatur. Die Tastatur bekomme eine eigenen Platine wo dann die Taster da reagieren. Es ist vielleicht sogar möglich die Original-Taster zu verwenden. Einfach die Schraube da auf einen Mikroschalter drücken lassen. Reinste Mechanik. Auf die Weise habe ich meinen TOP-Laptop für 50 Euro bekommen. Da ist nämlich besagte Mechanik einfach schrottig montiert gewesen ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.