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 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:
http://www.sainsmart.com/zen/albums/sku/20/20-011/20-011-c97/20-011-c97/08.jpg
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 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:
und lcdon() so:
der teil geht aber wie man erkennen kann nur mit einem ssd1289 controller!
dann kann man das machen:
jetzt geht das display aus wenn 2 minuten nichts gedrückt wurde und wieder wenn man es berührt
die älteren shields mit dem poti auf der platine kann man ganz leicht ändern. die hier:
http://www.sainsmart.com/zen/albums/sku/20/20-011/20-011-c97/20-011-c97/08.jpg
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 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:
code: [select]
case ssd1289:
lcd_write_com_data( 0x07,0x0000 );
lcd_write_com_data( 0x00,0x0000 );
lcd_write_com_data( 0x10,0x0001 );
break;
und lcdon() so:
code: [select]
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:
code: [select]
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 wenn man es berührt

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+

anonsten gute info! karma+
Arduino Forum > International > Deutsch (Moderator: uwefed) > Anleitung um 3,2" TFT Hintergrundbeleuchtung zu schalten
arduino
Comments
Post a Comment