Hallo,
um die Lenkradfernsteuerung in meinem Twingo auch mit dem Sony
MEX-N5300BT Autoradio weiternutzen zu können, müssen deren Eingaben
übersetzt werden. Sony und Pioneer haben eine 3,5mm Klinkenbuchse als
Eingang, zwischen Spitze und Schaft liegen 5V an und verschiedene
Widerstände zwischen den beiden lösen am Radio die entsprechenden
Funktionen aus. Zusätzlich kann der mittlere Ring mit dem Schaft
verbunden werden, dies dient als "Shift-Taste" für bestimmte Funktionen.
Ein Arduino Nano übersetzt die Signale der Lenkradfernbedienung und legt
jew. über Optokoppler den entsprechenden Widerstand an. Der Nano wird
über USB vom Zigarettenanzünder mit Strom versorgt, so muss ich mich
nicht um dieses Thema kümmern und es erscheint mir relativ sicher und
einfach.
Die Dioden (und gemessenen Widerstandswerte) habe ich von hier
http://jvde.net/comment/150 übernommen. Auf anderen Seiten sind sie
nicht aufgeführt, aber ich vermute, dass sie auch nicht schaden werden.
Meine Frage bezieht sich auf den Schaltplan: sieht der Profi hier sofort
einen schwerden Fauxpas oder könnte das so funktionieren?
Danke und viele Grüße
Philip
Was sofort auffällt:
Deine Optokoppler werden ohne Vorwiderstände betrieben, das ist
schlecht!
Die Spannungsversorgung für deinen Controller fehlt, das ist schlecht!
(Ohne Spannungsversorgung keine Funktion und Störungen im Boardnetz
müssen eggektiv aufgefangen werden).
Die Eingänge deines Controllers sind nicht geschützt, das würde ich
anders machen. Ansonsten önnte es womöglich funktionieren.
Grüße
Einziges Problem könnte der Spannungsabfall am (Photo-)Transistor
werden, der ist lt. Datenblatt zwar relativ gering (0,12V bei 30 Grad
C), aber es hängt davon ab, wie das Radio die Auswertung macht.
Das hier ist aus dem verlinkten Post:
"For the analogue input, the internal pull-up and the series/external
resistor form a voltage divider which is evaluated by AD-converter. The
nominal thresholds apparently are
17.5/25/32.5/40/47.5/55/62.5/70/77.5/85% of the respective
microcontroller supply (5V in older HUs, 3,3V in newer ones).
To ensure safe operation of the "shift" (ring) functions, it is
recommended to use shottky diodes instead of 1N4148 to reduce the
undesired voltage offset to be able to use the same resistors as for the
equivalent Tip function. Otherwise the resistors need to be lowered due
to the diode's forward voltage."
Okay, also wenn das Radio 3,3V verwendet und die Abstufungen für die
Erkennung der analogen Widerstände jeweils 7,5% sind, dann sind es
jeweils 0,24V. D.h. mit den 0,12V Spannungsabfall am Transistor bist Du
schon an der Grenze zwischen zwei Werten.
Ich bin nicht sicher ob ein Optokoppler für deinen Zweck das richtige
Mittel ist. Der Transistor des Optokopplers hat weder einen
Durchgangswiderstand von 0 Ohm, noch stellt er einen linearen Widerstand
dar. Es wird sich abhängig von Ic eine Spannung Uce einstellen, mit der
du deine Widerstandswerte korrigieren müßtest.
Das wird vermutlich nicht ganz einfach, wenn man auch noch die
Temperaturschwankungen im Auto (Sommer-Winter) mit berücksichtigen muß.
Hallo Philipp,
Ich würde mir mal per I2C steuerbare digitale Widerstände anschauen. Da
kannst du den Wert digital vom Arduino vorgeben lassen und auch noch
steuern ob der ausgang des Digital-Potis an oder aus ist, defaultwerte
gesetzten Wert rücklesen...
Zusätzlich kannst du die Temperatur mit dem Arduino auswerten und
eventuelle Drifts in den Widerstandswerten (Kabelwiderstand,...)
ausgleichen. Auch ist es dann nicht notwendig so ein OK Grab zu bauen.
MfG EGS
Da wär ich vorsichtig. Da fehlt die galv. Trennung, kann sein das der
Radio das nicht mögen tut.
Am Ende hört man immer die Lichtmaschine surren...
Reedrelais wären sinniger. Gibt's auch in winzig.
Also ich habe nochmal in dem verlinkten Post gelesen:
"The wired remote interface is internally composed of a pull-up (10k)
and a series resistor of 1k to the analogue input (Tip) as well as to
the digital input (Ring). I have this information from the circuit
diagram inside the service manual of the DEH-5200-SD."
D.h. aufgrund dieser Beschaltung wird der Strom durch den
Phototransistor nie größer als 5V (3,3V) / (10k+1,2K+1k) = 0,41 (0,27)
mA werden.
Bei diesem geringen Strom wird auch der Spannungsabfall am (Vce(sat)) am
Transistor noch geringer. Leider fehlt dieses Diagramm in dem
Toshiba-Datenblatt vom TPL621. Aber dieses Teil ist eh nicht mehr
empfohlen.
Habe mal bei Reichelt geschaut, der günstigste Optokoppler LTV817 (gibt
es auch als 2-und 4-Kanalversion) sollte sogar ausreichen.
Damit Vce(sat) niedrig bleibt, musst Du den Strom durch die Diode vom
Optokoppler aber eher hoch dimensionieren, also z.B. 20mA (wenn der
Arduino das liefern kann am IO-Pin).
Jens M. schrieb:> Da wär ich vorsichtig. Da fehlt die galv. Trennung, kann sein das> der> Radio das nicht mögen tut.> Am Ende hört man immer die Lichtmaschine surren...>> Reedrelais wären sinniger. Gibt's auch in winzig.
Mach mal halblang,
1. die Fernbedienung von dieser Möhre muss ja an den Arduino ran und die
andere Seite an das Radio.
2. kann man, da die Stromaufnahme des ganzen überschaubar ist, es auch
gleich aus dem Antennen Vcc des Radios speisen. Wozu dann also
galvanisch trennen. Somit hat man auch gleich die Radio internen
Vpeak-Schutzschaltungen dran.
Einfach nen Step-down ran und gut ist. Schlimmer wäre es, wenn die
Fernbedienung noch 12V Bordnetz hat was benötigt wird. Dann braucht
diese Seite ne galvanische Trennung.
Eventuell hat das Autoradio ja auch nen USB ausgang/ 5VDC
Kontakt...warum einfach wenn es auch kompliziert geht. ?
MfG EGS
Da wurde oben gesagt, das die Kiste über den Ziggy versorgt werden soll.
Ziggymasse an Radio-Klinkenmasse macht ziemlich sicher Ärger. Kann sein
von nich, würd ich trotzdem nicht riskieren. BTDT...
Wenn man natürlich das Radio anzapft und zugleich die Lenkerkiste
isolieren kann (oder sichergestellt ist das sie das ist) ist das schon
ok.
Jens M. schrieb:> Stört UCE nicht den Empfang im Radio?Jens M. schrieb:> Da wär ich vorsichtig. Da fehlt die galv. Trennung, kann sein das der> Radio das nicht mögen tut.> Am Ende hört man immer die Lichtmaschine surren...
Das ist bei einem Renault doch völlig egal.
Vielen, vielen Dank für eure Gedanken!
Die fehlenden Vorwiderstände an den Optokopplern und die überflüssige
Diode für den /shift/-Opto habe ich im vorläufigen Schaltbild schonmal
korrigiert.
@EGS
Steuerbare Widerstände fand ich auch sexy, hab es aber eben wegen der
fehlenden galvanischen Trennung verworfen. Die Idee mit der
Temperaturanpassung ist auf jeden Fall was für Version 2, coole Idee!
Beim aktuellen Sommer plane ich erstmal nach Raumtemperatur. =)
Die Stromaufnahme hat mich ziemlich beschäftigt und ich habe mich wie
erwähnt dafür entschieden, eine USB-Buchse aus dem
Zigarettenanzünder-USB-Adapter für den Arduino zu nutzen. So muss ich
nicht in die Autoelektrik eingreifen um da die 12V-Leitung zu kapern,
abzusichern und runterzupegeln. Insofern: ja, warum kompliziert machen?
=)
@Markus M. @Willibald
Der Spannungsabfall durch die Transistoren ist in der Tat nicht so
prickelnd. Das Radio kommt morgen, dann werde ich als erstes messen,
welche Spannung an der Remote-Buchse anliegt. Witzigerweise habe ich für
das Projekt bereits LTV 817 bestellt. Aber natürlich in der 1er-Variante
=)
Der Arduino liefert laut
https://playground.arduino.cc/Main/ArduinoPinCurrentLimitations/ pro Pin
40mA, hier also alles gut..
Ich gehe davon aus, dass ich eh ein bisschen mit den Widerständen
rumprobieren muss. Werde mir das auf einem Steckbrett zurechtstecken und
dann im Auto einfach mal ausprobieren. Es sind ja nicht so viele
Funktionen. Wenn es mit den Optos nicht klappt, werde ich mir Reedrelais
anschauen und die Stromversorgung überdenken.
TLDR:
Ich bin bei der Recherche zum ganzen Vorhaben auch auf einen
Reverse-Engeering-Ansatz gestoßen: Die Widerstandswerte in dem oben
verlinkten Blog wurden durch Trial-and-Error herausgefunden, deshalb
sind sie auch so krumm. Auf https://llg.cubic.org/tools/sonyrm/
(Abschnitt Circuit) und
http://www.riocar.org/Developer_Info/14.html#40 sind die Widerstände aus
einer Sony RM-X2S Fernbedienung entnommen (als Kaskade).
Die Werte weichen von den gemessenen ab, sie sind durchweg ein bisschen
höher aber nah dran. S. Anhang
Danke allen, ich werde es einfach mal testen und berichten--
Philip
Markus M. schrieb:> Problem könnte der Spannungsabfall am (Photo-)Transistor> werden,
Anstatt klassischer Optokoppler würde ich Photo-MOS-Relais einsetzen,
suche nach Panasonic Serie "AQV" oder vergleichbar.
1 Kann man die Widerstände nicht an Portpins gegen Masse schalten
lassen? Original kam die Fernbedienung ja auch ohne galvanische Trennung
aus.
2 Wenn "OFF" auch einschalten können kann und soll, braucht man eine
Standby-Versorgung. Das ist auch easy, der Prozessor schläft bis ein
Tastendruck kommt, darauf aktiviert der einen eigenen Pullup, misst die
Taste aus, gibt sie weiter und schläft dann wieder ein.
Das dass das das !!! schrieb:> Original kam die Fernbedienung ja auch ohne galvanische Trennung> aus.
Weils nur Kabel und Tasten sind, ohne Versorgung.
Sobald irgendwo Masse und +12V ins Spiel kommen muss man aufpassen.
Soo, ich habe ausgiebig getestet und mit den Optokopplern hat es
tatsächlich nicht so toll funktioniert. Die Spannung an der
Remote-Klinkenbuchse am Radio liegt auch leider bei 3,3V. Deshalb habe
ich wie von Jens M vorgeschlagen Reed-Relais in winzig (Comus 5V,
Bauteilnr. 3570-1331-053
https://produktinfo.conrad.com/datenblaetter/1300000-1399999/001300079-da-01-en-REEDRELAIS_5V_10W_3570_1331_051.pdf)
besorgt (Schaltplan im Anhang. Die Relais haben zwischen den Beinchen
jeweils eine Einheit Abstand; die nicht angeschlossenen Beinchen können
also ignoriert werden und sind nur Platzhalter für die Platine)
Prinzipiell funktioniert es, allerdings nur bei Vol-, Seek+ und Seek-.
Daraufhin habe ich wegen möglicher Toleranzen mit den Widerständen
rumgespielt, die anderen Tasten ließen sich aber nicht zur Mitarbeit
überreden.
Habe dann testweise das Multimeter ans Steckbrett angeschlossen (Radio
rausgezogen) um zu schauen, was überhaupt beim Radio ankommt, wenn die
Lenkradfernbedienung auslöst. Es sieht so aus, als ob bei den anderen
als den o.g. Relais die Widerstände deutlich höher liegen, als sie
dürften (mehrere hundert Kiloohm).
Es ist wahrscheinlich ein offensichtlicher Fehler, das Steckbrett habe
ich hundertmal kontrolliert und es erscheint willkürlich. Testweise ein
Relais gewechselt, danach funktionierte Vol- nicht mehr.. sehr
merkwürdig.
Hat jemand eine Idee?
Hubert G. schrieb:> Verwende immer das gleiche Relais das funktioniert und ändere nur den> Widerstand. Dann weisst du schon mal ob der Radio richtig reagiert.
Das Radio hat ja teilweise richtig reagiert, das würde ich ausschließen.
Bei meiner Messung sind jetzt alle Widerstände sehr hoch. Habe nochmal
alles entfernt bis auf ein Relay. Wenn der Widerstand separat gemessen
wird, stimmt der Wert auf dem Multimeter (8,2 kOhm), daran liegts also
nicht. Angeschlossen auf dem Steckbrett wie im Anhang ist der Widerstand
wieder hoch--
Kann es sein, dass es einen Unterschied macht, ob ich mit dem Multimeter
messe (Radio ist ja dann nicht angeschlossen) oder das Radio "misst" (es
liegen dann 3,3V vom Radio an)?
Löte die Verbindungen mal.
Und miss den Widerstand des Kontakts. Evtl. zieht das Relais nicht
richtig an, weil der Arduino nicht genug Strom liefert?
Ich könnte mir auch vorstellen, das Dreck auf den Widerstandsbeinchen
(vom Klebeband) in die Testbrettfedern gekommen ist und nun hast du
schlechte Übergänge.
Das MG misst mit deutlich weniger als 3V...
Jens M. schrieb:> Da wär ich vorsichtig. Da fehlt die galv. Trennung, kann sein das der> Radio das nicht mögen tut.> Am Ende hört man immer die Lichtmaschine surren...>> Reedrelais wären sinniger. Gibt's auch in winzig.
statt Reedrelais würde ich lieber Photomos Relais nehmen AQV252g,
niedriger Einschalt R, galv. getrennt.
Oder I2C Poti mit kleinem Arduino per DC/DC Wandler galv. getrennt von
der 12V PKW Versorgung, Sim1 1205
Philip O. schrieb:> Das Radio hat ja teilweise richtig reagiert, das würde ich ausschließen.> Bei meiner Messung sind jetzt alle Widerstände sehr hoch. Habe nochmal> alles entfernt bis auf ein Relay. Wenn der Widerstand separat gemessen> wird, stimmt der Wert auf dem Multimeter (8,2 kOhm), daran liegts also> nicht. Angeschlossen auf dem Steckbrett wie im Anhang ist der Widerstand> wieder hoch--
Hast du mit dem Multimeter den Widerstand direkt gemessen, oder über den
Relaiskontakt? Wenn du mit dem Multimeter etwas vernünftiges messen
möchtest, muß auf jeden Fall die Verbindung zum Radio getrennt werden.
Ich tippe aber eher, daß das Relais falsch an den Arduino angeschlossen
ist, und die Spulenspannung durch die Diode auf 0,7 Volt begrenzt wird.
Eventuell hast du den Pin1 am Relais falsch interpretiert. Messe doch
mal direkt die Spulenspannung wenn das Relais anziehen soll.
Vielen Dank für eure Anregungen! Ich habe testweise eine
Minimalschaltung mit einem Relais direkt verlötet, gleiches Problem wie
vorher. Anschluss des Relais auch nochmal geprüft, insgesamt ist es ja
keine überaus komplizierte Schaltung.
Das Verlöten hat das Steckbrett als Fehlerquelle ausgeräumt, das Relais
müsste laut Datenblatt gut mit dem Arduino klarkommen, da war ich
überzeugt davon, dass es an der Schaltung einfach nicht liegen kann. Was
blieb noch? Die Software. Es hat sich herausgestellt, dass die Relais
nicht durchgehend beim Betätigen einer Taste auf der Fernbedienung
geschaltet wurden, sondern an- und ausgeschaltet wurden (mit jedem
Programmdurchlauf). Daher kam auch das Fiepen der Relais beim Auslösen,
ich dachte das sei normal. Ist es nicht =)
Jetzt funktioniert auf jeden Fall schonmal die Schaltung und ich kann
die Widerstände endlich richtig am Radio messen--
Die Photomos-Relais habe ich auf jeden Fall in mein Spektrum
aufgenommen, guter Tipp!