Forum: Mikrocontroller und Digitale Elektronik TSOP4838 und IR-Led


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jo (jo12345)


Angehängte Dateien:

Lesenswert?

Heyy,
ich wollte nun das erste Mal mit einer IR-Led / einem IR-Sensor 
arbeiten. Um einfach mal zu testen, wie genau diese Signalübetragung 
funktioniert, habe ich diese Led (IR 19-21C EVL Infrarot-Diode, GaAlAs, 
940 nm, 150°, SMD-0603) und den Sensor (TSOP4838) an meinen Arduino Uno 
geschalten. Nun wollte ich einfach ein Signal über die Led schicken und 
der TSOP soll diese empfangen. Eigentlich wollte ich dann testen, wie 
groß der Abstand zwischen Sender und Empfänger maximal sein kann und 
welche Möglichkeiten an Signalübetragung ich habe, jedoch hat nicht 
einmal ein einfacher Test funktioniert. Ich hänge mal meinen Code an, es 
wird mir immer "Kein IR-Signal." im Seriellen Monitor ausgegeben. Die 
Led habe ich mit einem 150Ohm Widerstand angeschlossen.

: Verschoben durch Moderator
von Jens M. (schuchkleisser)


Lesenswert?

Hast du die LED denn auch mit ihrem 38kHz-Träger versorgt? Nur blinken 
reicht nicht...
Es scheint mir so als ob du die PWM mit 38kHz einschaltest, aber dann 
mittels digitalwrite() überschreibst...

von Ron-Hardy G. (ron-hardy)


Lesenswert?


von Sebastian R. (sebastian_r569)


Lesenswert?

Bist du dir sicher, dass die Modulation funktioniert, wenn du den 
Ausgang mit digitalWrite setzt?

Ich habe es gerade nicht im Kopf, aber ich bin mir ziemlich sicher, dass 
das digitalWrite das Timer-PWM "überschreibt" und nicht wie von dir 
gewünscht ein- und ausschaltet.

von Mario M. (thelonging)


Lesenswert?

Jo schrieb:
> Nun wollte ich einfach ein Signal über die Led schicken und
> der TSOP soll diese empfangen.

Es darf aber auch kein Dauersignal sein. Siehe Datenblatt!

von Ron-Hardy G. (ron-hardy)


Lesenswert?

Sebastian R. schrieb:
> aber ich bin mir ziemlich sicher, dass
> das digitalWrite das Timer-PWM "überschreibt" und nicht wie von dir
> gewünscht ein- und ausschaltet.

in der Tat.

von Sebastian R. (sebastian_r569)


Lesenswert?

Abhilfe:
- Anstatt digitalWrite den Timer ein- und ausschalten. Die 
entsprechenden Funktionen dafür hast du ja sogar schon drin.

- Etwas unschöner: Den anderen LED-Pin nicht an GND/VCC, sondern auch an 
einen GPIO und den dann ein- und ausschalten.

von Jo (jo12345)


Angehängte Dateien:

Lesenswert?

Okay verstehe, aber irgendwie klappt es trotzdem nicht.

von Ron-Hardy G. (ron-hardy)


Lesenswert?

Datenblatt Seite 5 ansehen: Maximum number of continuous short 
bursts/second = 800, Dauerfeuer klappt halt nicht. Was hat der Uno für 
einen Quarz? Deine Modulationsfrequenz scheint mir weit neben den 38kHz 
zu liegen.
Btw: vielleicht solltest du eine der vielen Infrarot-Librarys in 
Betracht ziehen.

: Bearbeitet durch User
von Mario M. (thelonging)


Lesenswert?


von Ron-Hardy G. (ron-hardy)


Lesenswert?

Wie ich vermutete: * Frequency: 76.19048 kHz

von Mario M. (thelonging)


Lesenswert?

Toggle fehlt halt. Jo hatte einen One-Shot programmiert.

von Jo (jo12345)


Angehängte Dateien:

Lesenswert?

Ja mit der Library hat es geklappt. Aber ich dachte eigentlich, dass ich 
mind. einen Abstand von 5-10cm zwischen Led und Sensor hinbekomme. 
Momentan sind es nur so 1-2cm. Mache ich noch irgendwas falsch? Liegt 
das an der Led?

von Hmmm (hmmm)


Lesenswert?

Jo schrieb:
> Momentan sind es nur so 1-2cm. Mache ich noch irgendwas falsch?

Das ist ohne Schaltplan schwer zu beantworten.

Jo schrieb:
> Liegt das an der Led?

Eher an ihrer Ansteuerung.

