Ich habe einige Reverse-Engineering-Arbeiten am Protokoll für eine Fernbedienung durchgeführt, die ... scheiße ist. Ich ersetze es durch ein eigenes Design, aber obwohl ich die Benutzeroberfläche verbessert habe, sind die Reichweite und der Blickwinkel meines Systems schrecklich. Ich möchte das so schnell wie möglich abschließen ... Ich, äh, habe meine Original-Fernbedienung zerstört, während ich versucht habe, meine eigene zu debuggen. =]
Also, wie jeder gute Geek, dachte ich, ich würde von den Erfolgen anderer borgen und zog den Schaltplan für den TV B Gone hoch:
Meine Frage ist, warum für jede LED einen Widerstand und einen Transistor haben, anstatt die LEDs in Reihe zu schalten und sie mit einem einzelnen Transistor zu steuern, der wiederum vom Arduino-Pin gesteuert wird, der über einen einzelnen Widerstand hereinkommt.
Ich habe keine Bedenken, es auf die gleiche Weise zu implementieren (offen gesagt, ich bin versucht, nur zum Spaß etwa 32 LEDs, Widerstände und Transistoren zu verwenden), aber ich würde gerne verstehen, warum es so gemacht wurde.
Die Durchlassspannung für eine IR-LED ist viel niedriger als für eine LED mit sichtbarem Licht, typischerweise etwa 1,3 V, steigt jedoch an, wenn Sie wirklich hohe Ströme wie > 100 mA durch sie leiten. Es scheint keinen Grund zu geben, warum Sie nicht zwei davon in Reihe schalten könnten, insbesondere wenn Ihre Vcc 5 V betragen würde. Wenn Ihre Vcc jedoch von einem Paar AA-Batterien stammt, ist der Spannungsabfall von zwei LEDs + die Sättigungsspannung des Transistors kann in die Nähe von Vcc kommen und das könnte den Ausgangsstrom begrenzen.
Die beiden Ausgänge zum Ansteuern der vier LEDs dienen dazu, den Ausgang des Mikrocontrollers nicht zu überlasten. Oder besser gesagt, sollte eine Überladung vermeiden. Ein 120-Ω-Widerstand bedeutet 35 mA Basisstrom pro Transistor, und das ist bereits zu viel für den AVR, geschweige denn die 70 mA, die er jetzt ziehen wird.
Der 2N3904 ist dafür auch kein guter Transistor: Er ist nur für 100 mA ausgelegt und der niedrige hFE erfordert den hohen Basisstrom. Ein BC337-40 hat einen hFE von mindestens 250 bei 100 mA Kollektorstrom, dann sollten 5 mA Basisstrom ausreichen, um ihn anzutreiben. Mit einem Basiswiderstand von 820 Ω können Sie alle vier Widerstände von einem Pin aus ansteuern. Der BC817 ist ebenfalls für 500 mA ausgelegt.
Alternativ könnten Sie einen FET verwenden, um die LEDs anzusteuern. Ein PMV20XN kann mehrere Ampere verarbeiten und hat einen Einschaltwiderstand von nur 25 mΩ, sodass er kaum Leistung abgibt. 1,5 V Gate-Spannung reichen für 2,5 A.
bearbeiten
Eine Anmerkung zur Strombegrenzung. Normalerweise haben wir dafür einen Widerstand in Reihe mit der LED, aber wenn Sie sich den Schaltplan einer handelsüblichen Fernbedienung ansehen, fehlt dieser Widerstand oft, weil sie dafür auf den Innenwiderstand der Batterien zählen und dann einen anderen sparen 0,001 Dollar pro Fernbedienung.
Dies ist keine gute Idee, wenn Sie von einem netzbetriebenen Spannungsregler aus speisen. Das wird den Strom begrenzen, aber auf einem zu hohen Niveau, und wenn es die LED nicht sofort zerstört, wird ihre Lebensdauer stark eingeschränkt. Daher wird ein kleiner Vorwiderstand empfohlen. Bei einer 5-V-Versorgung und 2 LEDs in Reihe haben Sie einen Spannungsabfall von etwa 2,9 - 3,0 V. Für 100 mA benötigen Sie also einen 30-Ω-Widerstand. Die Spitzenleistung beträgt 300 mW, aber bei einem Arbeitszyklus von 50 % beträgt die durchschnittliche Leistung nur 150 mW, dann reicht ein 1/4-W-Widerstand aus.
Wenn Sie die LEDs in Reihe schalten, benötigen Sie eine höhere Spannungsversorgung, um sie alle anzusteuern. Und wenn Sie sie parallel schalten, kann dies zu Problemen führen, wenn die LED-Eigenschaften nicht gut aufeinander abgestimmt sind oder wenn Ihr Transistor nicht den Strom aller LEDs gleichzeitig verarbeiten kann.
Möglicherweise haben sie aus Gründen der Flexibilität mehrere Mikrocontroller-Pins verwendet – zum Beispiel hat dieses Gerät jetzt die Möglichkeit, weniger LEDs zu beleuchten und dadurch Batteriestrom zu sparen.
Es scheint mir, dass die Schaltung erwartet, dass die 3904 die Strommenge, die durch sie fließt, auf die richtige Menge für die LED begrenzt. Da der Transistor anstelle eines Widerstands verwendet wird, um den Strom zu begrenzen, und da jede parallel verdrahtete LED (oder LED-Kette) ihre eigene Strombegrenzungsvorrichtung benötigt, bedeutet dies die Verwendung eines separaten Transistors für jede LED. Ich glaube nicht, dass ich eine Schaltung auf diese Weise entwerfen würde, da sie empfindlich auf das Beta der 3904 reagiert und die Beta-Eigenschaften von Transistoren normalerweise nicht sehr genau spezifiziert sind. Dennoch hat die Schaltung den Vorteil, dass der Strom etwas weniger empfindlich auf VDD reagiert, als wenn sie einfach einen hart schaltenden Transistor und dann Vorwiderstände für die LEDs verwenden würde.
Was die Verwendung von zwei Prozessorpins zur Steuerung von zwei separaten LEDs betrifft, würde ich vermuten, dass der Controller sie möglicherweise zu unterschiedlichen Zeiten aktiviert, wenn die LEDs in wesentlich unterschiedliche Richtungen zeigen. Infrarot-Fernsignale wechseln typischerweise zwischen 50 % PWM und aus. Wenn man während der "50% PWM"-Zeit abwechselnd zwei LED-Sets ansteuert, würde sich der benötigte Spitzenstrom halbieren. Der einzige Nachteil wäre, dass alles, was nur Licht von einer LED sah, eine Trägerwelle voller Stärke sehen würde, aber etwas, das etwas Licht von beiden LEDs sah, würde eine Trägerwelle sehen, deren Stärke der Unterschied in der Stärke des Lichts der beiden LEDs war . Dieser Faktor könnte abgemildert werden, indem beispielsweise ein 25%-PWM-Signal verwendet wird und die beiden Lichtsätze in benachbarten Viertelzyklen betrieben werden. Dies würde die Verwendung höherer LED-Ströme ermöglichen, was die reduzierte Empfindlichkeit der Empfänger gegenüber nicht 50% PWM-Wellen ausgleichen würde. Außerdem würde ein Gerät, das Licht von beiden LEDs sah, einen schönen 50%-Träger sehen.
Benutzer30997
Benutzer30997