Forum: Mikrocontroller und Digitale Elektronik RS232 per IR


von GG (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte gerne RS232 über Infrarot mit einem AVR senden.
Habe dafür eine sehr einfache, ich nenn se jetzt mal standart Schaltung 
gefunden (IR_std), nun möchte ich aber die Reichweite erhöhen und habe 
die Schaltung etwas modifiziert (IR_mod). Da ich aber kein Experte in 
Sachen Elektronik bin wollte ich einfach mal fragen ob man das überhaupt 
so machen kann oder ob es da berechtigte Einwände gibt. Möchte nicht 
gleich den AVR beim ersten Versuch kaputt machen.  Die RS232 
geschwindigkeit braucht nicht hoch sein 2400 baud reichen. In den 
Bildern ist mit RS232 TX der TXD pin des avr gemeint.

von Bong (Gast)


Lesenswert?

Schau dir mal den PNP nochmal an. Das kann so nicht funktionieren.

von GG (Gast)


Lesenswert?

>Schau dir mal den PNP nochmal an. Das kann so nicht funktionieren.
hmm ok, hilft mir nicht wirklich viel weiter...
ich hab das so verstanden das wenn txd auf low ist, das ding überhaupt 
erst senden kann (siehe IR_std) sonst fehlt halt GND für die IR diode, 
Die IR_std ist übrigens aus ner Elektor schaltung (April 2010 S.32 Fun 
mit Firefly)
Habe das ganze auch mal mit ltspice simuliert und da scheint es zu 
funktionieren, bin aber halt einfach nicht sicher...

von Karl H. (kbuchegg)


Lesenswert?

GG schrieb:
> Habe das ganze auch mal mit ltspice simuliert und da scheint es zu
> funktionieren, bin aber halt einfach nicht sicher...

Dann hast du garantiert die 9V nicht mitsimuliert.
Der PNP wird niemals Sperren, weil seine Basis nicht positiv genug wird.

von Bong (Gast)


Lesenswert?

Der PNP sperrt, sobald Emitter und Basis auf gleicher Spannung liegen 
(Basis darf bis zu 0,5V negativer sein). Hier ist sie durchgehend 
mindestens 4V negativer. Der Transistor wird immer leiten. Warum nimmst 
du nicht zweimal NPN?

von Bong (Gast)


Lesenswert?

Zu spät :-)

von GG (Gast)


Lesenswert?

hmm also die 9V sind schon mit in der Simulation und die basis des PNP 
wird doch über den 10K pullup hochgezogen...

von Bong (Gast)


Lesenswert?

ließ dir mal einen Artikel über Transistoren durch. Beispielsweise auf 
Wikipedia. Ich habe alles erklärt, was man braucht um mit ganz wenig 
Hintergrundwissen den Fehler zu entdecken. Eigentlich habe ich den 
Fehler schon ganz genau beschrieben...

von GG (Gast)


Angehängte Dateien:

Lesenswert?

hier mal die ltspice datei, die LD274 gibts dortleider nicht darum die 
andere LED

von Karl H. (kbuchegg)


Lesenswert?

GG schrieb:
> hmm also die 9V sind schon mit in der Simulation und die basis des PNP
> wird doch über den 10K pullup hochgezogen...

Ja .... auf 5V.
Damit der PNP aber sperrt müssen es mindestens 8.5V sein

von Bong (Gast)


Lesenswert?

39 Ohm bei 7V gibt auch deftig Strom (über 150mA). Das macht die LED 
(ohne Blick ins Datenblatt) nicht lange mit... Und dein BC547 der findet 
das noch viel schlimmer.

R1 und R2 sind bei AVRs unnötig. Es gibt nur 0V oder 5V, wenn der Pin 
auf Ausgang gestellt ist. Da brauchste keinen Pulldown/-up.

von Bong (Gast)


Lesenswert?

Ich hab LTspice leider nicht. Aber ich bin mir sicher, dass das auch in 
silico nicht funktioniert. Sonst wäre LTspice ziemlicher Müll. Du hast 
als Basissignal vielleicht auch 0/9V angegeben (kann das jetzt nicht 
prüfen).

von GG (Gast)


Lesenswert?

ne, ist soweit ok, habt ja recht, hab übersehen das die Spannung an der 
Diode gerade mal um 0.1V absinkt also die ganze Zeit die 9V drauf 
liegen, nur der Strom der durch die diode fließt geht von etwas 110mA 
runter auf 40nA. Argh hatte mich schon gefreut das mal etwas auf anhieb 
klappt...

von C. S. (chrisdask8)


Lesenswert?

Bong schrieb:
> 39 Ohm bei 7V gibt auch deftig Strom (über 150mA). Das macht die LED
> (ohne Blick ins Datenblatt) nicht lange mit...

Wenn ich als Anfänger dazu einen Kommentar ablassen darf.
Die LED soll in seiner Schaltung ja 40khz moduliert angesteuert werden.
Ich habe die LD274 selbst im Einsatz und kann sagen, dass sie im 
Impulsbetrieb wesentlich mehr als 150mA verträgt.
Ich habe zb. einen 6 Ohm Widerstand im Einsatz bei 36khz Impulsbetrieb, 
ohne Probleme.

