Forum: Mikrocontroller und Digitale Elektronik Kommunikation zwischen LED - Fotodiode


von Globo (Gast)


Lesenswert?

Ich würde gerne eine optische Übertragung zwischen z.B. zwei AVR 
umsetzen. Dabei geht es mir gar nicht um hohe Datenraten mit 
Verschlüsselung usw., sondern einfach nur um die Übertragung von 
Zuständen über ein paar einsen und nullen.

Auf beiden Seiten gibt es sowohl LED (Sender) als auch Fotodiode 
(Empfänger). Nur wie synchronisiere ich die beiden am 
einfachsten/besten, wenn es keine direkte Verbindung per Kabel gibt?

von Joachim B. (jar)


Lesenswert?

und wie willst du Fremdlicht ausblenden?

ich würde eher an IRMP denken mit eigenen Codes
oder an RS232 Funkbrücke

beides hier im Forum

wieso synchron?

von Günter Lenz (Gast)


Lesenswert?

Über Lichtleiterkabel oder durch die Luft?
Wenn es durch die Luft gehen soll würde ich das Licht
modulieren damit die Sache unempfindlich gegenüber
Fremdlicht wird. Ansteuern mit der seriellen COM-Schnittstelle.
Auf der Sendeseite die Trägerfrequenz an und ausschalten.
Auf der Empfangsseite einen selektiven Verstärker,
und dann gleichrichten. Trägerfrequenz vielleicht
so 50kHz bis 100kHz.

von Schreiber (Gast)


Lesenswert?

Günter Lenz schrieb:
> Trägerfrequenz vielleicht
> so 50kHz bis 100kHz.

zu niedrig. Das ist fast im Schaltnetzzteilbereich von 
LED-Beleuchtungen. Besser mal auf >500kHz hoch

Alternativ über PSK nachdenken, ist nicht so störungsempfindlich wie ein 
einfaches Ein/Aus-System

von Globo (Gast)


Lesenswert?

Kann ich fremdlicht nicht ausfiltern? Da wollte ich dann etwas 
rumprobieren, kenne mich aber auch nicht wirklich auf dem Gebiet aus.

Ich bin da noch am Anfang. Vemutlich wird es für mich ein Problem werden 
zu unterscheiden, in welchem Bit sich der jeweilige Teilnehmer befindet. 
Das könnte ich ja über z.B. über eine steigende Flanke sychronisieren, 
oder was denkt ihr?
Zwei Pulslängen und eine einheitliche Pausenlänge war mein Plan für den 
Anfang.

Das muss nicht auf Anhieb 100% stabil laufen. Mir würde es auch schon 
reichen, wenn es für den Anfang bloß bei Dunkelheit klappt.

von Conny G. (conny_g)


Lesenswert?

Um den Start zu synchronisieren verwendet man Startsequenzen, Präambel 
genannt. Google mal danach. Oder Pausen bestimmter Mindestlänge zwischen 
den Übertragungen und dann ein Starbit als Taktstart.

von Karl H. (kbuchegg)


Lesenswert?

Globo schrieb:

> Ich bin da noch am Anfang. Vemutlich wird es für mich ein Problem werden
> zu unterscheiden, in welchem Bit sich der jeweilige Teilnehmer befindet.
> Das könnte ich ja über z.B. über eine steigende Flanke sychronisieren,
> oder was denkt ihr?

Ich denke, du vermischt da 2 Dinge.

Das eine ist die technische Kommunikationseben, bei der auf dem 
Trägermedium Licht eine entsprechende Information über den Zustand 0 
bzw. 1 aufgebracht wird.

Das andere ist die bereits eine Schicht drüber, wie man dann mit dem was 
die physikalische Transportschicht zur Verfügung steht, eine 
Kommunikation aufbaut.

Auch ein Kabel einer seriellen Schnittstelle hat nur 2 Zustände: 
entweder der Pegel ist auf +12V oder er ist auf -12V. Dementsprechend 
wird diesen Spannungszuständen eine logische 0 bzw. 1 zugeordnet. Und 
darüber sitzt dann wieder dieselbe Schicht, die mit diesen Zuständen zb. 
eine serielle Schnittstelle aufbaut.

Entscheidend ist doch, dass diese darüber liegende Schicht von der 
physikalischen Repräsentierung völlig unabhängig ist, solange mir dieser 
physikalische Layer nur 2 gesicherte Zustände bereit stellt. Wenn ich 
will, könnte das auch "Wasser fliesst" bzw. "Wasser fliesst nicht sein" 
oder "Sirene hoher Ton" bzw. "Sirene tiefer Ton", "Klospülung 
läuft"/"Klospülung läuft nicht", ..... sein. 2 eindeutig unterscheidbare 
physikalische Zustände, mehr braucht es auf dieser Ebene nicht.

