Verkabelung mehrere Buttons an analog-pin(s) (bestehende Schaltung)

Hallo,

ich habe ein Projekt, bei dem ein Arduino im Auto verbaut werden soll.
Ein Teil des Projektes ist die Integration der Lenkradfernbedienung.
Ich hoffe man kann mir hier einen Tip geben, wie ich das am besten anschließen sollte.

Die LFB hat 3 Kontakte:

  • Signal 1 (14)
  • Signal 2 (15)
  • Ground (17)

Im folgenden ein Schaltbild:

Gehe ich recht in der Annahme, dass ich 2 Analog-pins benötige und dann einfach...

  • 14 an einen Analog-Pin (LOW)
  • 15 an einen Analog-Pin (LOW)
  • 17 an +5V

anschließen muss?

Dann sollte ich ja in der Lage sein, die passenden spannungen abzulesen.

Vielen Dank für euer Feedback!

Viele Grüße
Freddi

Ja, geht.
Wenn Du noch einen Pulldown Widerstand
an die Eingänge machst. Sonst misst du immer
annähernd 5 V.
(ich hätte es jetzt mit 4.7k probiert)

Stefan

Ja, geht.
Wenn Du noch einen Pulldown Widerstand
an die Eingänge machst. Sonst misst du immer
annähernd 5 V.
(ich hätte es jetzt mit 4.7k probiert)

Bei einem Pulldown misst du immer 0V.
Ich würde eher einen Pullup nehmen und den mit ca. 330 Ohm.

Wäre es dann machbar, die internen Pullup Widerstände zu verwenden?

Sprich:

  • 14 an einen Analog-Pin (INPUT_PULLUP)
  • 15 an einen Analog-Pin (INPUT_PULLUP)
  • 17 an GND

Dann müsste ich ja ein invertiertes Signal erhalten, oder?
Oder hab ich da was falsch verstanden?

(Es wäre super, wenn es ohne zusätzliche Bauteile machbar wäre.)

Wäre es dann machbar, die internen Pullup Widerstände zu verwenden?

Rechne es dir doch einfach aus....

Die internen Pullup haben so ca 20 bis 50 KOhm.
Je nach Exemplarstreuung und Temperatur

Wäre es dann machbar, die internen Pullup Widerstände zu verwenden?

Die internen Pullup's sind zu ungenau und zu hochohmig (20k - 50k)

Dann müsste ich ja ein invertiertes Signal erhalten, oder?
Oder hab ich da was falsch verstanden?

An dem jeweiligen Widerstand der LFB fällt eine Spannung ab, die du mit dem Analogeingang misst.

(Es wäre super, wenn es ohne zusätzliche Bauteile machbar wäre.)

Das sind gerade 2 Widerstände.

Probier es mit den internen Pullups aus, du könntest ja auch gegen 1.1V messen,
wenn die Ergebinisse bei 5V zu nahe beieinander liegen.

Wirkliche Präzision brauchst du nicht um ein paar Tasten auseinanderhalten zu können.

Kannst du einen Link auf das Bedienelement posten?

und frage auf Wertebereiche ab, nicht auf feste Werte.
Intelligent programmiert geht das in einer switch case mit einfacher Abfrage auf den Grenzwert.

Danke für die vielen Antworten!

ardubu:
Die internen Pullup's sind zu ungenau und zu hochohmig (20k - 50k)An dem jeweiligen Widerstand der LFB fällt eine Spannung ab, die du mit dem Analogeingang misst.

Das Grundprinzip ist klar. Ich kenne mich halt mit den "Eigenheiten" der Elektronik nicht aus. Dinge wie Pullup / Pulldown kenne ich zwar, aber die Effekte von Komponenten sowie Wechselwirkungen und Nebeneffekte in einer Schaltung sind komplettes Neuland für mich. Deshalb meine Fragen.

ardubu:
Das sind gerade 2 Widerstände.

Mein Bedürfnis, das ohne weitere Bauteile zu erledigen ist, dass ich eben im Auto möglichst wenig verlötetes Zeug haben will (Vibrationen).
Ok ich weiß auch nicht woher ich die Widerstände günstig bekomme bzw. wollte ich nicht ein riesen Set kaufen, wenn ich nur 2 benötige.

Whandall:
Probier es mit den internen Pullups aus, du könntest ja auch gegen 1.1V messen,
wenn die Ergebinisse bei 5V zu nahe beieinander liegen.
Wirkliche Präzision brauchst du nicht um ein paar Tasten auseinanderhalten zu können.

Jo das wird definitiv in Wertebereichen gemessen. Dazu ist schon Code vorhanden. Außerdem lassen sich die Wertebereiche extern kalibrieren (Der Arduino ist über USB an ein Android angebunden. Eine App erlaubt die Konfiguration der Grenzwerte).

Ich habe im Troubleshooting Bereich des Service-Handbuchs gelesen, dass die LFB vom Radio gegen 5V gemessen wird. Es stehen sogar die Ausgangsspannungen in besagtem Handbuch. Aber das bringt ja natürlich nur was, wenn man die Schaltung im Radio kennt.

