PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega8 schnell genug für 38kHz IR-Signal?



MelMan
04.06.2008, 20:34
hi @ all
folgende Frage:
Ich hab nen Port meines Mega8 mit einem IR-Empfänger beschaltet. Pegel wechselt immer von High nach Low je nach Signal. Jetzt ist meine Frage ob der µC schnell genug wäre, ein IR-Signal aus einer TV-Fernbedienung aufzunehmen (38Khz), der µC selber ist mit 16Mhz beschaltet. Hab ein Programm geschrieben was dann mit einem Timer die Zeit zählt, wie lange der Pegel Low oder High ansteht. Dieser Wert wird dann gespeichert und soll später wieder ausgegeben werden. Wäre das prinzipiell möglich?

Mfg

radbruch
04.06.2008, 21:08
Hallo


Ich hab nen Port meines Mega8 mit einem IR-Empfänger beschaltet.
Wenn du einen TOSP verwendest wird die Trägerfrequenz von diesem schon entfernt, am Ausgang kommen dann nur noch die Datenbits raus.

Auch nur mit einem IR-Transistor bestückt ist dein 16MHz-Mega8 schnell genug die Daten selbst zu dekodieren wenn er nicht zuviele andere Aufgaben nebenher erledigen muss. Bei 16000000/38000 hast du über 400 Takte zeit den Pegelwechsel am Pin zu erkennen und auszuwerten.

Ich kenne bisher nur den Aufbau von RC5-Signalen. Die werden meist mit 36kHz Trägerfrequenz gesendet (die Bitlänge ist aber variabel und als Bruchteil der Trägerfrequenz definiert = funzt auch mit 38kHz). Die Datenbits werden mit Manchestercodierung gesendet, dabei wird die Flanke ausgewertet, absteigend ist low, aufsteigend ein high.

Ich hoffe, das bringt dich auf den Weg.

Gruß

mic

MelMan
05.06.2008, 09:04
ja super danke das reicht mir schon wollte nur wissen ob ich das Signal überhaupt aufgezeichnet bekomme. danke für die antwort

MelMan
12.06.2008, 10:34
sooo hab es geschafft signale reinzubekommen wenn ich mit der fernbedienung signale sende. verwende einen TSOP-1738. den versorge ich mit 5V und der ausgangspin ist an einen INPUT meines µC geschaltet. nun hab ich zum vergleichen mal ein gesendetes signal mit nem oszilloskop aufgenommen. das problem ist dass sich die signale in den impulsdauern und auch in den nicht-impulsdauern total unterscheiden. nun stellt sich die frage ob ich den TSOP-1738 einfach an den µC schalten kann oder ob ich da noch was zwischenschalten muss. auch wenn das thema eher zu hardware gehört hoffe ich dass ihr mir helfen könnt.

Mfg

uffi
12.06.2008, 11:00
Man braucht keine Beschaltung zwischen IR-Empfänger und µC-Pin.

Schön ist es, wenn man den Infrarot-Empfänger direkt an einen Pin mit externem Interupt anschließt, z.B. INT2.

Dafür habe ich folgende schöne Interrupt Service Routinen für einen ATMEGA16 codiert, und zwar für RC5 Code und für REC80 Code.

In dem header file humax.h stehen z.B. die Codes einer Humax Fernbedienung als defines drin.

Gruß, uffi.

MelMan
12.06.2008, 11:04
ja hab mich auch grad mal schlau gemacht und was über rc5-code gelesen. danke für die schnelle antwort werd ich mir zuhause mal anschauen=)

oberallgeier
12.06.2008, 11:05
Hi, MelMan,


... problem .. signale in den impulsdauern und ... nicht-impulsdauern total unterscheiden ...Steht im Datenblatt. Guck mal so im Bereich Seite 3 ff: • Burst length should be 10 cycles/burst or longer. Das machen diese Fernsteuerungs-IR-Empfänger (viele).

Klartext: wenn der TSOP so etwa 10 Pulse zu 38 kHz empfängt, dann rafft er es endlich, dass da ein Signal kommt und geht auf low. Das ist so gewollt, um Einflüsse von Tageslicht und/oder Fremdlicht auszuschalten. Dieses Signal kannst Du einfach an den µC geben - Du bekommst sozusagen in dieser 38kHz-Tonart die viel langsameren Byte-Bits der Fernsteuerung durch den TSOP gleich dekodiert angeliefert. Aber ich vermute, dass Du diese Signale einfach weitergeben willst, oder? So ne Art Relaisstation. Dann müsstest Du diese Signalen wieder auf eine 38kHz-Trägerfrequenz aufmodulieren.


... den TSOP-1738 einfach an den µC schalten ... oder ... was zwischenschalten muss ...Das Signal vom TSOP ist doch TTL-Pegel. Also musst Du nichts dazwischenschalten. Du bekommst vom TSOP nur eben nicht das vollständige, modulierte 38kHz-Signal von der Sendediode.

RTFM :) und viel Erfolg

MelMan
12.06.2008, 14:11
Ich möchte das Signal gerne speichern sodass ich es immer wieder weitergeben kann. Aber danke für den Tip mit dem modulierten Signal. Ich dachte ich kann einfach das, was ich empfange auch wieder auf einen OUTPUT-Pin geben und mit einer IR-Diode senden. Dann werd ich mich da noch mal schlau machen=) Thx

oberallgeier
12.06.2008, 15:10
Hi MelMan,


... Signal ... speichern ... immer wieder weitergeben ...
Vielleicht nochn paar Tips:

Du empfängst also vom Empfängerchip einen "01011010...." binären Code. Den möchstest Du ja weitergeben - also musst Du diese "0101...." Folge wieder in eine modulierte Folge auf dem 38kHz-Träger umwandeln.

Zur Schaltung der "Sendediode" wenn Du die Daten senden willst: Hol Dir das Handbuch vom asuro (http://www.arexx.com/arexx.php?cmd=goto&cparam=p_asuro_downloads) und guck dort im Schaltplan (auf den hinteren Seiten) nach, wie die das machen. Zum Senden ist dort eine SFH415 als Sender und ein SFH5110 als Empfänger eingesetzt. Wenn Du HIlfe dazu brauchst, z.B. zu der Software, dann stöber mal im Forum nach der asurolib. Dort ist die Initialisierung der IR-LED enthalten (die läuft beim asuro aber mit 36 kHz) und auch die Schalterei der Ausgänge, damit die LED entsprechende Bursts mit den nötigen Pulsen macht. Du musst darauf achten, dass Du Bursts mit mindestens 10 oder etwas mehr Pulsen fährst - und dass Du beim Senden immer wieder Pausen machst mit der LED, schau in der Dokumentation vom TSOP nach. Der TSOP ist in dieser Hinsicht dämlich, der SFH5110 macht eigentlich dasselbe, nur braucht der keine Pausen.


... dachte ich kann einfach das, was ich empfange auch wieder auf einen OUTPUT-Pin geben und mit einer IR-Diode senden ...Kannst Du ja :)

lowtzow
08.07.2008, 22:37
hat irgendwer ein bascom file für den REC80 Code?

hab da eine fernbedienung die kann kein rc5 wär zumindest ein versuch wert.

bzw
wie kann ich heruasfinden welchen code eine fernbedienung sendet?

mfg
low