TFT_Touch_exemplo6_git_touch_button
Dependencies: mbed TouchScreen_kbv_mbed MCUFRIEND_kbv_R299 GLUE_STUFF_kbv ADA_GFX_kbv_R1107
TFT_exemplo_6.cpp@4:87a2ee357e78, 2021-05-25 (annotated)
- Committer:
- henriquer
- Date:
- Tue May 25 15:04:47 2021 +0000
- Revision:
- 4:87a2ee357e78
TFT_Touch_exemplo5_git
Who changed what in which revision?
User | Revision | Line number | New 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 |