Buonasera a tutti, ho acquistato questo LCD Touch:
sito venditore
sto utilizzando queste librerie:
sito librerie
Sto scrivendo un'applicazione per controllare dei motori. Il mio obiettivo è che premendo un pulsante il motore di mette in moto finché non tolgo il dito (insomma, un semplice bottone).
Ho scritto questo codice:
// UTFT_Buttons_Demo_320x240
void loop()
{
int but1, but2, but3, pressed_button;
boolean default_colors = true;but1 = myButtons.addButton( 10, 10, 80, 80, "Z+");
but2 = myButtons.addButton( 90, 10, 80, 80, "Z-");
but3 = myButtons.addButton( 170, 10, 80, 80, "R-");
myButtons.drawButtons();myGLCD.print("You pressed:", 110, 205);
myGLCD.setColor(VGA_BLACK);
myGLCD.setBackColor(VGA_WHITE);
myGLCD.print("None ", 110, 220);
while(1){
if (myTouch.dataAvailable() == true)
{
Serial.print("Avvio");
Serial.println("");
pressed_button = myButtons.checkButtons();
if(pressed_button==but1){
z++;
myGLCD.print("Alza ", 110, 220);
ValoreZ = String(z);
stringaUno = String(ValoreZ + "\t" + ValoreR);
Serial.print(stringaUno);
Serial.println("");
}
if (pressed_button==but2){
myGLCD.print("Abbassa", 110, 220);
z--;
ValoreZ = String(z);
stringaUno = String(ValoreZ + "\t" + ValoreR);
Serial.print(stringaUno);
Serial.println("");
}
if (pressed_button==but3){
myGLCD.print("Ruota ", 110, 220);
r++;
ValoreR = String(r);
stringaUno = String(ValoreZ + "\t" + ValoreR);
Serial.print(stringaUno);
Serial.println("");
}
if (pressed_button==-1)
myGLCD.print("None ", 110, 220);
}
}
}
Con il codice
if (myTouch.dataAvailable() == true)
arduino controlla se c'è stata una variazione dei sensori (quindi un tocco)
mentre con questo:
if(pressed_button==but1)
l'if viene eseguito quando viene rilasciato il bottone.
Ora io vorrei che l'esecuzione avvenga al tocco del bottone in modo da tenere una specie di stato alto... suggerimenti?
Grazie,
Ivan