AlexSD Posted February 10, 2020 Share Posted February 10, 2020 Salut. Am și eu o problemă cu ecranul TFT 480x320 (ILI9481 driver). Acesta este conectat direct la Arduino MEGA, am instalat bibliotecile UTFT și URTouch. Când folosesc unul din exemple date, afișează perfect totul, dar touchscreenul nu funcționează. Ar mai trebui să instalez ceva vreo bibliotecă sau vreun driver? Vă mulțumesc. Codul este următorul: // URTouch_QuickPaint // Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved // web: http://www.RinkyDinkElectronics.com/ // // This program is a quick demo of how to use the library. // // This program requires the UTFT library and a display // module with at least 320x240 pixels resolution. // // It is assumed that the display module is connected to an // appropriate shield or that you know how to change the pin // numbers in the setup. // #include <UTFT.h> #include <URTouch.h> // Initialize display // ------------------ // Set the pins to the correct ones for your development board // ----------------------------------------------------------- // Standard Arduino Uno/2009 Shield : <display model>,19,18,17,16 // Standard Arduino Mega/Due shield : <display model>,38,39,40,41 // CTE TFT LCD/SD Shield for Arduino Due : <display model>,25,26,27,28 // Teensy 3.x TFT Test Board : <display model>,23,22, 3, 4 // ElecHouse TFT LCD/SD Shield for Arduino Due : <display model>,22,23,31,33 // // Remember to change the model parameter to suit your display module! UTFT myGLCD(ILI9481,38,39,40,41); // Initialize touchscreen // ---------------------- // Set the pins to the correct ones for your development board // ----------------------------------------------------------- // Standard Arduino Uno/2009 Shield : 15,10,14, 9, 8 // Standard Arduino Mega/Due shield : 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield for Arduino Due : 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board : 26,31,27,28,29 // ElecHouse TFT LCD/SD Shield for Arduino Due : 25,26,27,29,30 // URTouch myTouch( 6, 5, 4, 3, 2); // Declare which fonts we will be using extern uint8_t BigFont[]; int color = 0; word colorlist[] = {VGA_WHITE, VGA_BLACK, VGA_RED, VGA_BLUE, VGA_GREEN, VGA_FUCHSIA, VGA_YELLOW, VGA_AQUA}; int bsize = 4; void drawColorMarkerAndBrushSize(int col) { myGLCD.setColor(VGA_BLACK); myGLCD.fillRect(25, 0, 31, 239); myGLCD.fillRect(myGLCD.getDisplayXSize()-31, 161, myGLCD.getDisplayXSize()-1, 191); myGLCD.setColor(VGA_WHITE); myGLCD.drawPixel(25, (col*30)+15); for (int i=1; i<7; i++) myGLCD.drawLine(25+i, ((col*30)+15)-i, 25+i, ((col*30)+15)+i); if (color==1) myGLCD.setColor(VGA_WHITE); else myGLCD.setColor(colorlist[col]); if (bsize==1) myGLCD.drawPixel(myGLCD.getDisplayXSize()-15, 177); else myGLCD.fillCircle(myGLCD.getDisplayXSize()-15, 177, bsize); myGLCD.setColor(colorlist[col]); } void setup() { myGLCD.InitLCD(); myGLCD.clrScr(); myGLCD.setFont(BigFont); myTouch.InitTouch(); myTouch.setPrecision(PREC_HI); myGLCD.setColor(VGA_WHITE); myGLCD.drawLine(32,0,32,myGLCD.getDisplayYSize()-1); myGLCD.drawLine(myGLCD.getDisplayXSize()-32,0,myGLCD.getDisplayXSize()-32,myGLCD.getDisplayYSize()-1); myGLCD.print("C", myGLCD.getDisplayXSize()-24, 8); myGLCD.print("L", myGLCD.getDisplayXSize()-24, 24); myGLCD.print("E", myGLCD.getDisplayXSize()-24, 40); myGLCD.print("A", myGLCD.getDisplayXSize()-24, 56); myGLCD.print("R", myGLCD.getDisplayXSize()-24, 72); myGLCD.print("+", myGLCD.getDisplayXSize()-24, 136); myGLCD.print("-", myGLCD.getDisplayXSize()-24, 200); myGLCD.fillRect(myGLCD.getDisplayXSize()-32,96,myGLCD.getDisplayXSize()-1,128); myGLCD.drawLine(myGLCD.getDisplayXSize()-32,160,myGLCD.getDisplayXSize()-1,160); myGLCD.drawLine(myGLCD.getDisplayXSize()-32,192,myGLCD.getDisplayXSize()-1,192); myGLCD.drawLine(myGLCD.getDisplayXSize()-32,224,myGLCD.getDisplayXSize()-1,224); for (int i=0; i<8; i++) { myGLCD.setColor(colorlist[i]); myGLCD.fillRect(0, (i*30), 24, (((i+1)*30)-1)); } drawColorMarkerAndBrushSize(color); } void loop() { long x, y; while (myTouch.dataAvailable() == true) { myTouch.read(); x = myTouch.getX(); y = myTouch.getY(); if ((x!=-1) and (y!=-1)) { if (x>(31+bsize) and (x<myGLCD.getDisplayXSize()-(31+bsize))) { if (bsize==1) myGLCD.drawPixel(x, y); else myGLCD.fillCircle(x, y, bsize); } else { if (x<(30+bsize)) { if (y<240) { color = y / 30; drawColorMarkerAndBrushSize(color); while (myTouch.dataAvailable()) {}; delay(50); } } else { if (y<96) { myGLCD.setColor(VGA_BLACK); myGLCD.fillRect(33, 0, myGLCD.getDisplayXSize()-33, myGLCD.getDisplayYSize()-1); myGLCD.setColor(colorlist[color]); } if ((y>128) and (y<160)) { if (bsize<7) { bsize++; drawColorMarkerAndBrushSize(color); while (myTouch.dataAvailable()) {}; delay(50); } } if ((y>160) and (y<192)) { bsize=4; drawColorMarkerAndBrushSize(color); while (myTouch.dataAvailable()) {}; delay(50); } if ((y>192) and (y<224)) { if (bsize>1) { bsize--; drawColorMarkerAndBrushSize(color); while (myTouch.dataAvailable()) {}; delay(50); } } } } } } } Link to comment
nico_2010 Posted February 11, 2020 Share Posted February 11, 2020 Ai incercat sa incarci sketch-ul " URTouch_Calibration "? Ce rezultate ai obtinut? Problema ta pare sa fie lipsa conexiunilor la circuitele pentru "touch" ori nealocarea corespunzatoare a pinilor pentru aceasta facilitate. Link to comment
AlexSD Posted February 11, 2020 Author Share Posted February 11, 2020 Da, dar tot la fel, nu pot apăsa pe niciunul dintre aceștia. Cred și eu că în soft nu sunt alocați corect pinii pentru touch, dar pentru Mega, am citit că trebuie declarat astfel: URTouch myTouch( 6, 5, 4, 3, 2); Problema este că ecranul nu este conectat la niciunul dintre pinii aceștia, el find pe partea dreaptă de la 22 la 53. Link to comment
nico_2010 Posted February 11, 2020 Share Posted February 11, 2020 Si in acest caz, cum te astepti sa functioneze? Modifica alocarea pinilor in concordanta cu pinout-ul LCD-ului tau! Link to comment
AlexSD Posted February 11, 2020 Author Share Posted February 11, 2020 Acum 4 minute, nico_2010 a spus: Si in acest caz, cum te astepti sa functioneze? Modifica alocarea pinilor in concordanta cu pinout-ul LCD-ului tau! Am pus de aici, dar ai dreptate cred că aceștia sunt doar pentru shield, nu? : // Standard Arduino Uno/2009 Shield : 15,10,14, 9, 8 // Standard Arduino Mega/Due shield : 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield for Arduino Due : 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board : 26,31,27,28,29 // ElecHouse TFT LCD/SD Shield for Arduino Due : 25,26,27,29,30 // URTouch myTouch( 6, 5, 4, 3, 2); Link to comment
nico_2010 Posted February 11, 2020 Share Posted February 11, 2020 (edited) inainte de altceva posteaza o fotografie cu LCD-ul pe care il ai, fata si verso, ca sa vedem ce pinout ai si daca ai si chip-ul de touch. Asigura-te ca ai si shield-ul pentru display. Edited February 11, 2020 by nico_2010 Link to comment
AlexSD Posted February 11, 2020 Author Share Posted February 11, 2020 (edited) Nu am shield pentru display, am văzut pe yt videoclipuri în care nu foloseau shield, și le funcționa display-ul. Am încercat și cu pinii următori, dar tot la fel. : 26,31,27,28,29 25,26,27,29,30 http://www.lcdwiki.com/3.2inch_Arduino_Display-Mega2560 ... S-ar putea să nu fie cu touch? De unde l-am cumpărat scria ca este cu touch. Edited February 11, 2020 by AlexSD Link to comment
informer Posted February 11, 2020 Share Posted February 11, 2020 Cat de sigur esti ca acel afisaj are touch? Mie personal nu mi se pare ca-i obligatoriu sa aibe... Link to comment
AlexSD Posted February 11, 2020 Author Share Posted February 11, 2020 Chiar acum, informer a spus: Cat de sigur esti ca acel afisaj are touch? Mie personal nu mi se pare ca-i obligatoriu sa aibe... Asta mă gândeam și eu acum..după numeroase încercări.. Încerc să găsesc videoclipul, în care cineva (cu acest display) putea desena pe ecran. Mulțumesc oricum. Link to comment
informer Posted February 11, 2020 Share Posted February 11, 2020 Panglica aia care se vede este pt. afisajul propriu zis... ce am eu de ex. cu touch, mai are o panglica mai ingusta pt. touch-ul rezistiv.... Link to comment
Bandi Szasz Posted February 11, 2020 Share Posted February 11, 2020 (edited) Pare totusi sa aiba, daca te uiti atent la poza se observa o panglica mai mica pe partea dreapta jos insa daca vad bine are doar 3 trasee in loc de 4 (cel putin pe care l-am avut eu aveau 4 trasee pentru touch) Edited February 11, 2020 by Bandi Szasz Link to comment
vijelie02 Posted February 11, 2020 Share Posted February 11, 2020 Ecranul ala nu are touch. Link to comment
nico_2010 Posted February 11, 2020 Share Posted February 11, 2020 (edited) Mi-e teama ca nu are touchscreen. https://hallroad.org/3.2-inch-ips-tft-lcd-display-ili9481-480x320-36-pins-for-arduino-mega2560.html La specificatii, pct.11: Touch function: none. Si aici: https://arduino-shop.eu/arduino-platform/1571-lcd-tft-32-ips-rgb-display-shield-for-arduino-mega-2560.html aceeasi poveste! Edited February 11, 2020 by nico_2010 Link to comment
AlexSD Posted February 11, 2020 Author Share Posted February 11, 2020 Da, asta este, vă mulțumesc frumos tuturor. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now