Signal auf moduliertes Signal modulieren

Hallo,

Ich bin dabei mittels Arduino (ein Mega 2560) eine Lichtschranke zu bauen. Ich nutze dafür eine IR-Diode sowie einen TSOP-31256 als Empfänger.

Die Modulation der Diode funktioniert soweit problemlos, nachdem ich mich etwas in die Materie eingelesen hatte, jedoch mag der TSOP-Empfänger keine dauerimpulse, ich müsste also das modulierte LED-Licht erneut modulieren.

einfach Modulation ||||||||||||||||
aufmodulierte Frequenz ||| ||| ||| |||

als veranschaulichung. Der bisherige Code steuert Timer 5, Pin 46 mit 56 000 Hz an:

  pinMode(PIN_IR, OUTPUT);
  TCCR5A = _BV(WGM51);
  TCCR5B = _BV(WGM53) | _BV(CS50);
  ICR5 = 16000000/2000/56;
  OCR5A = 16000000/2000/56/5;

Nun hängt es bei mir an der Aufmodulierung einer weiteren Frequenz, wie gehe ich vor?

Vielen Dank schon einmal für Antworten. Grüße,

Golfer 86

Hardware: Indem du die zweite Frequenz an einem zweiten Pin ausgibst und beide per UND verknüpfst. Wie hast du die LED angeschlossen? Mit einem Treiber-Transistor bzw. -IC oder direkt?

Man kann das auch per Software machen, aber manchmal ist es schwierig in anderen Libs herumzusuchen und zu -pfuschen. Vom Prinzip her sollte die zweite Routine (mit der tieferen Frequenz) ein Bit ein- und ausschalten und die erste (mit der höheren Frequenz) prüft dieses Bit und gibt daraufhin ihr Signal aus oder nicht ...

Ich kenne mich mit der Hardware leider schlecht aus, zumindest in der Praxis, aber die Realisierung über delays wollte ich vermeiden. Angeschlossen ist die LED momentan direkt (Testaufbau). Wird je nach Reichweite noch geändert.

Mit einem solchen UND-Gatter wäre es möglich? http://www.conrad.de/ce/de/product/172995/CMOS-IC-4073-Gehaeuseart-DIP-14-Ausfuehrung-Drei-UND-Gatter-mit-je-3-Eing/SHOP_AREA_17311&promotionareaSearchDetail=005

Muss ich beim Anschluss eines solchen Gatters etwas beachten?

Danke schonmal für die Antwort.

Muss ich beim Anschluss eines solchen Gatters etwas beachten

Wenn du schon fragst: Ja,klar. (z.B. die Pinbelegung, das Datenblatt im allgemeinen).

Dann ist es besser, unbenutzte Eingänge zu beschalten ( HIGH oder LOW nach Geschmack, nur nicht floaten lassen ).
Aber da gibt's Leute die sagen das sei heute bei CMOS nicht so wichtig.

Bei 2 Signalen und 3 UND Eingängen muss entweder ein Signal auf 2 Eingänge, oder der dritte Eingang hoch gelegt sein.

