Anleitung um 3,2" TFT Hintergrundbeleuchtung zu schalten

Weiß nicht ob es jemanden interessiert. Wahrscheinlich ist es auch schon bekannt, da ich die Informationen auch nur von wo anders habe. Aber man kann das TFT Shield leicht so modifizieren dass man die Beleuchtung an- und ausschalten kann.

Die älteren Shields mit dem Poti auf der Platine kann man ganz leicht ändern. Die hier:

Bei dem von ElecFreak (das ich habe) ist es etwas mehr Gefummel aber auch einfach:
http://www.elecfreaks.com/store/index.php?main_page=popup_image&pID=214

Da hat ist statt dem Poti ein fester 10 Ohm Widerstand drin. Den lötet man aus und ersetzt ihn durch einen PNP Transistor. Von dem Anschluss des Widerstands der auf die Beleuchtungs-LEDs geht geht man über 10 Ohm auf den Kollektor. Der Emitter geht auf 3,3V. Und von der Basis geht man auf einen I/O Pin. Siehe Bild unten.

Auch habe einen Digital-Pin genommen, aber es wäre hier auch möglich das Display über PWM zu dimmen.

Den alten 10 Ohm Widerstand wiederzuverwenden wird etwas schwierig sein, da der sehr klein ist. Ich habe einen größeren SMD Widerstand genommen weil ich keinen Drahtwiderstand in der Größe hatte…

Das geht wahrscheinlich nicht nur bei den 3,2" Displays, sondern bei allen wo man an den Vorwiderstand auf dem Shield herankommt.

Dann sollte man noch die Lib anpassen. Wenn man nur die Display LEDs abschaltet läuft die Ansteuerung noch, auch wenn man nichts sieht. Das ist bei UTFT schnell gemacht.
Man erweitert lcdOff() so:

	case SSD1289:
		LCD_Write_COM_DATA( 0x07,0x0000 );
		LCD_Write_COM_DATA( 0x00,0x0000 );
		LCD_Write_COM_DATA( 0x10,0x0001 );
		break;

und lcdOn() so:

	case SSD1289:
		LCD_Write_COM_DATA( 0x07, 0x0021 );
		LCD_Write_COM_DATA( 0x00, 0x0001 );
		LCD_Write_COM_DATA( 0x07, 0x0023 );
		LCD_Write_COM_DATA( 0x10, 0x0000 );
		delay(30); 
		LCD_Write_COM_DATA( 0x07, 0x0033 );
		LCD_Write_COM_DATA( 0x11, 0x60B0 );
		LCD_Write_COM_DATA( 0x02, 0x0600 );
		LCD_Write_COM( 0x22 );
		break;

Der Teil geht aber wie man erkennen kann nur mit einem SSD1289 Controller!

Dann kann man das machen:

const unsigned long DISPLAY_TIMEOUT = 120 * 1000UL;
unsigned long displayTimeout;
boolean displayIsOn = true;

UTFT display(ITDB32S, 38,39,40,41);
UTouch touch(6,5,4,3,2);
UTFT_Buttons buttons(&display, &touch);

void loop()
{
   displayBacklight();
   checkButtons();
}

void displayBacklight()
{   
   if(displayIsOn && (millis() - displayTimeout > DISPLAY_TIMEOUT))
   {
	displayIsOn = false;

	digitalWrite(DisplayBacklightPin, HIGH);        //off
	display.lcdOff();
   }
}

void checkButtons()
{
  if(touch.dataAvailable() == true)
  {
    displayTimeout = millis();
		
    if(displayIsOn == false)
    {
	displayIsOn = true;
	buttons.checkButtons();
	display.lcdOn();
	digitalWrite(DisplayBacklightPin, LOW);   //on
        return;
    }

    //hier normale Button Abfrage
  }
}

Jetzt geht das Display aus wenn 2 Minuten nichts gedrückt wurde und wieder an wenn man es berührt :slight_smile:

Das mit der Optik üben wir noch mal :) Gut dass das TFT oben drauf später ist. Entsprechend abkleben wird hier denke mal auch nötig sein, oder? Habe keine 3,2" Displays da ich die nicht benötige, aber bestimmt sind auf der Rückseite auch leicht zugängliche Lötstellen, die dadurch kurzgeschlossen werden könnten.