Korrigiert mich wenn ich falsch liege

mfg

von Bong (Gast)


Angehängte Dateien:

Lesenswert?

So vielleicht. Wobei ich mir nicht ganz sicher bin, ob das mit den 
Dioden die optimale Lösung ist. Weglassen kann man sie in der Form 
nicht. Sonst baust du einen Kurzen zwischen den Portpins.

Schnell genug müssten die 1N4148 schon sein. Die Frage ist, ob der 
Transistor sperrt, wenn beide Signale auf Nullpegel haben. Müsste schon 
passen, scließlich ist ein Transistor ein stromgesteuertes Bauteil. Und 
Strom fließt bei Nullpegeln keiner mehr.

von Bong (Gast)


Lesenswert?

C. S. schrieb:
> Ich habe zb. einen 6 Ohm Widerstand im Einsatz bei 36khz Impulsbetrieb,
> ohne Probleme.

Wie sieht der Impulsbetrieb denn aus? Wenn die 36kHz kontinuierlich 
anliegen, und das mit einem Dutycycle von 50%, dann senkt das bestimmt 
die Lebensdauer. Die LED muss ja nicht in zehn Sekunden abrauchen.

Außerdem ist nicht der Widerstand, sondern das Produkt seines Kehrwertes 
und der Spannung (aka Strom) entscheidend. Also?

von Bong (Gast)


Lesenswert?

Sorry, der Schaltplan ist Quatsch. Das wäre eine ODER-Schaltung. Du 
brauchst ein UND.

von Bong (Gast)


Angehängte Dateien:

Lesenswert?

So. Das könnte jetzt sogar klappen. Was für Widerstände verwendest du 
denn da immer?

von GG (Gast)


Lesenswert?

unabhängig vom Level des Timer output pins muss ein low an TXD sozusagen 
GND für die IR diode "freischalten"

von Bong (Gast)


Lesenswert?

Mach mal ne Wahrheitstabelle. Ich glaube, wir reden grad aneinander 
vorbei. Du willst doch nur, dass die LED mit 40kHz blinkt, wenn TXD auf 
high ist. Wenn TXT auf low ist, dann soll die LED Maulaffen feilhalten.

von C. S. (chrisdask8)


Lesenswert?

GG schrieb:
> low an TXD sozusagen
> GND für die IR diode "freischalten"

nein ein High an TxD lässt die LED im Takt des CF Signals blinken, so 
verstehe ich den Schaltplan von Bong

von GG (Gast)


Lesenswert?

genau anders herum

TXD  TO   IR
L    L    off
L    H    on
H    L    off
H    H    off

von GG (Gast)


Lesenswert?

...erstmal vielen Dank an alle für die Hilfe, aber ich beschäftige mich 
morgen damit weiter...

von Bong (Gast)


Angehängte Dateien:

Lesenswert?

Ja, dann hatte ich das schon richtig verstanden. Nur eben mit TX 
invertiert. Was ist denn eigentlich der Ruhepegel von TX? Beim Ruhepegel 
darf kein IR ausgestrahlt werden, sonst erkennt das ein intelligenter 
Empfänger als Störsignal und relaxxxt.

Im Anhang dann der korrekte Schaltplan nach Wunsch. War aber der Letzte. 
Der nächste kostet nen Fünfer.

Meine Frage zu Widerstand gilt noch...

von Uwe .. (uwegw)


Lesenswert?

Bong schrieb:
> Meine Frage zu Widerstand gilt noch...

Meinst du nun den Vorwiderstand für die LED, oder die Basiswiederstände?

Für die Impulsbelastbarkeit finden sich bei IR-LED üblicherweise 
Kennlinien im Datenblatt, die die Belastbarkeit in Abhängigkeit von 
Frequenz und Tastverhältnis angeben.

von Bong (Gast)


Lesenswert?

Uwe ... schrieb:
> Für die Impulsbelastbarkeit finden sich bei IR-LED üblicherweise
> Kennlinien im Datenblatt, die die Belastbarkeit in Abhängigkeit von
> Frequenz und Tastverhältnis angeben.

Weiß ich, bin aber jetzt zu faul zum Nachschlagen, schließlich route ich 
gerade meine eigene Schaltung. Ich würde halt auf Nummer sicher gehen 
und wenn nötig eher mehrere LEDs einbauen, wenn ich schon keine Ahnung 
habe und das Ganze auf stirb oder gedeih machen muss.

von Bong (Gast)


Lesenswert?

Oh sorry, hab deine erste Frage schon wieder vergessen gehabt. Ich 
meinte den Vorwiderstand, davon war - glaube ich - auch im gesamten Post 
die Rede. Ich wollte ihn etwas heimtückisch auf die Fährte des 
1-Watt-Widerstands bringen.

von Martin Morse (Gast)


Lesenswert?

