TFT_Touch_exemplo5_git

Dependencies:   mbed TouchScreen_kbv_mbed MCUFRIEND_kbv_R299 GLUE_STUFF_kbv ADA_GFX_kbv_R1107

Committer:
henriquer
Date:
Tue May 25 15:04:47 2021 +0000
Revision:
4:87a2ee357e78
TFT_Touch_exemplo5_git

Who changed what in which revision?

UserRevisionLine numberNew contents of line
henriquer 4:87a2ee357e78 1 // ************************** Henrique **************************************//
henriquer 4:87a2ee357e78 2
henriquer 4:87a2ee357e78 3 // Programa Exemplo 7 - Programa teste para uso de três botões
henriquer 4:87a2ee357e78 4
henriquer 4:87a2ee357e78 5 //
henriquer 4:87a2ee357e78 6 // ************** Display TFT- ILI9341 Toutch********************************\\
henriquer 4:87a2ee357e78 7
henriquer 4:87a2ee357e78 8
henriquer 4:87a2ee357e78 9 //************************ Biblioteca*****************************************//
henriquer 4:87a2ee357e78 10
henriquer 4:87a2ee357e78 11
henriquer 4:87a2ee357e78 12 #include "mbed.h"
henriquer 4:87a2ee357e78 13 #include "Arduino.h"
henriquer 4:87a2ee357e78 14 #include <MCUFRIEND_kbv.h>
henriquer 4:87a2ee357e78 15 MCUFRIEND_kbv tft;
henriquer 4:87a2ee357e78 16 #include "TouchScreen_kbv_mbed.h"
henriquer 4:87a2ee357e78 17
henriquer 4:87a2ee357e78 18 //************************Configuração do Display*****************************//
henriquer 4:87a2ee357e78 19
henriquer 4:87a2ee357e78 20 const int TS_LEFT=121,TS_RT=922,TS_TOP=82,TS_BOT=890;
henriquer 4:87a2ee357e78 21 const PinName XP = D8, YP = A3, XM = A2, YM = D9; //next common configuration
henriquer 4:87a2ee357e78 22 DigitalInOut YPout(YP);
henriquer 4:87a2ee357e78 23 DigitalInOut XMout(XM);
henriquer 4:87a2ee357e78 24
henriquer 4:87a2ee357e78 25
henriquer 4:87a2ee357e78 26 long map(long x, long in_min, long in_max, long out_min, long out_max)
henriquer 4:87a2ee357e78 27 {
henriquer 4:87a2ee357e78 28 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
henriquer 4:87a2ee357e78 29 }
henriquer 4:87a2ee357e78 30
henriquer 4:87a2ee357e78 31 TouchScreen_kbv ts = TouchScreen_kbv(XP, YP, XM, YM, 300);
henriquer 4:87a2ee357e78 32 TSPoint_kbv tp;
henriquer 4:87a2ee357e78 33
henriquer 4:87a2ee357e78 34 // Valores para detectar a pressão do toque
henriquer 4:87a2ee357e78 35 #define MINPRESSURE 10
henriquer 4:87a2ee357e78 36 #define MAXPRESSURE 1000
henriquer 4:87a2ee357e78 37 //****************************************************************************//
henriquer 4:87a2ee357e78 38
henriquer 4:87a2ee357e78 39
henriquer 4:87a2ee357e78 40 //***********************Orientação Display**********************************//
henriquer 4:87a2ee357e78 41
henriquer 4:87a2ee357e78 42 uint8_t Orientation = 0;
henriquer 4:87a2ee357e78 43
henriquer 4:87a2ee357e78 44 //****************************************************************************//
henriquer 4:87a2ee357e78 45 bool botao_1 = 0;
henriquer 4:87a2ee357e78 46 bool botao_2 = 0;
henriquer 4:87a2ee357e78 47 bool botao_3 = 0;
henriquer 4:87a2ee357e78 48 //***********************Tabela de Cores**************************************//
henriquer 4:87a2ee357e78 49
henriquer 4:87a2ee357e78 50 #define BLACK 0x0000
henriquer 4:87a2ee357e78 51 #define BLUE 0x001F
henriquer 4:87a2ee357e78 52 #define RED 0xF800
henriquer 4:87a2ee357e78 53 #define GREEN 0x07E0
henriquer 4:87a2ee357e78 54 #define CYAN 0x07FF
henriquer 4:87a2ee357e78 55 #define MAGENTA 0xF81F
henriquer 4:87a2ee357e78 56 #define YELLOW 0xFFE0
henriquer 4:87a2ee357e78 57 #define WHITE 0xFFFF
henriquer 4:87a2ee357e78 58
henriquer 4:87a2ee357e78 59 //****************************************************************************//
henriquer 4:87a2ee357e78 60
henriquer 4:87a2ee357e78 61
henriquer 4:87a2ee357e78 62 void draw()
henriquer 4:87a2ee357e78 63
henriquer 4:87a2ee357e78 64 {
henriquer 4:87a2ee357e78 65
henriquer 4:87a2ee357e78 66 tft.drawRoundRect(5, 15, 154, 50, 5, WHITE);
henriquer 4:87a2ee357e78 67 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 68 tft.setTextSize(3);
henriquer 4:87a2ee357e78 69 tft.setCursor(15, 30);
henriquer 4:87a2ee357e78 70 tft.println("Button 1");
henriquer 4:87a2ee357e78 71
henriquer 4:87a2ee357e78 72 tft.drawRoundRect(5, 70, 154, 50, 5, WHITE);
henriquer 4:87a2ee357e78 73 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 74 tft.setTextSize(3);
henriquer 4:87a2ee357e78 75 tft.setCursor(15,85);
henriquer 4:87a2ee357e78 76 tft.println("Button 2");
henriquer 4:87a2ee357e78 77
henriquer 4:87a2ee357e78 78 tft.drawRoundRect(5, 125, 154, 50, 5, WHITE);
henriquer 4:87a2ee357e78 79 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 80 tft.setTextSize(3);
henriquer 4:87a2ee357e78 81 tft.setCursor(15,140);
henriquer 4:87a2ee357e78 82 tft.println("Button 3");
henriquer 4:87a2ee357e78 83
henriquer 4:87a2ee357e78 84 }
henriquer 4:87a2ee357e78 85
henriquer 4:87a2ee357e78 86 void show_tft(void)
henriquer 4:87a2ee357e78 87 {
henriquer 4:87a2ee357e78 88
henriquer 4:87a2ee357e78 89 tft.setTextSize(2);
henriquer 4:87a2ee357e78 90
henriquer 4:87a2ee357e78 91
henriquer 4:87a2ee357e78 92 tft.setTextColor(MAGENTA,BLUE);
henriquer 4:87a2ee357e78 93
henriquer 4:87a2ee357e78 94
henriquer 4:87a2ee357e78 95 while (1) {
henriquer 4:87a2ee357e78 96 tp = ts.getPoint();
henriquer 4:87a2ee357e78 97 YPout.output();
henriquer 4:87a2ee357e78 98 XMout.output();
henriquer 4:87a2ee357e78 99
henriquer 4:87a2ee357e78 100 if (tp.z < MINPRESSURE && tp.z > MAXPRESSURE)
henriquer 4:87a2ee357e78 101
henriquer 4:87a2ee357e78 102 tp.x = tft.width() - (map(tp.x, TS_RT, TS_LEFT, tft.width(), 0));
henriquer 4:87a2ee357e78 103 tp.y = tft.height() - (map(tp.y, TS_BOT, TS_TOP, tft.height(), 0));
henriquer 4:87a2ee357e78 104
henriquer 4:87a2ee357e78 105
henriquer 4:87a2ee357e78 106
henriquer 4:87a2ee357e78 107 if (tp.x>=240&&tp.x<=475 && tp.y>=260&&tp.y<=310) {
henriquer 4:87a2ee357e78 108 if(botao_1 ==0) {
henriquer 4:87a2ee357e78 109
henriquer 4:87a2ee357e78 110 tft.fillRoundRect(5, 15, 154, 50, 5, RED);
henriquer 4:87a2ee357e78 111 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 112 tft.setTextSize(3);
henriquer 4:87a2ee357e78 113 tft.setCursor(15, 30);
henriquer 4:87a2ee357e78 114 tft.println("Button 1");
henriquer 4:87a2ee357e78 115 botao_1 =!botao_1;
henriquer 4:87a2ee357e78 116 }
henriquer 4:87a2ee357e78 117
henriquer 4:87a2ee357e78 118 else {
henriquer 4:87a2ee357e78 119
henriquer 4:87a2ee357e78 120 tft.fillRoundRect(5, 15, 154, 50, 5, BLACK);
henriquer 4:87a2ee357e78 121 tft.drawRoundRect(5, 15, 154, 50, 5, WHITE);
henriquer 4:87a2ee357e78 122 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 123 tft.setTextSize(3);
henriquer 4:87a2ee357e78 124 tft.setCursor(15, 30);
henriquer 4:87a2ee357e78 125 tft.println("Button 1");
henriquer 4:87a2ee357e78 126 botao_1 =!botao_1;
henriquer 4:87a2ee357e78 127
henriquer 4:87a2ee357e78 128 }
henriquer 4:87a2ee357e78 129 }
henriquer 4:87a2ee357e78 130
henriquer 4:87a2ee357e78 131
henriquer 4:87a2ee357e78 132 if (tp.x>=260&&tp.x<=465 && tp.y>=200&&tp.y<=250) {
henriquer 4:87a2ee357e78 133 if(botao_2 ==0) {
henriquer 4:87a2ee357e78 134
henriquer 4:87a2ee357e78 135 tft.fillRoundRect(5, 70, 154, 50, 5, BLUE);
henriquer 4:87a2ee357e78 136 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 137 tft.setTextSize(3);
henriquer 4:87a2ee357e78 138 tft.setCursor(15, 85);
henriquer 4:87a2ee357e78 139 tft.println("Button 2");
henriquer 4:87a2ee357e78 140 botao_2 =!botao_2;
henriquer 4:87a2ee357e78 141 }
henriquer 4:87a2ee357e78 142
henriquer 4:87a2ee357e78 143 else {
henriquer 4:87a2ee357e78 144
henriquer 4:87a2ee357e78 145
henriquer 4:87a2ee357e78 146 tft.fillRoundRect(5, 70, 154, 50, 5, BLACK);
henriquer 4:87a2ee357e78 147 tft.drawRoundRect(5, 70, 154, 50, 5, WHITE);
henriquer 4:87a2ee357e78 148 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 149 tft.setTextSize(3);
henriquer 4:87a2ee357e78 150 tft.setCursor(15,85);
henriquer 4:87a2ee357e78 151 tft.println("Button 2");
henriquer 4:87a2ee357e78 152 botao_2 =!botao_2;
henriquer 4:87a2ee357e78 153 }
henriquer 4:87a2ee357e78 154 }
henriquer 4:87a2ee357e78 155
henriquer 4:87a2ee357e78 156 if (tp.x>=460&&tp.x<=650 && tp.y>=150&&tp.y<=195) {
henriquer 4:87a2ee357e78 157 if(botao_3 ==0) {
henriquer 4:87a2ee357e78 158
henriquer 4:87a2ee357e78 159 tft.fillRoundRect(5, 125, 154, 50, 5, MAGENTA);
henriquer 4:87a2ee357e78 160 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 161 tft.setTextSize(3);
henriquer 4:87a2ee357e78 162 tft.setCursor(15, 140);
henriquer 4:87a2ee357e78 163 tft.println("Button 3");
henriquer 4:87a2ee357e78 164 botao_3 =!botao_3;
henriquer 4:87a2ee357e78 165 }
henriquer 4:87a2ee357e78 166
henriquer 4:87a2ee357e78 167 else {
henriquer 4:87a2ee357e78 168 tft.fillRoundRect(5, 125, 154, 50, 5, BLACK);
henriquer 4:87a2ee357e78 169 tft.drawRoundRect(5, 125, 154, 50, 5, WHITE);
henriquer 4:87a2ee357e78 170 tft.setTextColor(GREEN);
henriquer 4:87a2ee357e78 171 tft.setTextSize(3);
henriquer 4:87a2ee357e78 172 tft.setCursor(15,140);
henriquer 4:87a2ee357e78 173 tft.println("Button 3");
henriquer 4:87a2ee357e78 174 botao_3 =!botao_3;
henriquer 4:87a2ee357e78 175 }
henriquer 4:87a2ee357e78 176 }
henriquer 4:87a2ee357e78 177
henriquer 4:87a2ee357e78 178 // tft.setCursor(0, (tft.height() * 3) / 4);
henriquer 4:87a2ee357e78 179 // tft.printf("tp.x=%d tp.y=%d ", tp.x, tp.y);
henriquer 4:87a2ee357e78 180
henriquer 4:87a2ee357e78 181
henriquer 4:87a2ee357e78 182 }
henriquer 4:87a2ee357e78 183 }
henriquer 4:87a2ee357e78 184
henriquer 4:87a2ee357e78 185
henriquer 4:87a2ee357e78 186
henriquer 4:87a2ee357e78 187
henriquer 4:87a2ee357e78 188
henriquer 4:87a2ee357e78 189 void setup(void)
henriquer 4:87a2ee357e78 190 {
henriquer 4:87a2ee357e78 191
henriquer 4:87a2ee357e78 192 tft.reset();
henriquer 4:87a2ee357e78 193 tft.begin();
henriquer 4:87a2ee357e78 194 tft.setRotation(Orientation);
henriquer 4:87a2ee357e78 195 tft.fillScreen(BLACK);
henriquer 4:87a2ee357e78 196 draw();
henriquer 4:87a2ee357e78 197 show_tft();
henriquer 4:87a2ee357e78 198
henriquer 4:87a2ee357e78 199
henriquer 4:87a2ee357e78 200 delay(1000);
henriquer 4:87a2ee357e78 201 }
henriquer 4:87a2ee357e78 202
henriquer 4:87a2ee357e78 203 void loop()
henriquer 4:87a2ee357e78 204 {
henriquer 4:87a2ee357e78 205
henriquer 4:87a2ee357e78 206 }
henriquer 4:87a2ee357e78 207