mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tastatur aus Fernbedinung mit AVR emulieren


Autor: Dennis B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dennis B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jadeclaw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dennis B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dennis B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau mal hier, der hat das selbe Problem wie du:

Beitrag "ersatzsteuerung fernbedienung"

Autor: Dennis B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dennis B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.