1.8" Color TFT Display ST7735 dimmen?

Ein freundliches "Guten Tag" an die Hardwarefreaks,

mein erstes Display ( TFT -> eBay ) habe ich nun in Einsatz gebracht. Da mir dies aber nachts zu hell ist, würde ich es gerne dimmen.

Der Kontakt für die Hintergrundbeleuchtung wird mit 3,3V direkt vom Arduino (Uno) versorgt. Mein Frage nun:

Kann ich die Hintergrundbeleuchtung einfach an einen analogen Pin (PWM) anschliessen und über analogWrite(x) die Helligkeit steuern?

Wenn ich recht verstanden habe, dann kommen am PWM-Ausgang bis zu 5V an. Also müsste ich "x" über die Software begrenzen, damit ich nicht über 3,3 V komme. Wieveil mA braucht so eine Hintergrundbeleuchtung? Den Port darf man wohl nur mit 40 mA belasten.

Freue mich auf Eure Antworten ....

Hallo,
mir wäre es zu riskant, einen 3,3v Verbraucher an einen 5v Ausgang zu hängen.
Nimm doch für die Beleuchtung ein Poti. 5 oder 10k. Rechts-3,3v, Mitte-Beleuchtung, Links-GND.
Dann einfach mal probieren ob die Spannung zusammenbricht.
Gruß und Spaß
Andreas

Poti zum testen ist ok, aber sonst kann ich ihn nicht einsetzen, da der TFT an einen Lenker kommt. Ich versuche Öffnungen im Gehäuse des TFT zu vermeiden, da ja nicht immer die Sonne scheint (wie wir diesen Sommer wieder feststellen) :confused:
Ich bin ja kein Elektroniker, aber gibt es da nicht so eine Schaltung mit Widerstand als Spannungsteiler? Könnte man so nicht auf 3,3 V begrenzen?

Den Strom, den deine Hintergrundbeleuchtung benötigt, kannst du leicht messen. Nimm ein Multimeter und stell es auf mA. Dann in die Leitung einschleifen.

Du kannst per PWM-Pin einen Transistor ansteuern mit dem du wiederum die Hintergrundbeleuchtung dimmst.

Optimal ist es, wenn du die Helligkeit mit einem "Foto-Widerstand" misst und damit den PWM-Ausgang steuerst.

Strom messen kann ich am Montag, da kann ich mir ein Multimeter in der Firma ausleihen.

Tja, ".... einen Transistor ansteuern" .... für Dich sicherlich kein Problem.
Wenn ich bei Conrad reinschaue, sehe ich so viele verschiedene Transistor-Typen, dass mir ganz anders wird. Ich habe keine Vorstellung welcher Transistor geeignet wäre, wie der angeschlossen werden muss, warum das funktionieren sollte. Ist ein Transistor nicht so etwas wie ein Verstärker? Brauche ich nicht eher einen "Verschwächerer?

Ne, automatisch brauche ich (noch ?) nicht. Ich möchte das Ding erst einmal per Taster dimmen.

Salut

Ist ein Transistor nicht so etwas wie ein Verstärker? Brauche ich nicht eher einen "Verschwächerer?

Die Anwendungsmöglichkeiten von Transistoren sind ungefähr so vielfältig, wie ihre Anzahl. Die Verstärkung ist nur eine davon. Er kann aber auch ganz einfach als eine Art Schalter verwendet werden, mit dem du über den digitalen Pin des Arduinos das Display ein und ausschalten kannst. Wenn du das Teil nun ganz schnell hintereinander ein und ausschaltest (mittels PWM), sieht das für dein träges Auge aus, als würde es weniger hell leuchten.

Am besten liest du mal die Referenz über PWM analogWrite() - Arduino Reference
und anschliessend was über Transistoren, z.B. hier unter Bauteile, danach oben im Dropdown Transistor http://www.elektronik-kurs.de/online/index.html

Dein Display hat allerdings einen herausgeführten LED Pin. Eventuell liesse sich da mit einem Vorwiderstand direkt ein PWM Signal anlegen. Müsste man mal auf dem Datenblatt nachkucken.

Ich habe mir nun ein Messgerät geliehen und es zwischen Arduino und TFT geklemmt. (Einstellung mA und DC).
Das Messgerät zeigt als MAX 64,62 mA und als AVG 64,42 mA an.

Einen Transistor als ("leicht durchlässigen") Schalter verwenden, habe ich kapiert. Auch das ich durch die Frequenz des Ein-und Ausschaltens die Trägheit des Auges nutzen kann, ist klar.

Durch das Senden eines Wertes (analogWrite) 0-255 kann ich die Spannung zwischen 0 und 5V regeln. Kann ich mir das so vorstellen, dass eine niedrigere Spannung am Pin durch "vorzeitiges Auschalten" der Spannung erzeugt wird? Also dass die steigende Spannungskurve nicht bis 5V kommt, sondern bei z.B. 4V schon wieder abgeschaltet wird. In etwa ein pulsierender / getackteter Gleichstrom?