( Entschuldigung, aber du hast gefragt :wink:

Ok, blöde Frage :wink:

Dann wäre diese Frage geklärt, werde das nur anwenden wenn der TSOP tatsächlich Probleme macht, momentan läuft er mindestens 30 min. ohne Probleme.

Ich hätte noch eine weitere Frage, ohne jetzt einen neuen Thread aufzumachen: Ich betreibe die IR-LED momentan ja direkt am Arduino Ausgang (ist eine LD274 http://www.produktinfo.conrad.com/datenblaetter/150000-174999/153641-da-01-ml-IR_Emitter_LD274_de_en.pdf). Um die Reichweite zu erhöhen bietet sich ja eine Transistor-Schaltung an, die LED verträgt im gepulsten Betrieb bis zu 3A. Da ich so etwas noch nie aufgebaut habe, gibt es Transistoren die hierfür empfehlenswert wären? Und was gibt es bei einer solchen Verstärker-Schaltung und der hohen Frequenz sonst noch zu beachten? Gruß, Golfer86

Normalerweise geht der Vorwärtsstrom in deinem Datenblatt bis max. 100 mA
Bei einem Puls/Pause - Verhältnis von 1:1 und min 1 kHz ist das Maximum 200 mA

Das kannst du mit einem BC337 oder so schalten.

Wenn du wirklich extrem kurze Pulse hinkriegst und tatsächlich größere Ströme schalten willst, ist ein LogicLevel MOSFET besser.
( Ich denke aber, dass dein 56kHz Timer aber einen 1:1 Ausgang liefert )

So hoch ist die Frequenz ( 56kHz ) aber auch wieder nicht.

Also ich würde wie folgt vorgehen:

  1. PWM erzeugt den Träger (das einfach modulierte Signal)
  2. Timerinterrupt so aufsetzen, daß er mit der doppelten Modulationsfrequenz aufgerufen wird.
  3. Im Timerinterrupt die PWM jeweils an bzw. ausschalten)

Was extrem große Ströme und hohe Frequenzen angeht sind MOSFETs nicht besser (wegen den Gatekapazitäten). Wie allerdings schon richtig bemerkt wurde sind 56kHz keine besonders hohe Frequenz.

Ok, danke für die Hinweise.

Ich habe jetzt noch zwei 2N3905 Transistoren gefunden, jedoch fehlt mir der Verstärkungsfaktor hfe zur Widerstandsberechnung.
Zwar ist dieser angegeben, jedoch bei 1V / 100mA. Da ich ja an Kollektor und Basis 5V anliegen habe verstehe ich den Zusammenhang noch nicht so ganz, wie komme ich auf den richtigen Faktor?

Annahme: LED zieht 200mA (maximaler Kollektorstrom).

Datenblatt: http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=A100%252F2N3905_2N3906-CDIL.pdf;SID=13T--FTn8AAAIAAHX0P4w2216c7718e1c38cb5274975cea7b448a

Du brauchst einen Basisvorwiderstand. 2N3055 finde ich für Deine Zwecke eher überdimensioniert. Die Verstärkung ist ja eher schwach, also mindestens 20mA reinpumpen --> Am Widerstand sollen 4V abfallen 4V/20mA = 200 Ohm. Damit Du 40mA reinschieben kannst also 2 Ausgangspins an die Basis und hinter jedem Pin 200 Ohm.

Besser wäre es aber einen Transistor mit etwas weniger Leistung und mehr Verstärkung zu nehmen.

Ein kleiner TO-92 2N3905 ist erstens ein PNP ( Achtung, LED + Widerstand zwischen Collektor und GND, Emitter an 5V ), und dürfte etwas knapp sein, wenn du unbedingt über 100 mA gehen willst.
(In deinem Datenblatt sind 200 mA als Grenzwert und 100 mA der "normale" Arbeitsbereich ).

Nach meinem Verständnis "zieht" eine LED soviel sie kriegt, ich würde sie eher über einen Vorwiderstand begrenzen statt mich auf hFE zu verlassen. Der Basisstrom wird durch einen Widerstand nur so weit begrenzt, dass der Transistor durchschaltet und der Arduino -Pin nicht überlastet wird. Bei 5 .. 10 mA Basisstrom (1k Basiswiderstand) ist hFE fast egal, Vce ist minimal und der LED - Vorwiderstand bestimmt den LED Strom.

3A in die LED seh ich nicht, Udo...

Ich habe die LEDs (2 Stück) in Reihe geschaltet. Ich nehme einen Strom von 150mA / LED und eine Spannung von 1,5V / LED an.

Somit habe ich bei den 5V am Arduino Ausgang 2 V zu vernichten --> LED Vorwiderstand 10 Ohm.

Nehme ich jetzt diesen Transistor BSX 45-16 um beide LEDs gemeinsam zu schalten hätte ich selbst bei 500mA noch ein hfe von >35, also ein Basisstrom von 4,3 mA. Bei (5V - 0,7V) / 0,0043A ergibt sich ein Basiswiderstand von 1000Ohm stimmt das soweit? Desweiteren, bedeutet das dann auch dass der Strom in diesem Falle auf 500mA begrenzt ist? Entschuldigung für die vielen blöden Fragen, aber in Sachen Elektrotechnik kenne ich mich nicht wirklich aus :wink:

1K BasisWiderstand ist immer richtig :wink: , das ergibt einen Basisstrom ( 4.x mA ) der einen Ic von > 150mA erlaubt.

Das Datenblatt erwähnt im eingeschalteten Zustand eine Spannung Vce = 1.0V, die käme zu der Vorwärtsspannung der 2 LED ( 2*1.5V ) noch dazu, bleibt also für den Vorwiderstand nur 1V und somit evtl. ein Wert unter 10 Ohm ( 6,8 Ohm = 1V / 0.150A ) . Die Vce und die LED VF würde ich aber nachmessen.

Ganz ohne Vorwiderstand würdest du schon locker ungesunde 500 mA durch LED und Transistor schicken, falls deine Stromversorgung nicht vorher zu macht.

Du meinst wenn ich die von dir berechneten ca. 10 Ohm vor den beiden LEDs weglassen würde?

Ich habe nochmal nachgesehen, bei 50% Duty-Cycle hat wohl der TSOP seine besten Eigenschaften, also >> 1khz, somit sind die 150 mA wohl absolut kein Problem.

Was ich aber noch nicht ganz verstanden habe ist der Kollektorstrom des Transistors. Wenn der im Datenblatt mit max. 1A angegeben ist, liefert (natürlich bei ausreichender Stromversorgung) die der Transistor dann auch tatsächlich, oder zieht die LED sich was sie benötigt?

Den Vorwiderstand der LEDs darfst Du auf keinen Fall weglassen. Davon abgesehen ist es eine gute Idee den Basiswiderstand etwas kleiner als von Dir berechnet zu wählen. Und zwar so, daß die Basis noch nicht überlastet wird aber der Transistor schön sauber durchschaltet. Dann wird er im Betrieb nicht unnötig warm.

LED haben einen sehr nichtlinearen Innenwiderstand: Wenn die Vorwärtsspannung überschritten wird, fliesst praktisch beliebig viel Strom und zerstört die LED.
Das Strom/Spannungs-Diagramm geht gestrichelt steil aufwärts.

Daher der Vorwiderstand, oder ( bei höheren Strömen ) ein LED Treiber = Stromquelle statt Spannungsquelle.

Das wäre übrigens auch bei deinen 150 mA zu überlegen:
Schalte den Transistor als Konstantstromquelle.
Dazu kommt der 6 Ohm ( oder kleiner ) zwischen Emitter und GND, und du stellst die BasisSpannung = VBE + IE* R
Bei fester Basis-Spannung stellt sich dann der Gesamt Emitter Strom entsprechend dem Widerstand und damit dem Spannungsabfall daran ein.
Die überschüssige Energie wird damit nicht nur im Widerstand, sonden auch im Transistor verbraten, aber jeweils 1V und 150 mA sollte kein Thema sein.

( So seh ich das als Elektronik-Neuling, bessere Erklärungen, Kommentare und Korrekturen würden mich auch interessieren. )

Konstantstromquelle wollte ich eigentlich weglassen, die Schaltung sollte so simpel wie möglich werden.

Nur zu Sicherheit nochmal: Den Transistor mit max. 1A (BSX 45-16) aus dem früheren Post kann ich problemlos nehmen?
Natürlich mit dem Vorwiderstand und eventuell einem kleineren Basiswiderstand.

Habe ich das dann richtig verstanden, solange ich die LED nicht über der zulässigen Spannung betreibe, reguliert sich der Strom automatisch?

Hi, ich wollte nochmal kurz auf die Impulse eingehen.
Ich habe bei mehreren Lichtschranken schon den TSOP mit (31, 38, 40) KHz verwendet und habe niemals eine zweite Frequenz überlagern müssen. Ich habe den Grundtakt vorgegeben und hatte keine weiteren Probleme, auch nicht nach längerer Zeit.

Mich wundert es daher, das du dies machen musst / willst.

Ich habe bei bestimmten Duty-Cycles das Problem gehabt, dass die TSOPs oder aber auch der Arduino nach ca. 30min nicht mehr reagierten, was nur durch ein kurzes Stromlos schalten des Boards behoben werden konnte.

Edit: @Jomelo, was hast du für Reichweiten erzielt? Ich habe vor die Schaltung auch im freien (Sonnenlicht) einzusetzen, natürlich mit Blenden vor dem Sender/Empfänger.

Ich habe mich mit der Reichweite bisher nur minimal beschäftigt. Meine Lichtschranke ging über einen Abstand von 2 cm bis 1,5m. Das größte Problem war die Streuung der Infrarotdiode. Desweiteren habe ich das Projekt nie unter Sonneneinstrahlung getestet, da dieser Fall nicht eintreten konnte.

Habe ich das dann richtig verstanden, solange ich die LED nicht über der zulässigen Spannung betreibe, reguliert sich der Strom automatisch?

Ich seh es anders rum: Bei jedem halbwegs vernünftigen Strom ist die Spannung an der LED ziemlich konstant. Den Strom musst du einstellen.

Spiel mal mit einer einfachen kleinen LED, einem Poti und einem 100 Ohm Widerstand ( alles in Reihe an 5V ).
Der 100 Ohm Widerstand zeigt dir den Strom, je nach Poti-Stellung sollten 0,2V ( 2mA ) bis 2V (20mA) zu sehen sein,
bei ziemlich konstanter Spannung an der LED. Erst wenn die LED fast dunkel ist, bricht die Spannung zusammen.

Eine Konstantstromquelle ist nicht viel komplizierter. Du musst nur eine feste Referenz-Basis-Spannung vorgeben. Dafür reichen schon 2 Dioden ( je 0.7 V )
http://www.elektronik-kompendium.de/sites/slt/0210253.htm

Im angefügten LTSpice - Bild sind andere LED, daher ist die Spannung höher, aber egal ob 9V oder 12V in V2, der Strom ist immer bei ca. 140 mA
Der von dir gewählte Transistor sollte ähnlich passen.

Edit: Der Wert von RB im Bild ist übrigens die Untergrenze ( und zieht 16 mA aus dem Arduino - Pin ) 470 Ohm geht auch (bei 8 mA).

Konstantstrom.PNG