von Mario M. (thelonging)


Lesenswert?

Jo schrieb:
> Mache ich noch irgendwas falsch?

SendNEC ist blockierend, also wird der Eingang erst nach dem Ende der 
Übertragung abgefragt. Der wird dann nur bei starker Übersteuerung noch 
aktiv sein.

von Jo (jo12345)


Angehängte Dateien:

Lesenswert?

> SendNEC ist blockierend, also wird der Eingang erst nach dem Ende der
> Übertragung abgefragt.
Wie kann ich das verhindern?
Und angehängt ist auch mein Schaltplan.

: Bearbeitet durch User
von Hmmm (hmmm)


Lesenswert?

Jo schrieb:
> Und angehängt ist auch mein Schaltplan.

Bei rund 25mA kommt da nicht viel raus, IR-LEDs werden normalerweise 
gepulst mit deutlich höheren Strömen betrieben.

Da musst Du natürlich aufpassen, dass sie niemals dauerhaft 
eingeschaltet bleibt.

Als Testempfänger nimmst Du besser erstmal einen Fernseher o.dgl., dann 
weisst Du immerhin sicher, dass es nicht an Deinem Empfänger liegt.

von Sebastian R. (sebastian_r569)


Lesenswert?

Jo schrieb:
> Wie kann ich das verhindern?

Das wird ein bisschen kniffeliger. Das einfachste wäre wohl, einen 
zweiten Arduino als Empfänger zu nutzen.

von Jo (jo12345)


Lesenswert?

> Bei rund 25mA kommt da nicht viel raus, IR-LEDs werden normalerweise
> gepulst mit deutlich höheren Strömen betrieben.
Wie wird sowas dann umgesetzt?

von Jo (jo12345)


Lesenswert?

> Das wird ein bisschen kniffeliger. Das einfachste wäre wohl, einen
> zweiten Arduino als Empfänger zu nutzen.
Okay, ich möchte in Zukunft eh einen Attiny85 20Su benutzten als 
Empfänger, jedoch ist es da schwieriger eine Library einzubauen oder? 
(Speicherprobleme)

von Falk B. (falk)


Lesenswert?

Jo schrieb:
> Heyy,
> ich wollte nun das erste Mal mit einer IR-Led / einem IR-Sensor
> arbeiten.

Diese Diskussion ist in diesem Unterforum falsch. Hier sollen Projekte 
vorgestellt werden, die schon funktionieren. Moderation, bitte mal 
verschieben. Danke.

von Falk B. (falk)


Lesenswert?

Jo schrieb:
>> Das wird ein bisschen kniffeliger. Das einfachste wäre wohl, einen
>> zweiten Arduino als Empfänger zu nutzen.
> Okay, ich möchte in Zukunft eh einen Attiny85 20Su benutzten als
> Empfänger, jedoch ist es da schwieriger eine Library einzubauen oder?
> (Speicherprobleme)

Oder. Ein Tiny85 hat 8k Flash und 512Bytes RAM, das reicht locker für 
einen IR-Empfänger. Zum Thema Reichweite dieser Empfänger bzw. der 
Ansteuerung der IR-LEDs.

Beitrag "Re: Infrarot LED Lichtschranke"

Wobei die Ansteuerung der IR-LED eher zu luxeriös ist. Ein einfacher 
Transistor in Emitterschaltung reicht hier locker bei 38kHz.

https://www.mikrocontroller.net/articles/Transistor#Emitterschaltung

Vorwiderstand für IR-LED nicht vergessen!

: Bearbeitet durch User
von Jo (jo12345)


Lesenswert?

> Oder. Ein Tiny85 hat 8k Flash und 512Bytes RAM, das reicht locker für
> einen IR-Empfänger.
Okay, ich hatte damals Probleme mit dem Code, ich versuche es aber 
nochmal.

> Wobei die Ansteuerung der IR-LED eher zu luxeriös ist. Ein einfacher
> Transistor in Emitterschaltung reicht hier locker bei 38kHz.
Dass heißt ich kann das trotzdem ohne externe Stromquelle machen, die 
Led zieht sich dann halt ihre 100mA direkt von VCC und nicht über den 
Pin.
Und könnte ich da auch dieses Mosfet 2N 7002 NXP verwenden? Das habe ich 
gerade da und sonst müsste ich wieder bestellen.

: Bearbeitet durch User
von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Jo schrieb:
>> Wobei die Ansteuerung der IR-LED eher zu luxeriös ist. Ein einfacher
>> Transistor in Emitterschaltung reicht hier locker bei 38kHz.
> Dass heißt ich kann das trotzdem ohne externe Stromquelle machen,

