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.
>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...
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.
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?
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...
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
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.
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).
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...
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
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.
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?
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.
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
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...
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.
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.
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.
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)
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?
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
..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.
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)
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.
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.
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 :-)