Whandall:
Kannst du einen Link auf das Bedienelement posten?

Einen Link hab ich nicht ... es handelt sich um eine Lenkradfernbedienung in einem Nissan 370z.
Oben hab ich ja schon ein Bild von der internen Schaltung gepostet. Hier ist noch eins vom Anschlussschema:

Die drei kabel gehen direkt ins Autoradio, da hört dann leider meine Spur auf.
Ansonsten kann ich Dir höchstens ein Bild vom Lenkrad machen :smiley:

ElEspanol:
und frage auf Wertebereiche ab, nicht auf feste Werte.
Intelligent programmiert geht das in einer switch case mit einfacher Abfrage auf den Grenzwert.

Danke, das ist schon alles besorgt. Bin Software-Entwickler mit vielen Jahren Erfahrung und habe schon ähnlichen Code in (u.A.) C geschrieben. Lediglich die Elektronik selbst ist "neu" für mich.


Ich hatte gehofft, jemand kann mich in die richtige Richtung schubsen, damit ich nicht viel im Auto rumprobieren muss. Ich kann nicht das Lenkrad ausbauen, um außerhalb vom Auto Tests zu machen und wollte das stundenlange im Auto rumklettern verringern. Vielleicht war ich da etwas zu Naiv. :smiley:

ardubu:
Bei einem Pulldown misst du immer 0V.
Ich würde eher einen Pullup nehmen und den mit ca. 330 Ohm.

Begreif ich nicht :confused:
Er schrieb doch, er wolle mit +5V auf die
Konstruktion gehen ?
Dann braucht er doch nen Pulldown?

Stefan

rampage-128:
Die drei kabel gehen direkt ins Autoradio, da hört dann leider meine Spur auf.

Über Schleifringe?

Oder hast du ein Autoradio im Lenkrad?

Whandall:
Über Schleifringe?

Oder hast du ein Autoradio im Lenkrad?

In meinem letzten Bild steht doch "Spiral Cable" ... So funktioniert das auch in jedem Auto, in dem die Tasten im Lenkrad sind ... Es befindet sich ein Spiralkabel in der Verkleidung der Lenksäule, welches sich bis zum Maximaleinschlag des Lenkrads in beide Richtungen verdrehen lässt.
Im ersten Bild hab ich das der Einfachheit halber weggelassen. Und aus dem Spiralkabel gehen die drei Drähte in den Stecker, der ins Radio geht. An diesem Stecker hängt nun mein Tablet und mein Arduino.

Sorry, wenn ich das hätte sehen/lesen können.

Danke für die Info.

rampage-128:
In meinem letzten Bild steht doch "Spiral Cable" ...

Warum postest du auch nicht die Bilder gleich hier im Forum.
Die sind besser lesbar und "frei von Werbung".

Ich verstehe nicht. Nach einem Klick sehe ich das Bild in groß und kann alles bestens sehen/lesen. Funktionieren die verlinkten Bilder bei euch nicht?

Die bilder liegen auf imgur ... ist eigentlich ein beliebter und bekannter hosting-service. Ich wusste auch ehrlich gesagt nichtmal, dass dort Werbung kommt? Muss ich gleich mal ohne Adblocker testen.

rampage-128:
Ich verstehe nicht. Nach einem Klick sehe ich das Bild in groß und kann alles bestens sehen/lesen. Funktionieren die verlinkten Bilder bei euch nicht?

Doch, aber man kann sie auch gleich hier auf den Server packen, dann bleiben sie auch. Leider umständlich.

sBvcgOR.png

StefanBoth:
Er schrieb doch, er wolle mit +5V auf die Konstruktion gehen ?
Dann braucht er doch nen Pulldown?

Ich stimme Dir zu! Wenn an 17 die +5V anliegen, dann braucht man eine andere Spannung an 14 und 15, sonst fließt kein Strom. Und ohne Strom kein Spannungsabfall, den man messen könnte. Da bleibt nur ein Widerstand gegen GND. Wenn ich mich nicht verrechnet habe (bitte nachrechnen!), wären 560 Ohm ganz gut:

Widerstand Strom Spannung
 560 0,0089 5,00
 121 0,0073 4,11
 200 0,0057 3,18
 402 0,0039 2,18
1300 0,0019 1,08

rampage-128:
Mein Bedürfnis, das ohne weitere Bauteile zu erledigen ist, dass ich eben im Auto möglichst wenig verlötetes Zeug haben will (Vibrationen).

Diese Argumentation kann ich nicht nachvollziehen, da auch der Arduino (welchen verwendest Du?) mit Strom und Kabeln versorgt werden muß. Wie willst Du das bewerkstelligen?

agmue:
[...]Wenn an 17 die +5V anliegen, dann braucht man eine andere Spannung an 14 und 15, sonst fließt kein Strom. Und ohne Strom kein Spannungsabfall, den man messen könnte. Da bleibt nur ein Widerstand gegen GND.

