Hallo, ich habe eine Fernbedinung, welche ihre Signale per Funk an den Empfänger schickt. Den Empfänger möchte ich nun gerne mit über eine Universal-Fernbedinung steuern. Diese sendet aber nur IR-Signale. In der originalen Fernbedinung ist eine kleine Platine verbaut, welche über einen Folienverbinder mit der Tastenmatrix verbunden ist. Die Belegung dieser Matrix liegt vor. An Pin 1-8 des Folienverbinders liegen jeweils 3V an. Diese werden bei Tastendruck mit einem der Pins 9-19 verbunden. Die Tastaturmatrix möchte ich nun gerne durch einen Atmega8L ersetzen, dieser soll dann die IR-Signale meiner Universal-Ferbedinung entgegennehmen (funktioniert bereits) und dann entsprechend der Tastaturmatrix die Platine der original Fernbedinung ansteuern. Der AVR läuft dabei mit 3V. Mein Problem besteht jetzt darin, das ich nicht weiß, wie ich diese Tastaturmatrix mit dem AVR emulieren kann. Für eure Antworten bedanke ich micht bereits im vorraus. Gruß Dennis
Hallo, >An Pin 1-8 des Folienverbinders liegen jeweils 3V an. Diese werden bei >Tastendruck mit einem der Pins 9-19 verbunden. Die Infos werden Dir nicht reichen. Das ist ja sehr wahrscheinkich eine Matrix, die der Fernbediencontroller abfragt. Möglichkeit wäre z.B.: Pin 9-19 sind Eingänge mit PollDown. Wenn jetzt eine Taste der Matrix gedrückt wird, erkennt der Prozessor das H an einer der Leitungen. Da jetzt noch die Zuordnung der Taste zu den Ausgängen unklar ist, kann er der Reihe nach Pin 1...8 auf L legen und schauen, wann das H wieder verschwindet. Dann hat er beide Koordinaten. Er kann aber z.B. auch Pin 1-8 auf Eingang schalten und an alle Pin 9-19 gleichzeitig H anlegen und schauen, wo es bei 1.8 wieder rauskommt. Oder er kann... Was er wirklich macht, das muß Du rausfinden... Sonst bleibt Dir wohl nur die Version, alle Tsten durch Reedrelais zu ersetzen und vom AVR anzusteuern... Gruß aus Berlin Michael
Die zweite Möglichkeit kann ich schonmal ausschliessen, da es auch möglich ist mindestens 2 verschiedene Tasten gleichzeitig zu drücken, welche dann auch sicher erkannt werden. Ich habe noch festgestellt, dass wenn ich an einen der Pins 11-19 VCC anlege von der Platine etwas an den Empfänger gesendet wird. Ich kann leider nur nicht beeinflussen welcher Tastendruck dadurch emulilert wird. (Da ja für die Platine nicht klar ist welcher von Pin 1-8 dafür genutzt wurde) Testweise habe ich jetzt einfach mal Pin 1 auf einen Eingang am AVR und Pin 9 auf einen Ausgang gelegt. Dann im main-Loop abgefragt ob der Eingang High ist und wenn dies der Fall war, den Ausgang auch auf High gelegt. Leider genau das gleiche Verhalten wie oben beschrieben, irgendwas wird ans Gerät gesendet und erkannt, aber nicht es kann nicht kontrolliert werden was. Der AVR lief dabei auf 1Mhz, werde testweise den Takt mal etwas hochschrauben und nochmal testen. Außerdem werde ich ein Oszilloskop an Pin 1-8 hängen um mal genauer zu gucken was sich da so tut. Gruß Dennis
Wenn das eine echte Matrix ist, dann müßte man einen echten Taster simulieren. Und das geht am einfachsten mit CMOS-Analogschaltern, z.B. CD4066 Die Dinger haben durchgeschaltet einen Widerstand von 50 - 150 Ohm, das entspricht einem sehr guten neuen Gummitaster. Der Stromverbrauch dieser CMOS-Schalter ist vernachlässigbar, irgendwo im µA-Bereich. Versorgungsbereich: 3 - 15V
CMOS-Analogschalter möchte ich, wenn möglich, vermeiden. Ich habe gerade mit dem Oszilloskop gemessen. Dabei kam folgendes raus: Pin 1-8 liegen auf dauerhaft auf VCC. Legt man nun VCC an einen der Pins 9-19, ist auf dem Scope zu erkennen, das nun VCC in Impulsen an Pin 1-8 anliegt. Ich habe dummerweise gerade nur ein Eingangskabel für das Scope zur Verfügung, aber ich vermute, dass Pin 1-8 nacheinander kurz auf VCC liegt. Das müsste doch mit einem AVR zu emulieren sein? Gruß Dennis
Ich habe nun den Atmega8L über den internen Osizlator auf 8 Mhz gestellt. Dann im Quellcode einen Pin als Eingang festgelegt (Pull-Up) deaktiviert. Und einen Pin als Ausgang festgelegt. Danach wird in einer endlos Schleife dem Ausgangspin der Wert des Eingangspins zugewiesen. Liegen auf dem Eingangspin 3V an, kommen laut Multimeter auf dem Ausgangspin 3V raus. Liegt auf dem Eingangspin nichts an, liegt auf dem Ausgangspin 1,9V an. Sollte dies nicht bedeutend weniger sein? Danke und Gruß Dennis
Danke für die Tips und Hinweise. Ich muss mich nochmal selbst korrigieren. Die Matrix in der Fernbedienung arbeit wie folgt. Pin Angaben sind auf die Platine in der Fernbedienung bezogen, wo die Folientastatur dran ist. - Pin 1-8 sind High (3V) - Pin 9-19 sind Low - Verbindet man z.B. Pin 1 und 9 lässt sich mit einem Osziloskop von GND zu dieser Verbindung messen, das für 1.5ms auf High geschaltet ist und für 0.075ms auf Low - Pins 2-8 sind dabei weiterhin durchgehend auf High Könnt ihr mir Tips geben, wie ich das mit einem Atmega8L emulieren kann? Danke und Gruß Dennis
Ich hab es nun hinbekommen. Mein Problem war, das och vorher immer die Ein und Ausgänge falsch herum hatte. Pin 1-8 hatte ich auf Eingänge gelegt, da ich dachte, das die Impulse von dort ausgehen. Pin 11-19 waren dementsprechend Ausgänge. Nun habe ich Pin 1-8 auf Ausgänge gelegt, Pin 11-19 auf Eingänge. Soll eine Taste gedrückt werden, aktiviere ich den internen Pull-Up am entsprechenden Eingang, dadurch liegt VCC am Eingang an und die Platine der Fernbedinung fängt an Impulse zu senden. Diese Impulse lege ich nun auf den entsprechenden Ausgang, die Platine empfängt so nun die Impulse und drückt die entsprechende Taste. Nochmal vielen Dank für eure Tips und Hinweise Gruß Dennis
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.