Forum: Mikrocontroller und Digitale Elektronik Seriele übertragung per Infrarot über kurz distanz (One Way)


von Jürgen S. (jsachs)


Lesenswert?

Hallo,

für mein aktuelles Projekt müsste ich serielle Daten per IR über eine 
Strecke von ca 2-10cm übertragen.
Die Daten sollen von einem ATmega32 auf einen 2ten übertragen werden.

Hat jemand schon mal so etwas gemacht ?
Mein Gedanke war, einen Pin zu nehmen und damit die IR Diode 
anzusteuern. Am anderen Ende hängt ein TSOP oder so, der mir wieder das 
Nutzsignal liefert.
Ich bin mir nur nicht sicher wie ich die 36kHz Modulation erzeugen soll.
Die Maximal geforderte Baudrate wäre 38400, aber ich wäre schon mit 
wesentlich weniger zufrieden.

Welche Kodierung muss ich nehmen ? Könnte ich die Daten mit dem SPI 
Daten Pin direkt auf die Diode geben, oder benötige ich auch bei einer 
so kurzen Distanz schon die "Manchaster Codierung" ?

Ich sollte noch erwähnen, das beide ATmegas Zeitmäßig gestresst sind, da 
diese Servosignale erzeugen. Zwar Interrupt gesteuert, aber eine Art 
Softuart klappt vom Timing her nicht mehr. Daher würde ich das gerne in 
Hardware machen.

Danke für Eure Hinweise
Juergen

von STK500-Besitzer (Gast)


Lesenswert?

Irgendwo hier gaaaanz unten im Forum (also vor ewig langer Zeit) gab es 
zu dem Thema mal diese Lösung:

Die Sendediode zwischen einen Timer-OC-Ausgang und den TXD-Pin der 
seriellen Schnittstelle klemmen.
das Sendebyte wurde dann zu zweien erweitert, und dadurch mit 
Manchester-Code versehen (frag mich bitte nicht, nach dem genauen 
Aussehen).
Der Timer-Pin wackelte mit 36kHz (oder einer anderen frei wählbaren 
Frequenz.
Die Sendediode leuchtete dauch mit 36kHz, sobald am TXD-Pin der 
entsprechende Pegel anlag.

von STK500-Besitzer (Gast)


Lesenswert?

achja: Ausprobiert habe ich nie.

von H.Joachim S. (crazyhorse)


Lesenswert?

funktioniert aber :-)

von Anja (Gast)


Lesenswert?

Jürgen Sachs schrieb:
> aber ich wäre schon mit
> wesentlich weniger zufrieden.

bis etwa 2400 Baud (je nach Strom auch etwas mehr) könnte man einen 
Fototransistor und eine Fotodiode verwenden. (UART ohne Modulation).


Jürgen Sachs schrieb:
> Ich bin mir nur nicht sicher wie ich die 36kHz Modulation erzeugen soll.
> Die Maximal geforderte Baudrate wäre 38400,
Bei 36kHz Modulation schafft man mit den Üblichen Empfängern etwa 500 
Baud.

Gruß Anja

von STK500-Besitzer (Gast)


Lesenswert?

H.joachim Seifert schrieb:
> funktioniert aber :-)

Ist nur noch die Frage, wie die beiden Bytes aussahen bzw. wie man aus 
dem einen zwei macht...

von Jürgen S. (jsachs)


Lesenswert?

Würde es bei der kurzen Distanz auch ohne Modulation gehen ?
Für 10 cm brauche ich ja keine so große Sendeleistung und die 
Störanfälligkeit sollte auch geringer sein.

Juergen

von holger (Gast)


Lesenswert?

>Würde es bei der kurzen Distanz auch ohne Modulation gehen ?

Sonne und Beleuchtung in deinem Zimmer werden dich
eines besseren belehren. Nimm Funk oder besser gleich Kabel.
Bei 10cm sollte das ja wohl kein grosser Aufwand oder
Kostenfaktor sein.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

STK500-Besitzer schrieb:
> Die Sendediode zwischen einen Timer-OC-Ausgang und den TXD-Pin der
> seriellen Schnittstelle klemmen.
> das Sendebyte wurde dann zu zweien erweitert, und dadurch mit
> Manchester-Code versehen (frag mich bitte nicht, nach dem genauen
> Aussehen).
> Der Timer-Pin wackelte mit 36kHz (oder einer anderen frei wählbaren
> Frequenz.
> Die Sendediode leuchtete dauch mit 36kHz, sobald am TXD-Pin der
> entsprechende Pegel anlag.

Die Byte-Erweiterung braucht man nicht. Die Daten, die vom UART auf der 
einen Seite gesendet werden, kommen 1:1 aus dem TSOPxx36 auf der anderen 
Seite wieder heraus. Bei kurzen Distanzen funktioniert das mit 500Baud 
absolut beschwerdefrei. Die Sendediode muss übrigens mit der Kathode zum 
TXD des UARTs geschaltet werden, so dass sie bei LOW leuchtet / toggelt.

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
Noch kein Account? Hier anmelden.