Da am PWM-Pin ein positives Signal anliegt, brauche ich wohl einen NPN-Transistor.
Ist diese Schaltung richtig?

Die LED hat 3,3 V und 65 mA, der Arduino PIN 5V. Wie ich den Transistor und den Widerstand bestimme ist mir noch nicht klar. Hat jeder Transistor eine Verlustspannung von 0,7 V oder nur der angegebne Typ (BC107/16) im Elektonik-Kurs?

Hast du den Gesamtstrom des TFT gemessen oder nur den der Led?
Für die Led erscheint mir das zu hoch.

Und deine Transistorschaltung funktioniert so nicht.
Ich poste dir gleich eine Schaltung, wie ich es bei meinem TFT gelöst habe.

Ich habe nur den Strom der LED gemessen. Ich denke es ist nicht "eine" LED, sondern es sind mehrere LEDs, da es sich ja um eine Hintergrundbeleuchtung eines Displays handelt.

Funktioniert so nicht? Mist, dann habe ich was nicht verstanden .... Oder habe ich nur die LED verkehrt herum gezeichnet?

gj99:
Ich habe nur den Strom der LED gemessen. Ich denke es ist nicht “eine” LED, sondern es sind mehrere LEDs, da es sich ja um eine Hintergrundbeleuchtung eines Displays handelt.

Funktioniert so nicht? Mist, dann habe ich was nicht verstanden … Oder habe ich nur die LED verkehrt herum gezeichnet?

Ich setze hier 2,2" TFT ein und da braucht die Led <3 mA mit einem 47 Ohm Widerstand.

Evtl. hast du keinen Widerstand eingebaut, aber 64 mA sind einfach zu viel.

Nachfolgende Schaltung verwende ich zum Dimmen des TFT.Led-Treiber.jpg

In deiner Schaltung ist die Led ja auch am PWM-Anschluss, somit macht das keinen Sinn.

Edit:
Ich habe eben noch mal nachgemessen. Die Led der Hintergrundbeleuchtung braucht bei mir mit 47 Ohm Vorwiderstand an 3,3 Volt 2,4 mA.
Das verwendete TFT ist ein 2,2" und ähnlich deinem: Mein 2,2" TFT

Vielen Dank für das Schaltungsbild. JP2 verstehe ich nicht ! PIN 1 auf Masse ?