> Zwei Pulslängen und eine einheitliche Pausenlänge war mein Plan für den
> Anfang.

Ist eine Möglichkeit. Aber warum was neues erfinden, wenn 
Datenübertragung per UART schon erfunden wurde?

> Das muss nicht auf Anhieb 100% stabil laufen. Mir würde es auch schon
> reichen, wenn es für den Anfang bloß bei Dunkelheit klappt.

Da bist du jetzt wieder in der physikalischen Schicht.
Je nach Gegebenheiten ist auch eine 'Richt-Licht' Verbindung aufbaubar. 
Gerade Licht lässt sich eigentlich recht gut bündeln bzw. dem Empfänger 
eine Richtcharakteristik mitgeben. Durch Einbau in Röhrchen lässt sich 
so empfängerseitig schon vieles ausblenden, während Taschenlampen bzw. 
Laserpointer vormachen, wie man einen Lichtstrahl gezielt in eine 
bestimmte Richtung lenkt. Interessant wird es, wenn eine derartige 
Richtwirkung nicht erwünscht ist.

: Bearbeitet durch User
von M. K. (sylaina)


Lesenswert?

Globo schrieb:
> Nur wie synchronisiere ich die beiden am
> einfachsten/besten, wenn es keine direkte Verbindung per Kabel gibt?

Benutze doch den UART. Du musst dich ja nicht auf die üblichen Baudraten 
festlegen, wenn du willst kannst du auch mit einer Baudrate von 1 
arbeiten.

von jemand (Gast)


Lesenswert?

Globo schrieb:
> Ich bin da noch am Anfang. Vemutlich wird es für mich ein Problem werden
> zu unterscheiden, in welchem Bit sich der jeweilige Teilnehmer befindet.
> Das könnte ich ja über z.B. über eine steigende Flanke sychronisieren,
> oder was denkt ihr?
> Zwei Pulslängen und eine einheitliche Pausenlänge war mein Plan für den
> Anfang.

Du solltest dich mal in 2 Themen einlesen (googeln) RS232 und 
IR-Fernbedienung.

von Joachim B. (jar)


Lesenswert?

jemand schrieb:
> Du solltest dich mal in 2 Themen einlesen (googeln) RS232 und
> IR-Fernbedienung.

gut das du das bestätigst (erwähnte ich das nicht schon?)
Beitrag "Re: Kommunikation zwischen LED - Fotodiode"

von sdf (Gast)


Lesenswert?

'Ich habe mal eine RC5 Kommunikatino aufgebaut, das ist ein "standart" 
codec für Fernbedienungen.

Eine Photodiode empfängt das ganze und den Code gibt es glaube ich für 
sehr viele Sprachen ( ich habs in C mit MSP430 realisiert).

Das war eigentlich sehr schwer,der Teufel steckt halt immer im Detail.
Dein Empfänger synchronisiert sich ja dann automatisch die Photodiode 
wird verstärkt direkt auf den µC gegegeb, aber da kann ich mich auch 
täuschen udn noch ein IC steckt dazwischen, dann kommen nur 0 und 1 an 
und die Kommunikation steht.

von Olaf (Gast)


Lesenswert?

All das gibt es schon so lange das es bereits fast wieder ausgestorben 
ist. :-)
Nennt sich IRDA.

http://www.societyofrobots.com/electronics_irda_tutorial.shtml

Ich wuerde dringend empfehlen sich daran zu halten. Dann koennte man 
naemlich fertige Transciever wie z.B den TFBS4711 von Vishay verwenden. 
Oder auch mal was altes irgendwo ausschlachten. (alte Nokia/Handys, 
Palmpiloten) Oder man koennte auch auf die Idee kommen mit einem Laptop 
oder Palmpiloten an der Kommunikation teilzuhaben.

Es gibt Mikrocontroller die haben es bereits eingebaut das man den UART 
in den IRDA-Mode schalten kann. (STM32L152) Wenn man das nicht will 
mussm an natuerlich etwas kreativer sein, geht aber auch.

Olaf

von Joachim B. (jar)


Lesenswert?

Olaf schrieb:
> All das gibt es schon so lange das es bereits fast wieder ausgestorben
> ist. :-)
> Nennt sich IRDA.

top, schon fast vergessen!

von jemand (Gast)


Lesenswert?

Olaf schrieb:
> Nennt sich IRDA.

Stimmt! Sch... Alzheimer :-D

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.