Forum: Analoge Elektronik und Schaltungstechnik HT16K33 getrenntes Dimmen


von D a v i d K. (oekel) Benutzerseite


Lesenswert?

Hi,

ich ersetze gerade einen anderen LED-Treiber durch den HT16K33.
Dabei sitzen LED-Treiber, 4x 7-Segment, 3 Taster (davon einer 
beleuchtet) auf einer separaten Platine.

Bislang ging ein 10 Poliges Kabel vom Hauptboard zu diesem 
Display-/Tasterboard.

Da der HT16K33 auch key-scan unterstützt würde ich gerne die Verbindung 
der beiden Boards auf ein Minimum ausdünnen (==nur noch I2C & 
Spannungsversorgung)
Und die Steckverbindung symmetrisch aufbauen (=indirekter 
Verpolungsschutz)

Nun gibt es an der Sache nur einen Haken:
Bislang hat der Kunde die Dimmfunktion des LED-Treibers dafür genutzt, 
um die Helligkeit der u.U. abweichenden 7-Segmentanzeigen an jene des 
beleuchteten Tasters anzupassen.

Daher frage ich mich nun, ob es irgendeinen Trick gibt, um diese zwei 
LEDs des Tasters zwar einerseits über den HT16K33 anzusteuern, aber 
gleichzeitig
- a) getrennt von den Anzeigen "anders" zu dimmen
- b) unabhängig konstant leuchten zu lassen,

so dass ich wie gewohnt eine Anpassung vornehmen kann.

Grüße Oekel

: Bearbeitet durch User
von D a v i d K. (oekel) Benutzerseite


Lesenswert?

Kann darf ich hier mit einem Transistor arbeiten?

Also Eingangsseitig des Transistors kommt eines der "gedimmten" Ausgänge 
des HT16K33 ran, so dass dieser daraus wieder ein binäres 0V || +5V 
macht, welches ich danach mit 150Ohm als LED Vorwiderstand auf eine 
konstantes Leuchten bringe.

Ist das denkbar? Wenn ja, wie sähe da die konkrete Beschaltung aus?

Grüße Oekel

von Micha W. (blackxiiv)


Lesenswert?

Hi,

Wenn ich das Datenblatt richtig verstanden habe ist die Dimm-Funktion 
für ALLE ROW-Pins gleich wirksam. Du kannst also leider nicht einzelne 
ROWs einfach übers Dimm-Register steuern.

Um eine LED die an einer ROW hängt dimmen zu können müsstest du den 
HT16K33 kontinuierlich mit deinen Daten füttern wo dein Wert drin steht 
für das Display und du das bit für die ROW einzeln steuerst zB.:

Ich gehe jetzt mal davon aus, dass du ein 16bit langes Datenwort hast 
wobei am MSB deine LED hängt und Bit 7-0 deine Daten fürs Display (zB 
0xFF). Ich habe absolut keine Ahnung wie man den IC anspricht und wie 
der arbeitet aber ich hoffe du verstehst was ich meine. Die 
Dimm-Funktion machen wir einfach aus, also immer volles Pfund auf die 
Anzeige und auch den Ausgang für deine LED. Dann sähe der Ablauf im 
Programm ungefähr so auf.


   LED-Steuerpin (ROW15) ---,         ,,,,,,,,,--- Daten Display-Matrix
HT16K33 füttern mit 0x80FF (1000.0000.1111.1111)
Display updaten!
HT16K33 füttern mit 0x80FF (1000.0000.1111.1111)
Display updaten!
HT16K33 füttern mit 0x80FF (1000.0000.1111.1111)
Display updaten!
HT16K33 füttern mit 0x00FF (0000.0000.1111.1111)
Display updaten!
HT16K33 füttern mit 0x80FF (1000.0000.1111.1111)
Display updaten!
HT16K33 füttern mit 0x80FF (1000.0000.1111.1111)
Display updaten!
HT16K33 füttern mit 0x80FF (1000.0000.1111.1111)
Display updaten!
HT16K33 füttern mit 0x00FF (0000.0000.1111.1111)
Display updaten!

Das 0x**FF ändert sich natürlich je nach dem was du anzeigen willst. 
Damit hättest du dann 75% der Zeit die LED an.

Ich weiß aber nicht was dein Programm noch alles macht und wie oft du 
dein Display updatest. Wie gesagt - einfach so geht das nicht einzeln, 
nur durch Software Work-a-round.

Ansonsten zu dem Transistor (Ich gehe von 'nem NPN aus):

Ausgang -> 1 kOhm -> Basis vom Transistor
V+ -> LED Anode - LED Kathode -> Collector vom Transistor
GND -> 200 Ohm -> Emitter vom Transistor

Gruß,
Micha

: Bearbeitet durch User
von D a v i d K. (oekel) Benutzerseite


Lesenswert?

Micha W. schrieb:

> Ausgang -> 1 kOhm -> Basis vom Transistor
> V+ -> LED Anode - LED Kathode -> Collector vom Transistor
> GND -> 200 Ohm -> Emitter vom Transistor


Hi Micha,
ich würde dann doch die HW-Variante bevorzugen, da mein µC doch schon 
recht gut am rechnen ist.

Möchte an dieser Stelle nicht bestreiten, dass ich noch mal einige 
Seiten Basiswissen zu Transistoren nachholen muss. Ich hoffe es sind mir 
dennoch einige dumme Fragen dazu erlaubt?

1. Bisher sah ich immer nur Beschreibungen unter den Begriffen der 
REINEN
 - Kollektorschaltung (der Transistor arbeitet dann als Spannungsfolger, 
am Emiter liegen immer 0,7V weniger an als an der Basis) |
- Emitterschaltung (Universal-Verstärkerschaltung)

Dort war Vorwiderstand der LED sowie LED selbst auf der gleichen Seite 
(also C oder E)

2. Wir reden in deinem NPN Beispiel also von einer klassischen 
Emitterschaltung , da 200 Ohm als Last am Emitter anliegen?

3. (Bisher konnte ich dies im DatenBlatt noch nicht verifizieren, 
aber...)
Gehen wir davon aus, dass der HT16K33 irgendwo zwischen 0.5 und 3.0V 
dimmt.
Wie stelle ich dann sicher, dass meine Transistorschaltung (als 
Schalter) mit bei 1.0V schaltet?

4. Auf 3. bezogen: LEDs sind doch konstantSTROM abhängig (nicht 
Spannung) Der Transistor jedoch Spannungsabhängig (oder verwechsel ich 
da nun etwas?)

5. Auch auf 3 bezogen: Ich vermute das der HT16K33 intern mittels PWM 
dimmt. Müsste ich dies dann nicht erst vor dem NPN glätten?

An dieser stelle, dürfen mir gerne Leselektüren ans Herz gelegt werden 
(vorzugsweise in digitaler Form, da ich heute Abend noch 6 Std. Zugfahrt 
vor mir habe ;)


Vielen Danke für alle weiteren Anmerkungen.

Grüße Oekel

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.