Software-UART über 200 Ohm auf BD135 und IR-LED mit 15 OHM an den 
Kollektor kleben......bei 5 Volt funzt dat gut.
Hab da irgendwann mal die Beispielapplication von Atmel bissl 
modifiziert,
(Timing für 36KhZ in die Schleife packen, paar Bits andersrum senden)

von Bong (Gast)


Lesenswert?

Martin Morse schrieb:
> Software-UART über 200 Ohm auf BD135 und IR-LED mit 15 OHM an den
> Kollektor kleben......bei 5 Volt funzt dat gut.
> Hab da irgendwann mal die Beispielapplication von Atmel bissl
> modifiziert,
> (Timing für 36KhZ in die Schleife packen, paar Bits andersrum senden)

Ich hab das entweder falsch verstanden, oder das ist ne extreme 
Bastellösung. Was willste da denn andersrum senden? Ist doch gar nicht 
nötig? Wie modulierst du die Trägerfrequenz auf das TX-Signal?

von GG (Gast)


Lesenswert?

Oh man so simpel, 100000 Dank @ Bong!
Nur damit ichs auch kapiert habe, wenn TX H Pegel hat ist T2 geöffnet 
und so bekommt T1 keinen Strom ab, damit sendet auch nix

von GG (Gast)


Lesenswert?

..noch ne kleine Frage am Rande.
Da ich grad nur 1/4W Widerstände zur Verfügung habe könnte ich doch 
anstelle von dem einem 1W Vorwiderstand der IR diode doch auch soetwas 
machen oder?

       +9V
       |
  ------------
  |          |
------     ------
|    |     |    |
R1  R2     R3  R4
|    |     |    |
------     ------
  |          |
  ------------
       |
       |
       IR

wobei R1...R4 = um die 150 ... 180 Ohm
das müsste doch noch im Rahmen liegen und die IR diode bekommt noch 
genug Leistung ab.

von Bong (Gast)


Lesenswert?

Häng halt einfach vier Widerstände mit einem viertel des gewünschten 
Widerstands in Reihe. Find ich irgendwie optisch und mathematisch 
einfacher. Wenn du das nach deinem Schaltplan machen möchtest, dann 
würde ich eher 4x330R => 82R5 einsetzen (hoffe, ich hab das jetzt 
richtig gerechnet ohne Formel).

Seriell: Rg = R1 + R2
Parallel: Rg = (R1 x R2) / (R1 + R2)

Sollte passen.

Du willst vermutlich deine LED etwas mehr bestromen? Tu was du nicht 
lassen kannst. Ich würde es erst mit korrekten Werten ausprobieren und 
dann basteln, wenn es von der Reichweite her nicht klappt. Aber behalt 
im Kopf, dass du auch mehrere LEDs verwenden kannst (In Reihe, musst 
dann nur den Widerstand anpassen, Spannung reicht ja locker für 5 
IR-LEDs)

von Bong (Gast)


Lesenswert?

GG schrieb:
> Nur damit ichs auch kapiert habe, wenn TX H Pegel hat ist T2 geöffnet
> und so bekommt T1 keinen Strom ab, damit sendet auch nix

Jo, solange die Spannung an der Basis unter 0,6V liegt, passiert bei T1 
gar nichts. Musst halt dafür sorgen, dass T2 ordentlich durchgesteuert 
ist (UCE<<0,6V). Sollte aber bei dem niedrigen Strom durch R1 kein 
Problem sein.

von Martin Morse (Gast)


Angehängte Dateien:

Lesenswert?

Anbei nen RS232-Transmitter auf Softwarebasis,
ca. 2400 Baud bei 3 MHZ XTAL.
An PD1 nen 200 Ohm Widerstand auf Basis von BD135.
Emitter von BD135 auf Ground.
Open Collector etwa Widerstand ca. 10 Ohm, dann IR-Diode und dann auf 
VCC.

von Bong (Gast)


Lesenswert?

Wo ist da der Timer, der für die 36KHz sorgt?

von Martin Morse (Gast)


Lesenswert?

In der Routine
UART_set:  ;420 µs
    ldi baud,15
sbiloop:

    sbi  PORTD,TxD
    ldi  temp,b
Uarts_set1:  dec temp
    brne Uarts_set1
    nop
    nop
    nop
    nop

    cbi  PORTD,TxD
    ldi  temp,b
Uarts_set2:  dec temp
    brne Uarts_set2
    dec baud
    tst  baud
    brne sbiloop
    ret

wird 15 Mal an und ausgeschaltet.
Dies repräsentiert ein gesetztes Bit.
Gesamtdurchlaufzeit : 420 µs / 2380 Baud
420 µs / 15 = 28 µs also etwa 36 khz
Übigens war VCC bei etwa 3,6 Volt :-) 5 Volt kann bei 10 Ohm
vielleicht nicht jede IR-LED ab.....besonders bei regem Sendebetrieb
hab ja nur alle 2 Sekunden ein Byte übertragen damals.
Funktioniert hats jedenfalls :-)

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.