這次測試觸控面板來控制LED的ON/OFF動作

Arduino DUE(I/O可輸出等電位,直接控制TFT面板OK)

IMG_1557.JPG

 

LED

IMG_1558.JPG

 

寫個小程式如下

在TFT面板畫兩個按鈕

按綠色LED ON

按紅色LED OFF

(用手按或用觸控筆都可以)

IMG_1556.JPG

 

測試開始

按綠色按鈕

IMG_1567.JPG

 

LED亮了

IMG_1560.JPG

 

按綠色按鈕

IMG_1568.JPG

 

LED熄滅了

IMG_1566.JPG

 

一開始不知道觸控的座標與面板相對應的位置

按了按鈕LED完全不受控制

增加顯示按壓點座標的程式後一邊壓螢幕一邊看座標

才解決這問題

當然了解以後

座標顯示就可以隱藏起來

IMG_1570.JPG

 

由於不熟悉TFT面板的觸控控制 

簡單的動作還花費不少時間在網路上找資料

老男人覺得好有趣呢

就像有人喜歡聽音樂

有人喜歡動漫

---------------------------------------------------------

按鈕文字背景色修正為與按鈕同顏色

IMG_1595.JPG  

 

這類小螢幕其實可以運用在自動控制

例如可以當機器或電器的人機介面

通常有螢幕顯示與可觸控操做的電器是不是卡高級呀^^

 

-----20181017 更新------

 //程式僅供參考 無商業行為 任何問題請自行負責 解決

#include <UTFT.h>
//UTFT myGLCD(CTE32HR,25,26,27,28);
#include <UTouch.h>
//UTouch myTouch(6,5,4,3,2);
extern uint8_t BigFont[];
UTFT myGLCD(ILI9341_16,38,39,40,41);
UTouch myTouch( 42, 43, 44, 45, 46);
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF820
#define PURPLE 0x780F
#define GREEN 0x07E0
#define DARKGREEN 0x03E0
#define CYAN 0x07FF
#define DARKCYAN 0x03EF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define DARKGREY 0x7BEF
#define MAGENTA 0xF81F

 

int Relay = 3;
int X, Y, X_RAW, Y_RAW;
void setup() {
myGLCD.InitLCD();
myGLCD.setFont(BigFont);
myTouch.InitTouch();
myGLCD.clrScr();
pinMode(Relay, OUTPUT);
OnOffButton();
}
void loop() {

if (myTouch.dataAvailable() == true){

myTouch.read();
X_RAW=myTouch.TP_X;
Y_RAW=myTouch.TP_Y;
X=myTouch.getX();
Y=myTouch.getY();
delay(200);
myGLCD.clrScr();

if ((X >= 250) && (X<=360) && (Y>=10) && (Y<=100)){
digitalWrite(Relay,1);}

if ((X >= 125) && (X<=240) && (Y>=10) && (Y<=100)){
digitalWrite(Relay,0);}

OnOffButton();

}

 

}
void OnOffButton()
{
//on button
if (digitalRead(Relay)==HIGH){
myGLCD.setColor(GREEN);
myGLCD.fillRect(10,10,100,100);
myGLCD.setColor(RED);
myGLCD.drawRoundRect(10,10,100,100);
myGLCD.setColor(WHITE);
myGLCD.setBackColor(GREEN);
myGLCD.print("ON", 40,50);}
else {
myGLCD.setColor(DARKCYAN);
myGLCD.fillRect(10,10,100,100);
myGLCD.setColor(RED);
myGLCD.drawRoundRect(10,10,100,100);
myGLCD.setColor(WHITE);
myGLCD.setBackColor(DARKCYAN);
myGLCD.print("ON", 40,50);}

 


//off button
if (digitalRead(Relay)==HIGH){
myGLCD.setColor(RED);
myGLCD.fillRect(110,10,200,100);
myGLCD.setColor(GREEN);
myGLCD.drawRoundRect(110,10,200,100);
myGLCD.setColor(WHITE);
myGLCD.setBackColor(RED);
myGLCD.print("OFF", 130,50);}

else{
myGLCD.setColor(MAGENTA);
myGLCD.fillRect(110,10,200,100);
myGLCD.setColor(GREEN);
myGLCD.drawRoundRect(110,10,200,100);
myGLCD.setColor(WHITE);
myGLCD.setBackColor(MAGENTA);
myGLCD.print("OFF", 130,50);}

 

myGLCD.setColor(BLACK);
myGLCD.fillRect(0,120,320,240);
myGLCD.setColor(WHITE);
myGLCD.setBackColor(BLACK);
myGLCD.print("X", 100,120);
myGLCD.print("Y", 200,120);
myGLCD.print("PIX", 20,140);
myGLCD.print("RAW", 20,160);
myGLCD.printNumI(X, 100, 140);
myGLCD.printNumI(Y, 200, 140);
myGLCD.printNumI(X_RAW, 100, 160);
myGLCD.printNumI(Y_RAW, 200, 160);

}

//接線圖參考  https://altronics.cl/pantalla-tft-32inch-ili9341

 

 

創作者介紹
創作者 老男人 的頭像
老男人

老男人幻想世界

老男人 發表在 痞客邦 留言(12) 人氣()


留言列表 (12)

發表留言
  • Alice
  • 作自己感興趣的事最有趣了
  • 是啊

    老男人 於 2018/01/24 20:57 回覆

  • koko
  • 謝謝老帥哥的分享~ 午安.......... ^_^
  • 不客氣喔

    老男人 於 2018/01/24 21:00 回覆

  • 安綺~♥ 滴滴咕咕
  • 推推~
    新年快樂!初三睡飽飽!
    謝謝好友的分享,
    祝福開心順心。
  • 感謝 初一開始都在開車呢
    不過 我正好喜歡開車啦
    新年快樂

    老男人 於 2018/02/19 00:01 回覆

  • 悄悄話
  • 悄悄話
  • 悄悄話
  • rufy6316
  • 哥 你猜對了 我想利用arduino做人機介面的專題,希望你可以教我。
  • 我沒時間,程式已貼,自己努力。

    老男人 於 2018/10/17 19:34 回覆