Anonsten gute Info! Karma+

Ja, Tesafilm habe ich drüber damit das durch die Kabel nicht in der Luft herumschwirrt und eventuell was auf dem Display berührt. Direkt darüber ist der Touch Controller wenn es aufgesteckt ist.

Hallo Serenifly,

was muss denn für o.g. Displayabschaltung für ein 7"TFT mit SSD1963 geändert werden?

Nur SSD1289 ersetzen durch SSD1963?
Kannst mir grob erklären was da passiert wenn lcdon bzw off dieser case aufgerufen wird…???

Und zu dem Elec Mega V2 TFT shield, sind die von Dir 8 markierten Pins auf der Doppelleiste(42-49) “alle” noch frei verfügbar?

Wo kann ich zu den Shield n Datenblatt bekommen?

Habe V2.2 mit 7" TFT SSD1963

MfG Chris

Hi

Meinst Du nicht, daß der Thread hier etwas Ruhe verdient hätte? Meinst Du nicht, daß Du, da Du ein anderes Display verwendest, einen neuen Thread dazu hättest eröffnen sollen? Gerne kannst Du darin ja hierher verlinken. Meinst Du nicht, daß Google (oder eine Suchmaschine Deiner Wahl) irgendwo ein PDF ausgräbt, Das mit dem Zeichensalat 'SSD1963' irgend was auf sich hat? z.B. Klick

Loschder: was muss denn für o.g. Displayabschaltung für ein 7"TFT mit SSD1963 geändert werden?

Dazu sollte man die Datenblätter beider Displays vergleichen

Nur SSD1289 ersetzen durch SSD1963?

Wenn Du auf Deinem Auto Ford durch Jaguar ersetzt, was passiert? Sehr wahrscheinlich wird Dein Sinnen nicht zum Erfolg führen.

... Wo kann ich zu den Shield n Datenblatt bekommen? ...

Eine x-beliebige Suchmaschine könnte dazu was ausspucken. Alternativ sollte Dein Händler Dir sämtliche Daten zu dem von Ihm verkauftem Zeug geben können - MUSS Der sogar können.

MfG

postmaster-ino: Meinst Du nicht, ... Meinst Du nicht, ... Meinst Du nicht, ...

Nöö... mein ich NICHT nicht !

Dieser Fred hat genau das Shield mit der für mich angedachten modifizierten Funktion - ja er ist etwas älter, aber alt ist nicht gleich schlecht :confused:

Meinst DU nicht, dass es auch andere Meinungen gibt?

Das Datenblatt zu dem TFT Sheet habe ich bereits gefunden... aber ich bin nicht soooo der Elektronik-Freak, daher hätte ich gerne ne Bestätigung gehabt.

Und auch wenn ich zu beiden TFT´s die Datenblätter hätte...was ich tatsächlich nicht habe... dann wäre es für meine selbst angeeigneten "wenige" Kenntnisse sehr schwer zu verstehen... da ich noch nicht einmal weiß wonach ich suchen muss/soll.

C.U. Chris

Der Software-Teil um den Controller abzuschalten ist nicht von mir. Das hatte ich hier glaube ich irgendwo im Forum gefunden. Keine Ahnung ob die Befehlssequenz mit einem anderen Controller identisch ist. Vielleicht nicht.

Und zu dem Elec Mega V2 TFT shield, sind die von Dir 8 markierten Pins auf der Doppelleiste(42-49) “alle” noch frei verfügbar?

Ja. Du siehst auf der Platine ob da Leitungen zu den Pins gehen

Habe hierzu noch den fred rausgekramt:

https://forum.arduino.cc/index.php?topic=342461.0

Hier wird weiter unten der SSD1963 genannt.

Was ich nicht verstehe:

Bei deinen Änderungen stehen mehr zeilen

das hier ist laut datenblatt SSD1963 LCD off

LCD_Write_COM( 0x10);

und hier für on

LCD_Write_COM( 0x11 );

Was sind denn bei deinem Beispiel die anderen Zeilen(0x00 und 0x07)

Speziell zu 0x07 habe ich nichts gefunden, und würde man nicht eher 0x28 bzw 0x29 nehmen(set display on/off)?

Datenblatt ist z.B. hier: https://www.buydisplay.com/download/ic/SSD1963.pdf