Ich möchte mich gerne mit diesem Beitrag hier im Forum vorstellen. In einem aktuellen Projekt beschäftige ich mich mit einem POV (persistence of vision) display. Ich bin schon recht weit gekommen – das Display läuft in einer ersten Version prima. Nun arbeite ich an einer Weiterentwicklung. Diesmal sollen 40 LEDs zum Einsatz kommen. Mein Problem besteht nun darin, die Helligkeit dieser LEDs per Arduino zu steuern. Mein Aufbau sieht in etwa so aus: * Stromversorgung induktiv per Royer Converter (der Artikel https://www.mikrocontroller.net/articles/Royer_Converter ist „Gold wert“). * Der Rotor wird mit einem CD-drive-Motor angetrieben * Das Display wird durch einen Arduino-nano gesteuert. * Trigger per Hall Sensor A3144 * Pro Umdrehung werden pro LED 340 „Pixel“ nacheinander ausgegeben. Wenn man z.B. mit 10 Umdrehungen pro Sekunde arbeitet (ich nehme normalerweise weniger), so ergibt sich eine „Pixelfrequenz“ von 3400 Hz. Das schafft der nano ganz gut. * In der Neuauflage möchte ich 2x20 LEDs verwenden (2x3mm, weiß). Die LEDs sollen über 5 Schieberegister TPIC6C595 (von TI) angesteuert werden, so dass genügend Strom zur Verfügung steht. Die LEDs laufen bei je 20 mA, Vorwärtsspannung 3,2 V. Hier mein Problem: Die LEDs sind unglaublich hell. Erstaunlich, was da heute geht. Ich würde sie daher gerne dimmen. Einstellung über den Arduino (der empfängt den Befehl per IR – Remote Control - auch das geht schon). Die Frage ist nur: WIE dimmen? Lösungsansätze: 1. Zunächst fällt mir PWM ein, zumal der Arduino das ja nativ sogar mitbringt. Allerdings befürchte ich, dass die Pulse der LEDs durch die Rotation des Displays sichtbar werden würden. Um das zu verhindern, bräuchte man eine hohe PWM-Frequenz. Wenn man von den 3400 Hz Pixelfrequenz ausgeht, so wäre m.E. mindestens die 50 oder 100-fache PWM-Frequenz notwendig. Dies würde also z.B. 340 KHz entsprechen. Kann der Arduino 340 kHz PWM? Ich müsste dann den Strom aller LEDs zusammen schalten – Strom maximal 400 mA – und das bei 340 kHz – nicht ganz trivial, oder? Dennoch würde mir diese Lösung sehr gut gefallen – da eben alles Digitaltechnik wäre (da fühle ich mich wohl). 2. Der alternative Ansatz wäre die Regelung des LED-Stroms. Mir fehlt allerdings eine Idee, wie man das sinnvoll machen könnte. Die Schieberegister haben pro bit einen open drain DMOS -Ausgang, über die ich die LEDs schalte. Siehe Bild. Im Prinzip könnte man nun U_LED regeln, aber wie? Habt Ihr eine Idee? Ich bin sehr auf Eure Gedanken gespannt. Danke für Euer Feedback, Ludwig
:
Bearbeitet durch User
Ludwig M. schrieb: > WIE dimmen? PWM geht nicht, weil durch die Bewegung dann ein Pixel nicht mehr so breit wie ein Pixel wird, sondern schmaler. Also nimm statt TPIC6B595 und Vorwiderständen besser CAT4016=DN13C=STP16CP05=PCA9626B bei dem die Helligkeit über nur 1 Widerstand gesteuert wird und wähle den passenden Widerstand bzw. schalte per uC um
Vielen Dank für den Hinweis auf den CAT4016. Den Chip kannte ich noch nicht und er ist definitiv sehr interessant. Mir gefällt, dass er 16 bit hat und dass er eben mit nur einem Widerstand auskommt. Beim 595 braucht man die doch lästigen Widerstandsnetzwerke. Den Widerstand beim CAT4016 zur Stromeinstellung für die LEDs zu schalten sollte irgendwie gehen - mal sehen. Ich beschaffe mir mal ein paar 4016 - schade, dass es den nur als SMD gibt - nicht so ideal für Breadboard (damit fange ich an, bevor ich ein PCB mache). Ich bin inzwischen noch etwas der PWM nachgegangen. Vielleicht geht es ja doch mit etwas niedrigerer Frequenz (sagen wir mal 60 kHz). Wenn ich das richtig verstehe, kann der Arduino nano das schon, allerdings reduziert sich dann die Auflösung der PWM. Das wiederum sollte kein großes Problem sein, denn ich kann die Helligkeit ja in ein paar wenigen Stufen (z-B- 4 oder 8) einstellen. Für die Steuerung der LEDs habe ich eine sehr simple Idee: der TPIC6C595 hat einen Steuereingang „Output enable“ (G) - damit kann man alle LEDs ausschalten, bzw. auf den Registerwert setzen. Genau diesen Eingang würde ich mit dem PWM-Signal versorgen, that‘s it. Der Rest ist Software. Einfacher geht nicht.
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.