mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 per IR


Autor: GG (Gast)
Datum:
Angehängte Dateien:

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

Autor: Bong (Gast)
Datum:

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

Autor: GG (Gast)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu spät :-)

Autor: GG (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: GG (Gast)
Datum:
Angehängte Dateien:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: GG (Gast)
Datum:

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

Autor: C. S. (chrisdask8)
Datum:

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

Autor: Bong (Gast)
Datum:
Angehängte Dateien:
  • preview image for IR.png
    IR.png
    1,8 KB, 477 Downloads

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

Autor: Bong (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:
Angehängte Dateien:
  • preview image for IR.png
    IR.png
    2,43 KB, 310 Downloads

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

Autor: GG (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: C. S. (chrisdask8)
Datum:

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

Autor: GG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau anders herum

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

Autor: GG (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:
Angehängte Dateien:
  • preview image for IR.png
    IR.png
    2,04 KB, 283 Downloads

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

Autor: Uwe ... (uwegw)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: Martin Morse (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: GG (Gast)
Datum:

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

Autor: GG (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: Bong (Gast)
Datum:

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

Autor: Martin Morse (Gast)
Datum:
Angehängte Dateien:

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

Autor: Bong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist da der Timer, der für die 36KHz sorgt?

Autor: Martin Morse (Gast)
Datum:

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

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.