31-07-2015, 17:42
(Ten post był ostatnio modyfikowany: 31-07-2015, 19:09 przez m.bielak91.)
Witam , dziś chciałbym przedstawić schemat podlaczenia i obsługi taniego wyswiatlacza 2.8" 240x320 ze sterownikiem dotyku XPT2046 cena 40-45 zl na Allegro
![[Obrazek: NhhpBW.jpg]](http://imagizer.imageshack.us/v2/320x240q90/537/NhhpBW.jpg)
- Pracuje on na logice 3,3v jesli chemy go podlączyć do 5v np do UNO to bedziemy potrzebowac konwerter pozomów logicznych lub zastosować rezystory
Schemat Podłączenia : do tego celu uzyłem pro mini 3,3v żeby nie sstosowac Dodatkowo konwertera poziomów logicznych
![[Obrazek: zaYrW0.jpg]](http://imagizer.imageshack.us/v2/320x240q90/661/zaYrW0.jpg)
Wyświetlacz:
VCC ----> 3,3V
GDN ----> masa
CS ----> D10
RESET ---->3,3V
D/C ----> D9
SDI(MOSI) ----> D11
SCK ----> D13
LED ----> 3,3V
SDO(MISO) ----> D12
Dotyk:
T_IRQ ----> D6
T_DO ----> D5
T_DIN ---->D4
T_CS ----> D3
T_CLK ----> D2
}
![[Obrazek: NhhpBW.jpg]](http://imagizer.imageshack.us/v2/320x240q90/537/NhhpBW.jpg)
- Pracuje on na logice 3,3v jesli chemy go podlączyć do 5v np do UNO to bedziemy potrzebowac konwerter pozomów logicznych lub zastosować rezystory
Schemat Podłączenia : do tego celu uzyłem pro mini 3,3v żeby nie sstosowac Dodatkowo konwertera poziomów logicznych
![[Obrazek: P3TPEc.jpg]](http://imagizer.imageshack.us/v2/320x240q90/661/P3TPEc.jpg)
![[Obrazek: zaYrW0.jpg]](http://imagizer.imageshack.us/v2/320x240q90/661/zaYrW0.jpg)
Wyświetlacz:
VCC ----> 3,3V
GDN ----> masa
CS ----> D10
RESET ---->3,3V
D/C ----> D9
SDI(MOSI) ----> D11
SCK ----> D13
LED ----> 3,3V
SDO(MISO) ----> D12
Dotyk:
T_IRQ ----> D6
T_DO ----> D5
T_DIN ---->D4
T_CS ----> D3
T_CLK ----> D2
}
Kod:
#include <UTouch.h> // Biblioteka dla dotyku ze sterownikiem XPT2046
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h> // Biblioteka dla sterownika naszego wyswietlacza w tym wypadku ILI9341
#include <SPI.h>
#define TFT_DC 9
#define TFT_CS 10
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
UTouch myTouch(6,5,4,3,2); // piny do podlaczenia dotyku 6- T_IRQ 5- T_DO 4- T_DIN 3- T_CS 2- T_CLK
int x, y;
bool przycisk = false;
void setup()
{
Serial.begin(9600);
myTouch.InitTouch();
myTouch.setPrecision(PREC_HI);
tft.begin();
// pinMode(7, OUTPUT); // Wyjscie diody dla testu
tft.setTextSize(2);
tft.fillScreen(ILI9341_BLACK);
tft.setRotation(2);
tft.setCursor(10, 100);
tft.setTextSize(2);
tft.setTextColor(ILI9341_RED);
tft.setTextWrap(true);
tft.print("test Wyswietlacza ze sterownikiem ILI9341 ");
tft.setCursor(0,180);
tft.print("dotknij gdziekolwiek");
tft.setCursor(10, 280);
tft.setTextSize(2);
tft.setTextColor(ILI9341_BLUE);
tft.setTextWrap(true);
tft.print("Test UTOUCH XPT2046 ");
}
void loop()
{
/* Serial.println("x:");
Serial.print(x);
delay (1000);
Serial.println("y");
Serial.print(y);
delay(1000); */ // odczyt na serial monitorze aktualnej pozycji naszego "palca" na ekreanie ( ulatwia ustalenie wielkosci przycisku ;P )
if(myTouch.dataAvailable())
{
myTouch.read(); // odczyt i wpisanie do x i y pozycji naszego palca na wyswietlaczu
x = myTouch.getX();
y = myTouch.getY();
if(x >= 20 && x <= 220 && y >= 50 && y <= 150) // koordynaty dla odczytu dotyku
{
tft.fillScreen(ILI9341_BLACK);
przycisk = !przycisk;
if(przycisk == true)
{
tft.fillRect(20,50,200,100,ILI9341_YELLOW);
// tutaj dodajemy nasza część kodu np :
// digitalWrite(7,HIGH); // proste włączenie diody po "tapnieciu" w okreslona 7 linijek wyzej czesc ekranu
tft.setTextSize(2);
tft.setCursor(50, 90);
tft.setTextSize(3);
tft.setTextColor(ILI9341_RED);
tft.setTextWrap(true);
tft.print("wlaczone ");
}
else
{
tft.fillRect(20,50,200,100,ILI9341_WHITE);
//nasz kod np:
//digitalWrite(7, LOW); // wyłączenie Diody
tft.setCursor(5, 5);
tft.setCursor(45, 90);
tft.setTextSize(3);
tft.setTextColor(ILI9341_RED);
tft.setTextWrap(true);
tft.print("wylaczone ");
}
}
}
}