Hää?

> die
> Led zieht sich dann halt ihre 100mA direkt von VCC und nicht über den
> Pin.

Ein Schaltplan sagt mehr als 1000 Worte. Siehe Anhang.

> Und könnte ich da auch dieses Mosfet 2N 7002 NXP verwenden?

Naja, reicht gerade so.

von Jo (jo12345)


Lesenswert?

Okay perfekt, danke dir.
Auf dem Datenblatt steht jetzt noch peak current 1A und Continous 
current 65mA. Heißt ich kann da Problemlos mit 100mA arbeiten oder?

von Falk B. (falk)


Lesenswert?


: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Jo schrieb:
> Auf dem Datenblatt steht jetzt noch peak current 1A und Continous
> current 65mA. Heißt ich kann da Problemlos mit 100mA arbeiten oder?

Ja selbstverständlich kannst du das! Problemlos. Immer durch mit dem 
Elektronenzeug. Wird schon.

Schau, die Datenblattschreiber machen das ja auch alles nur zum Spaß und 
weil sie sonst nichts Sinnvolles zu tun haben.

von Jo (jo12345)


Lesenswert?

> Ein Schaltplan sagt mehr als 1000 Worte. Siehe Anhang.
Und wenn ich jetzt in Zukunft so 20 IR-Leds mit einem Arduino ansteuern 
wöllte, gäbe es da effiziente Lösungen, um nicht 20 Pins mit 20 
Transistoren zu belegen?

von Ron-Hardy G. (ron-hardy)


Lesenswert?

Ähh? Alle 20 mit einem?

von Jo (jo12345)


Lesenswert?

Ich möchte aber alle unabhängig von einander ansteuern.

von Falk B. (falk)


Lesenswert?

Jo schrieb:
> Ich möchte aber alle unabhängig von einander ansteuern.

Dann brauchst du 20 Ausgänge oder passende ICs, welche 20 zusätzliche 
Ausgänge bereitstellen. Was willst du mit 20 IR LEDs machen? Oder sollen 
das normale LEDs mit sichtbarem Licht sein. Dafür gibt es unzählige 
LED-Treiber ICs.

von Jo (jo12345)


Lesenswert?

> Was willst du mit 20 IR LEDs machen?
Ich will damit an verschiedenen Stellen Daten an einen Empfänger 
übertragen, heißt der Empfänger bewegt sich und an festen Stellen möchte 
ich dann Informationen übertragen.

von Gregor J. (Firma: Jasinski) (gregor_jasinski)


Lesenswert?

Jo schrieb:
> Ich will damit an verschiedenen Stellen Daten an einen Empfänger
> übertragen, heißt der Empfänger bewegt sich und an festen Stellen möchte
> ich dann Informationen übertragen.

Du hast einen langen Weg vor Dir – erstmal den µC begreifen und 
beherrschen, mit Anweisungen wie digitalWrite aus der Arduinojüngerszene 
etc, die im Hintergrund ganze Bildschirme mit Assemblerbefehlen füllen 
(das ist keine Übertreibung), man es aber mit einem einzigen erledigen 
kann, zeigt man den momentanen Stand der Dinge und der prophezeit nichts 
Gutes. Wenn das nach einigen Monaten oder Jahren (manche schaffen es 
nie) abgearbeitet und erledigt ist, kann man sich dem gewünschten TSOP 
nähern – wenn man nicht versteht oder begreift, was im Inneren abläuft 
und wie man den ansteuern sollte bzw. was man mit dem nicht machen darf, 
vor allem aber auch, dass man modulieren und ein Protokoll beim Senden 
und Empfangen verwenden muss, wird das nix – dabei ist so ein TSOP schon 
eine feine Sache und extreme Vereinfachung der Schaltung, denn wenn man 
diese diskret aufbauen müsste, wäre das in diesem Zusammenhang dann eine 
doppelte Katastrophe. Am Ende kann man sich der Beseitigung der 
Störungen in der Übertragung widmen, damit sich die Dinger im Wohn- oder 
Kinderzimmer nicht immer selbständig ein- oder ausschalten bzw. generell 
manchmal falsche Daten dekodiert/übertragen werden – bei der Betrachtung 
ist jetzt erstmal egal, ob mehrere Empfänger oder Sender oder wie auch 
immer verwendet werden. Die letzte Station ist die schwierigste bzw. am 
meisten von den Adepten und Möchte-Gerne-Machen-Leuten unterschätzte 
oder verdrängte.

: Bearbeitet durch User
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.