Hallo liebe µC und ET Freunde,
vorab, ich komme aus der Softwareentwicklung und bin deswgen nicht so
Standfest was die Elektronik angeht.
Ich möchte eine IR-LED und einen IR-Empfänger an meinen Atmega8 (Vcc =
5V) anschließen und verwenden (LED im Pulsbetrieb). Folgende Komponenten
würde ich dazu verwenden:
http://www.produktinfo.conrad.com/datenblaetter/150000-174999/171115-da-01-en-IR_EMPFAENGER_MODUL_TSOP_4838__VIS.pdfhttp://www.produktinfo.conrad.com/datenblaetter/150000-174999/171140-da-01-en-IR_SENDEDIODE_TSAL_6200__VIS.pdf
Beim Empfänger würde ich wie im Datenblatt (Seite 2) angegeben den 100
Ohm Widerstand und 0,1µF Kondensator anschließen, zusätzlich würde ich
aber noch einen Widerstand von 1k Ohm zwischen Ausgang und dem GPIO am
µC anschließen, dann wäre der Strom auf 0,5 mA begränzt, ist das so in
Ordnung?
Bei der IR-LED bin ich mir nicht ganz sicher was die Angaben im
Datenblatt angeht. Hier steht einmal If = 100mA, Ifm = 200mA mit tp =
20ms und Ifsm = 1,5A mit tp = 100µs. Ist tp die Pulsdauer und die LED
benötigt mehr Strom bei kürzerer Dauer bzw. nur 100mA im Dauerbetrieb?
Für If = 100mA hätte ich einen 39 Ohm Widerstand verwendet.
Dürfte ich diese LED dann einfach direkt ansteuern mit meinem µC? Laut
Datenblatt ist die Funktion der I/O Pins nur bis zu 40.0mA garantiert.
Ich habe allerdings schon einige andere Schaltungen gesehen wo sie 100mA
direkt ansteuern, deswegen die Frage.
Danke im Voraus!
moinmoin
Den Widerstand zwischen dem Empfänger Ausgang und GPIO brauchst du
eigentlich nicht, als Eingang ist der µC hochohmig. Kann dich aber
retten, wenn du den aus versehen als Ausgang schaltest, da reichen aber
auch 250Ohm.
Die Stromangaben bei der LED resultiern aus thermischen Grenzen. tp ist
tatsächlich die Einschaltzeit.
Konstant gehen 100mA. Im Pulsbetrieb mit 50% Duty Cycle (also Hälfte
der Zeit an/aus) gehen 200mA solange die Pulse kleiner als 100µs sind
(nicht 20ms wie du geschrieben hast). Bis 200mA kannst du also relativ
sicher gehen, deine Pulse liegen ja bei 13µs.
Die 1,5A von IFMS sind nur für einen einzigen kurzen Stoß (100µs), damit
kannst du also nicht rechnen.
Den Vorwiderstand für die LED hast du richtig berechnet, für 200mA
könntest du entsprechend einen 22Ohm Wiederstand nehmen.
Ich würde einen Pin am Atmega nicht mit 100mA belasten, mit 200mA erst
recht nicht. Entweder einen Transistor verwenden, oder <40mA verwenden.
Eigentlich ist auch 20mA die Grenze für eine zuverlässige Funktion, 40mA
ist wirklich nur die obere Grenze der Belastbarkeit vor dauerhaften
Schäden.
Christian schrieb:> Dürfte ich diese LED dann einfach direkt ansteuern mit meinem µC? Laut> Datenblatt ist die Funktion der I/O Pins nur bis zu 40.0mA garantiert.
Interessant, was in die Originalangaben immer hineininterpretiert wird.
Ich schließe mich aber da lieber dem könich an.
> Ich habe allerdings schon einige andere Schaltungen gesehen wo sie 100mA> direkt ansteuern, deswegen die Frage.
Quelle. Sie versuchen vielleicht "anzusteuern". Man kann auch versuchen
1A und mehr aus einem Portpin zu entnehmen. Man braucht ja nur den
Lastwiderstand entsprechend gering zu machen oder? Vielleicht wird ja
auch nur 20% PWM Duty Cycle bei 20mA hochgerechnet. Quelle! Oder doch
das Datenblatt für bare Münze nehmen?
Einen unnötigen Angst-Widerstand am Eingang aber den Ausgang überlasten
? Das passt nicht zusammen...
Irgendeinen billigen Transistor sollte dir dein uC schon Wert sein.
Schaltung siehe hier: https://www.mikrocontroller.net/articles/IRSND
Danke für die Antworten!
@könich: Bei den 20ms hab ich wohl irgendwelche Zahlen vertauscht, hatte
zu viele verschieden Dattenblätter offen. Kannst du mir noch sagen wie
du auf die 13µs gkeommen bist?
@Gilbert, wie ich schon gesagt habe, ist das Gebit hier neu für mich. Im
Datenblatt steht lediglich das Werte über 40mA permanenten Schaden am
Chip anrichten können. Vielleicht habe ich es überlesen, aber ich habe
keine Angabe zum Dauerbetrieb gefunden, daher die Annahme dass bis zu
unter 40mA der Chip funktionieren sollte.
@jojos Danke für den Link, ich werde für meine Schaltung auch einen
BC337 nehmen.
Christian schrieb:> zu viele verschieden Dattenblätter offen. Kannst du mir noch sagen wie> du auf die 13µs gkeommen bist?
Vielleicht, weil 36KHz für IR üblich ist ?
Christian schrieb:> @Gilbert, wie ich schon gesagt habe, ist das Gebit hier neu für mich. Im> Datenblatt steht lediglich das Werte über 40mA permanenten Schaden am> Chip anrichten können. Vielleicht habe ich es überlesen, aber ich habe> keine Angabe zum Dauerbetrieb gefunden, daher die Annahme dass bis zu> unter 40mA der Chip funktionieren sollte.
Fragt sich nur, wie lange.:-(
@Marc Vesely: Darauf bin ich auch gekommen nachdem ich geantwortet habe
:)
Ich habe den Basiswiderstand für den BC377 wie folgt berechnet:
Aus dem Datenblatt:
Vbe = 1,2V bei 300mA Ic, -> mit 0,7V gerechnet.
hFE = 100
----
Ib = If/hFE = 200/100 = 2mA
Rb = (Vcc - Vbe) / Ib = 4,3/0,002 = 2150Ohm
Also würde ich einen etwas kleineren Widerstand mit 2100Ohm verwenden.
Muss ich denn auch den Spannungsabfall Vce = 0,7 beachten?
Dann würde der Vorwiderstand LED nicht mehr 18,25Ohm sondern
R = (5 - 0,7 - 1,35) / 0,2 = 14,75Ohm
ergeben. Und die Verlustleistung am Vorwiderstand wäre statt 880mW nur
600mW (bei 22 bzw. 15Ohm Widerständen)
um mit UART zu Senden wirst Du die invertieren müssen, also 2mal
Transistor,
dann brauchts noch die 36kHz Träger und das ganze per "und" verknüpfen
z.B. die CE-Strecken von 2 Tranistoren hintereinander und dann auf die
LED
PPS: ist etwas verwirrend geschrieben, die LED muss natürlich vor die
Kollektoren
Und die Übersteuerung ist fürs schnelle saubere Schaltverhalten
(Flankensteilheit)
also zusammenfassend:
vom UART TX gehts auf 1k Widerstand, von dort an die Basis T1.
T1 ist als Schalter Emitter auf GND, Kollektor mit auch wieder 1k gegen
Vss.
Vom Kollektor zusätzlich auf Basis T2.
T2 hängt mit Emitter an GND.
T3 Basis hängt an 360 kHz, Emitter an Kollektor T2, Kollektor T3 an LED
+ RV gegen Vss
und fertig ist die Laube, dass der TSOP auch was empfangen kann
Hallo Weinbauer,
ich habe nicht vor mit UART zu senden, ich möchte nur Signale empfangen
und dekodieren und selber welche aussenden.
Ich werde den 2,1k Widerstand durch 1k austauschen, danke!
> die Übersteuerung ist fürs schnelle saubere Schaltverhalten
Wohl eher, um die Verluste auf der C-E Strecke zu reduzieren, damit der
Transistor weniger warm wird.
Weinbauer schrieb:> PS: Transistoren im Schaltbetrieb werden übersteuert, daher max 1 kR als> Basisvorwiderstand
1 kR ? Ein Kilo Reben oder doch 1kΩ oder 1kOhm?
PS Es gibt auch noch Graphen in Datenblättern, zB "Pin Driver Strength"
unter "ATmega8 Typical Characteristics"
Christian schrieb:> ich habe nicht vor mit UART zu senden, ich möchte nur Signale empfangen> und dekodieren und selber welche aussenden.
Dafür gibts IRMP und IRSND. Einfacher gehts nicht.
Frank M. schrieb:> Christian schrieb:>>> ich habe nicht vor mit UART zu senden, ich möchte nur Signale empfangen>> und dekodieren und selber welche aussenden.>> Dafür gibts IRMP und IRSND. Einfacher gehts nicht.
Ich weiß, ich mache das ja auch zum Teil nur um etwas dabei zu lernen
und mich mehr mit µC auseinanderzusetzen. Und genau die selbe
Funktionalität möchte ich auch nicht nachimplementieren. Ich will
Signale empfangen und speichern mit der Möglichkeit sie wieder zu
versenden.
Christian schrieb:> Ich weiß, ich mache das ja auch zum Teil nur um etwas dabei zu lernen> und mich mehr mit µC auseinanderzusetzen. Und genau die selbe> Funktionalität möchte ich auch nicht nachimplementieren. Ich will> Signale empfangen und speichern mit der Möglichkeit sie wieder zu> versenden.
Na dann viel Erfolg. Beachte nur, dass eine 1:1 Wiedergabe bei
bestimmten Protokollen in die Hose gehen kann. Es gibt Protokolle, die
zum Beispiel ein Toggle-Bit verwenden - z.B. RC5 und RC6 (z.B. XBOX).
Wenn Du das Bit nicht auch togglest nach jedem Frame, kann das Gerät
weitere Frames schlicht ignorieren.
Oder auch NEC-Protokoll: Das benutzt bei Wiederholungen (z.B. langem
Drücken der Lautstärke-Taste) einen speziellen Wiederholungsframe,
welche das Gerät veranlasst, den letzten Befehl zu wiederholen.
Ich drücke Dir die Daumen.
Frank M. schrieb:>> Na dann viel Erfolg. Beachte nur, dass eine 1:1 Wiedergabe bei> bestimmten Protokollen in die Hose gehen kann. Es gibt Protokolle, die> zum Beispiel ein Toggle-Bit verwenden - z.B. RC5 und RC6 (z.B. XBOX).> Wenn Du das Bit nicht auch togglest nach jedem Frame, kann das Gerät> weitere Frames schlicht ignorieren.>> Oder auch NEC-Protokoll: Das benutzt bei Wiederholungen (z.B. langem> Drücken der Lautstärke-Taste) einen speziellen Wiederholungsframe,> welche das Gerät veranlasst, den letzten Befehl zu wiederholen.>> Ich drücke Dir die Daumen.
Danke :-) ich erwarte mir nicht dass es gleich beim ersten Versuch
funktioniert.