Skip to content Skip to sidebar Skip to footer

Widget HTML #1

Tutorial 2.4 TFT LCD Shield Arduino (4. Layar Sentuh)

Daftar Tutorial 2.4″ TFT LCD Shield Arduino:

Sebelumnya kita telah membahas bagaimana konfigurasi PIN, menampilkan font, dan menampilkan bitmap/gambar pada 2.4″ TFT LCD ini. Sekarang saya sudah menyediakan progam yang mana digunakan untuk interaksi layar sentuh. Saya sudah menyiapkan programnya di bawah. Program ini sudah saya sesuaikan dengan LCD 2.4″ TFT LCD denga  ID = 0x2035. Bagi teman-teman yang menggunakan TFT dengan ID yang berbeda, silahkan merujuk ke link ini untuk melihat settingan yang sesuai dengan TFTnya.

Program:

#include <Adafruit_GFX.h>
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
#include <TouchScreen.h>
#define MINPRESSURE 10
#define MAXPRESSURE 1000

const int XP=7,XM=A1,YP=A2,YM=6;
const int TS_LEFT = 130, TS_RT = 910, TS_TOP = 100, TS_BOT = 905;

TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

Adafruit_GFX_Button tombolBiruLaut, tombolMerah, tombolHijau, tombolKuning;

int piksel_x, piksel_y;
bool Touch_getXY(void)
{
TSPoint p = ts.getPoint();
pinMode(YP, OUTPUT);
pinMode(XM, OUTPUT);
digitalWrite(YP, HIGH);
digitalWrite(XM, HIGH);
bool pressed = (p.z > MINPRESSURE && p.z < MAXPRESSURE);
if (pressed) {
piksel_x = map(p.x, TS_LEFT, TS_RT, 0, tft.width());
piksel_y = map(p.y, TS_TOP, TS_BOT, 0, tft.height());
}
return pressed;
}

//definisi warna menggunakan format RGB565
#define BLACK 0x0000
#define BLUE 0x001F
#define NAVY_BLUE 0x16DD
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

void setup(void)
{
Serial.begin(9600);
uint16_t ID = tft.readID();
tft.begin(ID);
tft.setRotation(0);
tft.fillScreen(BLACK);
tombolBiruLaut.initButton(&tft, 60, 130, 80, 40, WHITE, NAVY_BLUE, BLACK, "1", 2);
tombolMerah.initButton (&tft, 180, 130, 80, 40, WHITE, RED, BLACK, "2", 2);
tombolKuning.initButton (&tft, 60, 200, 80, 40, WHITE, YELLOW, BLACK, "3", 2);
tombolHijau.initButton (&tft, 180, 200, 80, 40, WHITE, GREEN, BLACK, "4", 2);
tombolBiruLaut.drawButton(false);
tombolMerah.drawButton(false);
tombolKuning.drawButton(false);
tombolHijau.drawButton(false);
tft.fillRect(00, 0, 240, 80, WHITE);
}

void loop(void)
{
bool deteksi = Touch_getXY();
tombolBiruLaut.press(deteksi && tombolBiruLaut.contains(piksel_x, piksel_y));
tombolMerah.press (deteksi && tombolMerah.contains(piksel_x, piksel_y));
tombolKuning.press (deteksi && tombolKuning.contains(piksel_x, piksel_y));
tombolHijau.press (deteksi && tombolHijau.contains(piksel_x, piksel_y));

if (tombolBiruLaut.justReleased())
tombolBiruLaut.drawButton();
if (tombolMerah.justReleased())
tombolMerah.drawButton();
if (tombolKuning.justReleased())
tombolKuning.drawButton();
if (tombolHijau.justReleased())
tombolHijau.drawButton();

if (tombolBiruLaut.justPressed()) {
tombolBiruLaut.drawButton(true);
tft.fillRect(00, 0, 240, 80, NAVY_BLUE);
}
if (tombolMerah.justPressed()) {
tombolMerah.drawButton(true);
tft.fillRect(00, 0, 240, 80, RED);
}
if (tombolKuning.justPressed()) {
tombolKuning.drawButton(true);
tft.fillRect(00, 0, 240, 80, YELLOW);
}
if (tombolHijau.justPressed()) {
tombolHijau.drawButton(true);
tft.fillRect(00, 0, 240, 80, GREEN);
}
}

Hasil:
Demikian tutorial ini, semoga bermanfaat bagi teman-teman. Selamat belajar.

Post a Comment for "Tutorial 2.4 TFT LCD Shield Arduino (4. Layar Sentuh)"