Bonsoir à tous
Petite présentation avant de prétendre demander la charité.
Je me présente donc : Ludovic, 40 ans et je replonge dans la bidouille en mettant un doigt dans l'Arduino. Me débrouillant un peu dans le code et étant (en général) autodidacte, sur ce coup, j'avoue que je bloque depuis un petit moment
le but du programme était de me familiariser avec l'écran 2.8' tactile de chez Velleman: le VMA412, connecté à une carte mega.
Donc pour faire simple, lorsque je touche une couleur du drapeau Français, la couleur doit s'afficher dans la console ( c'est OK) et sur l'écran sous le drapeau (là, ce n'est pas ok).
tout fonctionne excepté l'affichage de la couleur sous forme de texte.
Place aux experts ;
#include <MCUFRIEND_kbv.h>
#include <stdint.h>
#include "TouchScreen.h"
#define YP A3
#define XM A2
#define YM 9
#define XP 8
#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define MINPRESSURE 10
#define MAXPRESSURE 1000
#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 920
#define TS_MAXY 940
MCUFRIEND_kbv tft;
#define BOXSIZE 107
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
void setup(void) {
tft.reset();
Serial.begin(9600);
uint16_t identifier = tft.readID();
tft.begin(identifier);
tft.setRotation(1);
tft.fillScreen(WHITE);
tft.fillRect(0, 0, BOXSIZE, 180, BLUE);
tft.fillRect(BOXSIZE, 0, BOXSIZE, 180, WHITE);
tft.fillRect(BOXSIZE*2, 0, BOXSIZE, 180, RED);
}
void loop()
{
digitalWrite(13, HIGH);
TSPoint p = ts.getPoint();
digitalWrite(13, LOW);
p.x = map(p.x, TS_MINX, TS_MAXX, 0, 240);
p.y = map(p.y, TS_MINY, TS_MAXY, 0, 320);
if (p.z > MINPRESSURE && p.z < MAXPRESSURE && p.x < 180)
{
Serial.print("X = "); Serial.print(p.x);
Serial.print("\tY = "); Serial.print(p.y);
Serial.print("\tPressure = "); Serial.println(p.z);
if (p.y < BOXSIZE) {
Serial.print("Bleu");
tft.setCursor(105, 230);
tft.setTextColor(BLACK);
tft.setTextSize(4);
tft.print("Bleu");
delay (100);
tft.fillRect(180, 0, 320, 240, WHITE);
}
else if (p.y < BOXSIZE*2) {
Serial.print("Blanc");
tft.setCursor(105, 230);
tft.setTextColor(BLACK);
tft.setTextSize(4);
tft.print("Blanc");
delay (100);
tft.fillRect(180, 0, 320, 240, WHITE);
}
else if (p.y < BOXSIZE*3) {
Serial.print("Rouge");
tft.setCursor(105, 230);
tft.setTextColor(BLACK);
tft.setTextSize(4);
tft.print("Rouge");
delay (100);
tft.fillRect(180, 0, 320, 240, WHITE);
}
}
}
merci pour le partage de vos connaissances
Ludovic