MTtouchPad4wires,
Test 2
Gestion par événements pour Uno, Nano, Mega
setNbTries() et getNbTries()
Ce programme teste les fonction setNbTries et getNbTries.
// Ce progrmme teste la fonction setNbTries() et getNbTries() de l'objet
// MTtouchPadShield, et montre que 15 essais par défaut est largement
// suffisant.
// MTtouchPadShield fait deux mesures de l'abscisse et si les valeurs
// obtenues ne sont pas strictement identiques, il procède à une troisième
// mesure (deuxième essai). Il fera en tout au maximum "nbEssais" avant
// d'abandonner en gardant l'ancienne valeur. Puis MTtouchPadShield fait
// pareil pour l'ordonnée.
// Il faut lancer le programme et bouger sans arrêt le stylet (par exemple
// en tournant en rond). Si le nombre d'essais est suffisant l'affichage
// défile car il trouve des valeurs. Si le nombre d'essais avant abandon est
// trop petit, l'affichage ralenti, car on ne peut plus lire de valeurs.
#include <MTobjects.h> // V1.1.2 Voir http://arduino.dansetrad.fr/MTobjects
// Mise en place du touchpad résistif; il faut évidemment adapter les noms des broches
MTtouchPad4wires TouchPad(pin_X1_analogique A2, pin_X2 8, pin_Y1_analogique A3, pin_Y2 9);
// Mise en place d'une horloge pour changer le nombre d'essais toutes les 5 secondes
void change(void)
{
TouchPad.setNbTries(TouchPad.getNbTries() - 1); // Un essai de moins qu'avant
if (TouchPad.getNbTries() == 0) TouchPad.setNbTries(5); // On ne peut pas faire 0 essais! (cala donnerait 256 essais par ailleurs)
Serial.println("\n"); // On saute une ligne au moins
Serial.print(TouchPad.getNbTries());
Serial.println(" essais");
delay(1000 milli_secondes);
}
MTclock Horloge (5000 milli_secondes, change); // Appelle change toutes les 5 secondes
// Initialisation
void setup()
{
Serial.begin(115200); // Mettre aussi la console à la même valeur
TouchPad.setNbTries(1);
change();
}
word X, Y, // Coordonnés lus
oldX, oldY; // Et mémoire pour ne pas afficher deux fois la même valeur
byte colonnes; // Pour afficher sur 16 colonnes le résultat
void loop()
{
// Affichage des coordonnées
oldX = X; oldY = Y; // Mémorisation des anciennes valeurs
TouchPad.isTouch(); // Bloque les valeurs de X et Y
X = TouchPad.getX(); Y = TouchPad.getY(); // Nouvelles valeurs
if ((oldX != X) || (oldY != Y)) // On a channgé de coordonnés
{
// On affiche les nouvelles valeurs par paquet de 16
Serial.print(TouchPad.getX());
Serial.print(" ");
Serial.print(TouchPad.getY());
Serial.print(" ");
if ((++colonnes) % 16 == 0) Serial.println(); // Une fois sur 16
}
}