Nein, ich habe keinen Widerstand eingebaut :-[ Ich habe es so verstanden, dass ich den TFT "direkt" anschließen kann.

Ich habe noch einmal gemessen, aber .....

Das würde ich so nicht lange machen, dann ist die Led kaputt.
Jede Led benötigt einen Vorwiderstand.

JP2 in meinem Schaltbild ist ein Anschlussblock, den brauchst du nicht.

hotsystems:
da braucht die Led <3 mA

Ziemlich viel Aufwand für eine 2,4 mA LED, meinst du nicht?

  • Bei 60 mA könnte ich ja noch verstehen, dass du einen Transistor nimmst,
  • Wenn du für die TFT - LED den GND nicht schalten kannst, brauchst du ab 20mA einen PNP oder P-Channel, und ab 5V nochmal einen NPN davor,

… aber so ?

Die LED hat 3,3 V und 65 mA, der Arduino PIN 5V. Wie ich den Transistor und den Widerstand bestimme ist mir noch nicht klar. Hat jeder Transistor eine Verlustspannung von 0,7 V oder nur der angegebne Typ (BC107/16) im Elektonik-Kurs?

Die LED “hat” evtl. 3.3V und verträgt bis zu 65 mA. Vermutlich liefert der Arduino auch nicht mehr, und seine Ausgangsspannung am Pin sinkt auf ca 4V ab bei 64,6 mA (0,7V am Transistor und 3,3V an der LED)

Das hält der Arduino-Pin aber nicht aus auf Dauer, ist auf jeden Fall ausserhalb der Spezifikation.
Probier mal, ob das Display nicht hell genug mit knapp 20 mA ist :

Pin  o----- 100 Ohm ---- LED ----  17mA ----o GND
            1.7V        3.3V

wenn das zu dunkel ist, brauchst du mehr Strom als ein Signalpin liefern kann, und dein Transistor kommt ins Spiel: Der Strom aus dem Signal-Pin geht dann über einen Widerstand in die Basis und steuert damit einen größeren Strom (woanders her)

michael_x:
Ziemlich viel Aufwand für eine 2,4 mA LED, meinst du nicht?

Du hast natürlich Recht.

Ich bin immer zu vorsichtig. :wink:
Aber in diesem Fall habe ich einfach eine vorhandene Schaltung übernommen, die zuvor eine andere Funktion inne hatte.

In der Tat tut es ein 220 Ohm Widerstand direkt am Ausgang des Atmega auch, nur da muss ich die ganze Platine umbauen.
Werde ich aber machen, sobald ich wieder daran eine Änderung machen muss.

@gj99

Um hier noch mal das Thema aufzugreifen, was Michael_x angesprochen hat. Der Transistor ist in diesem Fall tatsächlich überflüssig. Ich bin da auch nur ein wenig vorsichtig (und weil vorhanden) rangegangen.

Wenn du die Hintergrundbeleuchtung über einen Widerstand von 1 kOhm (habe ich jetzt bei mir so eingesetzt) an den PWM-Pin des Uno anschließt, sollte das funktionieren. Aber einfach dann nochmal den Strom messen.

Bei mir ist die Helligkeit deutlich ausreichend und es fließen noch 5 mA. Der Rest kann über PWM geregelt werden.

Aber nochmals, den Widerstand brauchst du unbedingt.

Vielen Dank erst einmal für Eure Rückmeldungen ! Eure Beiträge lösen aber ein Verständnisproblem bei mir aus, ich möchte noch mal nachhaken.

HotSystems:
Das würde ich so nicht lange machen, dann ist die Led kaputt.
Jede Led benötigt einen Vorwiderstand.

Das eine LED einen Vorwiderstand braucht ist bereits zu mir durchgedrungen. Aber kann ich nicht davon ausgehen, dass der Hersteller des TFT diese bereits eingebaut hat? Auf einem Video zum Produkt ist die LED auch ohne Widerstand angeschlossen :o Als maximale Eingangsspannung wird jedoch 3,2 V angegeben.

Oder soll der Widerstand "nur" verwendet werden, damit der 3,3V PIN vom Arduino nicht zu sehr belastet wird. Lt. Angabe soll dieser nur 50mA liefern können ... und ich habe ja nicht nur den TFT dran.

Ich habe jetzt mal den 3,3V-Pin über einem 100 Ohm Widerstand angeschlossen und den Strom gemessen. Es fließen 5,64 mA, aber der TFT ist zu dunkel. Ich versuche, dass gerade auch mal zu begreifen. Liege ich mit meiner Rechnung richtig ?

U = R x I = 100 * 0,00564 = 0,564 V

Der Spannungsabfall am Widerstand beträgt ca. 0,5 V? Also fließt also eine Spannung von ca. 3,3 V - 0,5 V = 2,8 V und ein Strom von 5,64mA ?

Jetzt möchte ich ja, dass die Spannung maximal 3,2 V beträgt. Also muss ich bei 5V am PWM-Pin durch den Vorwiderstand 1,8 V abbauen. Wie rechne ich das denn? "I" ändert sich doch ...

Hier der Link zu meinem TFT bei Eckstein:
TFT Eckstein
Da steht: "verwenden Hintergrundbeleuchtung Stromversorgung (LED-polig): maximal 3,2 V ".
Mit "LED-polig" kann ich nichts anfangen ...

Ja, was denn nun?
Kannst du dich bitte mal festlegen, welches Display du verwendest.

Das "erste" von ebay hat einen eigenen Anschluss für die Led.
Das "zweite" von Eckstein hat keinen eigenen Anschluss für die Led.
Das sind komplett unterschiedliche TFTs.

Nach deinem Foto sieht es nach ebay-TFT aus.

Sieh dir mal die Rückseite deines TFT an und sende mal ein Bild davon.

Da kann man erkennen, ob ein Widerstand für die Led drauf ist oder nicht.

Du kannst nicht immer davon ausgehen, das ein Widerstand eingebaut ist. Bei meinen ist keiner drauf.

Deine Berechnung (oben) stimmt soweit. Wenn du den Widerstand für 5 Volt berechnen möchtest, muss du einen Strom vorgeben, der für die Led bestimmt ist. Rechne mal anfangs mit 20 mA und Spannungsabfall von 1,8 Volt.

Sorry, Du hast recht, es ist das Erste, dass eBay-TFT. Das Eckstein sah auf den ersten Blick gleich aus :disappointed_relieved:

R = U / I = 1,8V / 0,02A = 90 Ohm.

Habe ich nicht, also nehme ich mal 100 Ohm.
Ich habe den 5V-Pin genommen und mit dem 100 Ohm Widerstand einen Strom von 19,38 mA gemessen.
Die Helligkeit könnte einen Tick besser sein.

Der PWM-Pin darf mit 20mA belastet werde, also bin ich mit 100 Ohm hart an der Grenze. Wenn ich jetzt den Widerstand etwas verkleinere wird mein Strom dann höher?

Die "angenommenen" 20 mA sind ein Erfahrungswert? Herleiten kann man dies nicht?

Das max. an Strom aus einem Signal-Pin ist 40 mA. (atmel Datenblatt). Ausserdem gibt es noch Grenzen für Summen aus mehreren Pins.
Mit der Hälfte davon liegst du auf der sicheren Seite. Übliche Signal-LED sind auch meist mit einem Dauerstrom von 20 mA angegeben.

Teste doch mal aus, mit welchem Strom dein TFT hell genug ist. Einfach den Widerstand kleiner machen.

Ich wundere mich dennoch. Mein TFT ist mit 2,5 mA sehr hell. Die Unterschiede sind da ja gewaltig.