Du sagst "wenn an 17 die +5V anliegen". Gibt es denn noch einen anderen Weg das anzuschließen?

agmue:
Wenn ich mich nicht verrechnet habe (bitte nachrechnen!), wären 560 Ohm ganz gut:

Widerstand Strom Spannung

560 0,0089 5,00
121 0,0073 4,11
200 0,0057 3,18
402 0,0039 2,18
1300 0,0019 1,08

Das klingt doch mal nach was :slight_smile:
Magst Du mir die Rechnung mal erklären?
Wie genau berechnet man das? Ohmsches Gesetz?

agmue:
Diese Argumentation kann ich nicht nachvollziehen, da auch der Arduino (welchen verwendest Du?) mit Strom und Kabeln versorgt werden muß. Wie willst Du das bewerkstelligen?

Wenn es nicht ohne zusätzliche Widerstände geht, dann geht es halt nicht anders ... Das ist ja auch dann ok. Ich weiß es halt nicht besser, deshalb hab ich da nochmal nachgehakt.

Ich erkläre aber trotzdem mal (völlig off-topic) warum:

Es mag vielleicht zu empfindlich erscheinen, aber mir sind schon mehrfach Lötstellen (oder die Kabel unmittelbar davor/dahinter) im Auto gebrochen. Das gilt natürlich nur für "freischwingende" Kabel. Da kann man eben Glück oder Pech haben.

Aktuell verwende ich einen Arduino Nano. Für die angeschlossenen Komponenten (derzeit nur ein MCP2515 via SPI) habe ich mit dem 3D-Drucker passende (abgewinkelte) Stecker gedruckt. Dabei werden die pinne in die Platine gelötet und der Stecker sorgt für eine Verteilung von (Zug-)belastungen. Auf Kabel-Seite sind passende Aderendhülsen verpresst. Die Platine vibriert inklusive solcher Stecker als Ganzes da ist ein Brechen von Lötstellen unwahrscheinlich.

Ich glaube, da hat sich ein Denkfehler
eingeschlichen ?

560R 560R
5V ----=====-------=====------- GND
2,5 V | 2,5 V
|
A0

Stefan

StefanBoth:
Ich glaube, da hat sich ein Denkfehler eingeschlichen ?

Ich mache ständig Fehler, kann hier aber keinen entdecken. Die 560R gegen 5V gibt es nicht.

          R1          R2 
5V  ----=====-------=====-------  GND
                |
                |
                A0

PullDown-Widerstand R2 = 560 Ohm

Keine Taste gedrückt: R1 ist unendlich, über R2 wird A0 verläßlich auf 0V gezogen.
SOURCE gedrückt: R1 = 0 Ohm, A0 = 5V
MENU UP gedrückt: R1 = 121 Ohm, A0 = R2 * 5V / (R1 + R2) = 4,11V
ENTER gedrückt: R1 = 121 + 200 + 402 + 1300 Ohm = 2023 Ohm, A0 = R2 * 5V / (R1 + R2) = 1,08V

Oder?

rampage-128:
Du sagst "wenn an 17 die +5V anliegen". Gibt es denn noch einen anderen Weg das anzuschließen?

Du könntest auch GND mit 17 verbinden, dann brauchst Du einen PullUp-Widerstand an 5V. Die Rechnung bleibt gleich, der Strom fließt nur andersherum. Die internen PullUps taugen nicht, weil zu hochohmig.

rampage-128:
Wie genau berechnet man das? Ohmsches Gesetz?

Genau, Rechnung siehe oben.

rampage-128:
Aktuell verwende ich einen Arduino Nano.

Kalte Lötstellen oder gebrochene Kabel sind bei Vibrationen immer ein Thema, da stimme ich Dir ja zu. Nur wenn Du Kabel an den Nano dran bringst, dann kannst Du am Nano auch noch eine Verbindung zwischen A0 und A1 und GND mittels Widerständen zustande bringen. Und immer wieder grüßt der Schrumpfschlauch.

Noch eine wichtige Ergänzung: Ich kenne die internen Widerstände der Lenksäule nicht. Bitte stelle sicher, daß sie die nötige Wärme abgeben können. An R2: 0,0089A * 5V = 0,0445W

agmue:
Ich mache ständig Fehler, kann hier aber ...

Du übertreibst mal wieder. :smiley:
Hier war ich ein Depp, weil ich die Tabelle falsch gedeutet hatte. Ich ging zwar von einem
Pulldown von 560R aus, und hab dann die
erste Zeile nicht kapiert. (NUR 560.. nix mit
nem weiteren in Reihe) Und auch jetzt erst
begriffen, dass die Schalter "Normally Closed"
sind ? Oder mach ich da den nächsten Denkfehler ?
Ich stell mich dann mal wieder in die Ecke...
1/4 Std. o.k.? Am besten ich stell da nen Stuhl hin... ::slight_smile:

Stefan