Je cherche à réaliser un menu simple avec deux boutons Start et Stop sur afficheur tft touch panel, j'ai cherché sur le net mais rien de simple
Merci pour votre aide
Je cherche à réaliser un menu simple avec deux boutons Start et Stop sur afficheur tft touch panel, j'ai cherché sur le net mais rien de simple
Merci pour votre aide
Faire deux carrés avec le texte "Start" dans l'un et "Stop" dans l'autre .........
Bonjour,
Déjà ce serait bien de préciser :
On est pas devin sur ce forum
Ecran 2.8", 240x320 pixel MI0283QT-9A Adapter de chez Watterott avec la librairie fournie avec.
Pour la réalisation des boutons, pas de soucis, c'est plutôt lier une action à chaque bouton la question.
Bah si l'adresse du touché correspond aux coordonnées d'un rectangle => action
B@tto:
Bah si l'adresse du touché correspond aux coordonnées d'un rectangle => action
On peut pas faire plus simple.
Exemple (partie touch.pde) :
Hello, ca y est j'ai trouvé, y a encore plus simple :), voici un petit exemple qui permet d'allumer ou d'éteindre la led 13.
$
#include <MI0283QT9.h>
#include <ADS7846.h>
#define TP_EEPROMADDR (0x00) //eeprom address for calibration data
MI0283QT9 lcd;
ADS7846 tp;
//----- pixel central -----
int xo;
int yo;
int X, Y; // variables acquisition touchpad
int testX, testY; // variable de test pour les touches
int taille=70; // largeur de la touche
int ecart=8; // ecart entre les touches
int nombreLignes=1; // nombre de lignes
int nombreColonnes=1; // nombre de colonnes
int xref=1-1, yref=220-1; // coordonnee coin sup gauche du clavier
int ligne, colonne; // variables de ligne et de colonne
int ligneSelect, colonneSelect; // variables de ligne et colonne selectionnee
int appui; // valeur sauvegarde lorsque j'appui
void setup(){
//Touch Panel
lcd.init(4); //init display
tp.init(); //init touch controller
lcd.clear(COLOR_WHITE); //clear screen
tp.service(); //touch-panel calibration
if(tp.getPressure() > 5)
{
tp.doCalibration(&lcd, TP_EEPROMADDR, 0); //dont check EEPROM for calibration data
}
else
{
tp.doCalibration(&lcd, TP_EEPROMADDR, 1); //check EEPROM for calibration data
}
lcd.clear(COLOR_BLACK); //clear screen
//------- initialisation des variables utilisées
xo=lcd.getWidth()/2;
yo=lcd.getHeight()/2;
for ( ligne=1; ligne<=nombreLignes; ligne++) { // tracé des lignes
for ( colonne=1; colonne<=nombreColonnes; colonne++) { // tracé des colonnes
xo=xref+ecart+(taille/2)+((ecart+taille)*(colonne-1));// calcule coordonnée x centre touche
yo=yref+(taille/2)+((taille+ecart)*(ligne-1));// calcule coordonnée y centre touche
traceTouche(xo, yo, taille, COLOR_WHITE); // trace la touche
}
void loop(){
// TOUCH PANEL
char tmp[128];
static uint16_t last_x=0, last_y=0;
static uint8_t led=60;
unsigned long m;
static unsigned long prevMillis=0;
tp.service(); // service routine for touch panel
if(startVal==0){
lcd.printOptions(1, COLOR_BLACK, COLOR_WHITE);
lcd.printXY(25, 224); //set cursor
lcd.println("Start");
if(tp.getPressure() > 10 && appui==0){ // touch press?
X=tp.getX(), Y=tp.getY(); // analyse si appui dans la touche
for (ligne=1; ligne<=nombreLignes; ligne++) { // boucle des lignes
for (colonne=1; colonne<=nombreColonnes; colonne++) { // boucle des colonnes
xo=xref+ecart+(taille/2)+((ecart+taille)*(colonne-1)); // calcule coordonnee x centre touche
yo=yref+(taille/2)+((taille+ecart)*(ligne-1)); // calcule coordonnee y centre touche
//---- vérifie si appui dans la touche ---------
testX=abs(X-xo); // calcul valeur absolue de l'ecart de X touchpad à xo centre trouche
testY=abs(Y-yo); // calcul valeur absolue de l'ecart de Y touchpad à yo centre trouche
if (testX<taille/2 && testY<taille/2) { // si appui dans la touche
traceTouche(xo, yo, taille, COLOR_RED); // trace la touche
appui=1;
ligneSelect=ligne;
colonneSelect=colonne;
delay(250); // anti-rebond
break; // sort de for si touche trouvée
} // fin if testX
} // fin for colonnes
if (appui==1) break; // sort de la seconde boucle si touche trouvée
}
}
else if(tp.getPressure()>10 && appui==1){ // touch press?
X=tp.getX(), Y=tp.getY(); // analyse si appui dans la touche
for (ligne=1; ligne<=nombreLignes; ligne++) { // boucle des lignes
for (colonne=1; colonne<=nombreColonnes; colonne++) { // boucle des colonnes
xo=xref+ecart+(taille/2)+((ecart+taille)*(colonne-1)); // calcule coordonnée x centre touche
yo=yref+(taille/2)+((taille+ecart)*(ligne-1)); // calcule coordonnée y centre touche
//---- vérifie si appui dans la touche ---------
testX=abs(X-xo); // calcul valeur absolue de l'écart de X touchpad à xo centre trouche
testY=abs(Y-yo); // calcul valeur absolue de l'écart de Y touchpad à yo centre trouche
if (testX<taille/2 && testY<taille/2) { // si appui dans la touche
traceTouche(xo, yo, taille, COLOR_WHITE); // trace la touche
appui=0;
ligneSelect=ligne;
colonneSelect=colonne;
delay(250); // anti-rebond
break; // sort de for si touche trouvée
} // fin if testX
} // fin for colonnes
if (appuil==1) break;
}
} //fin touchpad.getPressure()>10
// LED
if (appui == 1){
digitalWrite(13, 1);
}
else
{
digitalWrite(13, 0);
}
A+