Olá!
Seu código é uma mistura de muitos exemplos.
Está muito confuso.
Tente este que acabei de fazer.
#include <UTFT.h>
#include <UTouch.h>
#include <UTFT_Buttons.h>
// Declare which fonts we will be using
extern uint8_t BigFont[];
UTFT myGLCD(CTE50,38,39,40,41);
UTouch myTouch(6,5,4,3,2);
// Finally we set up UTFT_Buttons :)
UTFT_Buttons myButtons(&myGLCD, &myTouch);
const byte rele1 = 8;
const byte rele2 = 9;
int pressed_button;
boolean rele_1_ativado = false;
boolean rele_2_ativado = false;
int but1 = myButtons.addButton( 10, 20, 300, 30, "Botao 1");
int but2 = myButtons.addButton( 10, 60, 300, 30, "Botao 2");
void setup()
{
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
myGLCD.InitLCD();
myGLCD.clrScr();
myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);
myButtons.setTextFont(BigFont);
myButtons.drawButtons();
myGLCD.setFont(BigFont);
myGLCD.print("Voce pressionou:", 70, 190);
}
void loop()
{
if (myTouch.dataAvailable() == true)
{
ProcessMyTouch();
}
check_rele();
}
void ProcessMyTouch()
{
pressed_button = myButtons.checkButtons();
if (pressed_button == but1)
{
myGLCD.print("Botao 1", 110, 220);
if(rele_1_ativado == true)
{
myGLCD.print("Rele 1: OFF", 110, 120);
rele_1_ativado = false;
}
else
{
myGLCD.print("Rele 1: ON ", 110, 120);
rele_1_ativado = true;
}
}
if (pressed_button == but2)
{
myGLCD.print("Botao 2", 110, 220);
if(rele_2_ativado == true)
{
myGLCD.print("Rele 2: OFF", 110, 140);
rele_2_ativado = false;
}
else
{
myGLCD.print("Rele 2: ON ", 110, 140);
rele_2_ativado = true;
}
}
}
void check_rele()
{
if(rele_1_ativado == true)
{
digitalWrite(rele1, HIGH);
}
else
{
digitalWrite(rele1, LOW);
}
if(rele_2_ativado == true)
{
digitalWrite(rele2, HIGH);
}
else
{
digitalWrite(rele2, LOW);
}
}
Abraço.
Fernando Garcia