Hallo, Ich möchte einige IR-Reflexschranken effizient ansteuern. Eine einzelne Reflexschranken besteht aus einem NPN-Transistor, der über die Basis von einem Atmega angesteuert wird. Er wird mit 36kHz getaktet. Am Kollektor hängt eine IR-LED. Die Transistorschaltung ist so ausgelegt, dass durch die LED 100mA fließen. Nun möchte ich weitere LEDs auf diese Weise betreiben. Wenn die alle gleichzeitig angesteuert werden, würden ja bei 20 LEDs bereits 2A in der Spitze fließen. Das ist mir aber zu viel. Weiterhin reicht mit bei den Reflexschranken eine weitaus geringere "Reaktionszeit" aus. Es würde mir also ausreichen, wenn ich die LEDs nacheinander ansteuere, sodass jede LED alle 100ms für wenige ms betrieben wird. Wie realisiere ich das am besten, wenn ich nicht jede LED einzeln über einen Atmega-Out ansteuern möchte? Habt ihr da Ideen? Danke und Gruß.
Highii H. schrieb: > Wie realisiere ich das am besten, wenn ich nicht jede LED einzeln über > einen Atmega-Out ansteuern möchte? z.B. mit Schieberegistern TPIC6B595 über SPI
W.A. schrieb: > z.B. mit Schieberegistern TPIC6B595 über SPI Puh, wird das nicht schwierig? Wie würde man es machen? Innerhalb der 36kHz alle Seriellen Daten in die Schieberegister geben und nach 36kHz alle Ausgänge der Schieberegister aktivieren!?
Hallo, > Highii H. schrieb: > Nun möchte ich weitere LEDs auf diese Weise betreiben. Wenn die alle > gleichzeitig angesteuert werden, würden ja bei 20 LEDs bereits 2A in der > Spitze fließen. das nur, wenn die LED alle parallel betrieben werden. Man könnte aber auch einige in Reihe schalten. Wie viele in einer Reihe möglich sind, hängt von der Spannung ab. Um Strom zu sparen, muß man ja die LED auch nicht im Dauerbetrieb ansteuern. Bei Burst oder Einzelimpulsen mit einem rel großen Duty cycle braucht es viel weniger Energie. Gruß Öletronika
U. M. schrieb: > Um Strom zu sparen, muß man ja die LED auch nicht im Dauerbetrieb > ansteuern. Bei Burst oder Einzelimpulsen mit einem rel großen Duty cycle > braucht es viel weniger Energie. Sie werden sowieso mit Einzelimpulsen betrieben. Das verlangt der IR-Empfänger. Aber wenn ich 20 LEDs gleichzeitig mit Einzelimpulsen von 100mA betreibe, sind es trotzdem 2A.
Sehe ich das richtig, dass zu jedem beliebigen Zeitpunkt nur eine LED an sein muss? Dann würde ich ein Bankswitchung Schema machen. LEDs je in 8er Blöcken parallel anordnen zusammen mit ihren Transistoren. Vcc dieses Blocks ist per p-fet abschaltbar. Der hängt auch an nem µC Pin. Die Basisanschlüsse der Blocks werden zusammengeführt und auf einen µC Port gelegt. Irgendein Port wo mindestens 7 Pins frei sind. Jetzt schaltest du p-fet1 an, lässt die LEDs leuchten, schaltest den wieder aus und wiederholst das Gleiche für die beiden anderen Blocks. Braucht man insgesamt nur 10 Pins für. Und man kann die LEDs zeitlich hintereinander einschalten, sodass nie mehr als 100mA fließen.
Highii H. schrieb: > Hallo, > Es würde mir > also ausreichen, wenn ich die LEDs nacheinander ansteuere, sodass jede > LED alle 100ms für wenige ms betrieben wird. Wie realisiere ich das am > besten, wenn ich nicht jede LED einzeln über einen Atmega-Out ansteuern > möchte? > Von diversen Herstellern gibt es schon seit Jahren kaskadierbare Mehrkanal-LED-Treiber. Für Deine Anwendung wären unter anderem z.B. 3x TLC5916/17 geeignet, um bis zu 24 IR-LEDs direkt mit Konstantstrom anzusteuern, auch wahlweise nacheinander (wie gewünscht) statt alle gleichzeitig. Der Maximalstrom wird für alle Kanäle eines Bausteins global mit einem Widerstand eingestellt. Bei den genannten Bausteinen lässt er sich dann auch noch global in 256 Stufen per Software reduzieren. Andere Bausteine erlauben auch individuelle Stromeinstellungen per Ausgang. Je nach Ausführung sind sogar einige Überwachungsfunktionen integriert (Unterbrechung, Kurzschluss, Übertemperatur). Fehler werden ggf. vom seriellen Ausgang dieser Bausteine zum µC zurückgeführt. Diese Methode mit seriell kaskadierten Bausteinen (Schiebetakt bei TLC59xx bis zu 25 MHz) erspart eine Menge I/O-Leitungen beim µC und durch die Konstantstromsenken auch weitere diskrete Bausteile zum Ansteuern der IR-LEDs. TLC5926/27 hätten 16 statt 8 Ausgänge. Für 24 IR-LEDs könnte man statt 3x TLC5916 also auch 1x TLC5616 + 1x TLC5926 nehmen. Drei kleinere Gehäuse erlauben aber möglicherweise ein besseres Platinen-Layout.
W.A. schrieb: > Highii H. schrieb: >> Wie realisiere ich das am besten, wenn ich nicht jede LED einzeln über >> einen Atmega-Out ansteuern möchte? > > z.B. mit Schieberegistern TPIC6B595 über SPI Und damit es effizient wird, nimmt man Scheberegister mit OE-Pin, an den man den 36kHz Träger anlegt. Alternativ statt am OE-Pin den Träger am anderen Anschluß der LED anlegen. Klartext: das Bitmuster für die gewünschte(n) LED in die Schieberegister einschieben. Den Träger für die Dauer eines Bursts einschalten. Und wieder von vorn.
Hallo, > Highii H. schrieb: > Sie werden sowieso mit Einzelimpulsen betrieben. Das verlangt der > IR-Empfänger. Aber wenn ich 20 LEDs gleichzeitig mit Einzelimpulsen von > 100mA betreibe, sind es trotzdem 2A. ehe du dir an dieser Stelle einen großen Aufwand machst, mal ein Vorschlag, der in eine andere Richtung geht. Die 2A hören sich jetzt gefährlich an, aber wenn die nur innerhalb rel. kurzer Impulsbelastung auftreten, dann reicht ein ausreichend großer Kondensator (Elko) um das abzufangen. Ein C mit 1000uF entlädt sich um 1V wenn er eine Sekunde mit 1000uA = 1mA entladen wird. Er entlädt sich auch um 1V wenn er 1ms mit 1A entladen wird. Ein Elko mit 4700uF kann man schon über 2ms mit 2A entladen um einen Spannungsabfall von 1 V zu erreichen. Bei 39kHz hkannst du also schon eine Menge Impulse mit 2A ausgeben, wenn du z.B. 4700uF als Puffer nutzt. Gruß Öletronika
U. M. schrieb: > Bei 39kHz hkannst du also schon eine Menge Impulse mit 2A ausgeben, wenn > du z.B. 4700uF als Puffer nutzt. Das klingt sehr interessant. Darüber denke ich mal nach. Mir ist noch was anderes eingefallen. Einen 74HC154 kann ich über 4 Leitungen am Atmega ansteuern. Es ist ein 4-to-16 Line Decoder/demultiplexer. An einem der 16 Ausgänge liegt ein Low, an den anderen 15 ein High. Ich führe das 36kHz Taktsignal mit jeweils einem UND verknüpft zu den Basen der Transistoren. (Ich benötige jeweils noch einen Inverter). Jedenfalls kann ich dann mit den 4 Steuersignalen des 74HC154 eine von 16 LEDs auswählen. Bei diesem kommt das 36kHz Taktsignal. Bei den anderen stets Null. Was meint ihr?
Deine Transistoren kannst du auch durch ULN2803 oder ähnlich ersetzen, erspart einiges an Lötarbeit. Wenn ich es richtig sehe kannst du über E0 und E1 den Ausgang steuern, sprich du musst danach nur noch invertieren und dann direkt auf die Treiber. Beim Pulsen E0 und E1 auf Low und dann zügig die Adressen über A0-A3 durchschalten oder besser immer Zieladresse wählen und dann E0/E1 auf Low für deinen Puls (einen der beiden kannst du direkt auf Low legen). Ich würde schauen, ob es den nicht direkt nicht invertiert gibt. Ansonsten einen LED Treiber benutzen der alles schon drin hat. TLC59116 oder besser noch PCA9685, der bietet einen staggered Output. "The PCA9685 allows staggered LED output on and off times to minimize current surges. The on and off time delay is independently programmable for each of the 16 channels. This feature is not available in PCA9635."
Noch eine Ansatz ist jedenmal 3 LEDs in Serien zu schalten (wen du 5 V Versorgungspannung zu Verfugung hatte). Ueber eine IR-Led ist ca 1.3 V Spannungsabfal. Damit wird das Stromverbrauch zu ein Drittel.
Highii H. schrieb: > Einen 74HC154 kann ich über 4 Leitungen am Atmega ansteuern. Es ist ein > 4-to-16 Line Decoder/demultiplexer. An einem der 16 Ausgänge liegt ein > Low, an den anderen 15 ein High. Ich führe das 36kHz Taktsignal mit > jeweils einem UND verknüpft zu den Basen der Transistoren. (Ich benötige > jeweils noch einen Inverter). Das sind die beiden Schwachstellen deines Plans. Zum einen hat der '154 die falsche Polarität am Ausgang, um genau einen von 16 Transistoren in einem z.B. ULN2803 anzusteuern. Zum zweiten ist es heftig Aufwand, da 16 NANDs hinter den Decoder zu schalten. Viel besser ist es, einen der ENable Eingänge des Encoders mitzuverwenden. Und zwar indem du ihn in Ruhelage auf H hältst und sobald du die LED ausgewählt hast, mit einer passenden Anzahl L-Impulse bei 36kHz beschickst. Wenn du dann als Treiber noch pnp-Transistoren verwendest (gerne auch als Emitterfolger) dann geht auch der '154. Sonst suche halt einen Decoder mit H-aktiven Ausgängen. Oder nimm ein Schieberegister.
RP6conrad schrieb: > Noch eine Ansatz ist jedenmal 3 LEDs in Serien zu schalten (wen du 5 V > Versorgungspannung zu Verfugung hatte). Ueber eine IR-Led ist ca 1.3 V > Spannungsabfal. Damit wird das Stromverbrauch zu ein Drittel. Drei sind zuviel. Bei hohem Pulsstrom (den wird der TE brauchen) sind es eher 1.5 bis 1.7V pro IR-LED. Am Transistor fällt auch noch Spannung ab (erst Recht wenn es ein integrierter Darlington ist). Und schließlich soll auch am Vorwiderstand noch etwas Spannung abfallen, damit man den Strom halbwegs kontrollieren kann.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.