Étape 2: Comment ça marche
Dans cette démo, on affiche cette chaîne de texte :
. . Défilement de texte avec bouclier Adafruit TFT... (47 caractères?)
Le texte s’affiche en mode texte défilant, en gros caractères, avec 18 caractères sur l’écran de défilement.
Vous pouvez remplacer le texte par votre propre message que vous souhaitez faire défiler sur l’écran.
Comment fonctionne l’esquisse
-l’essentiel du travail d’assemblage des chaînes de caractères à afficher se fait dans cette ligne :
{
t += text.charAt ((offset + i) % text.length()) ;
}
Si vous comprenez cette ligne, vous n’avez besoin d’autre explication ; Arrêtez de lire.
-continuer sur
Pour tout le monde, vous devez comprendre comment fonctionne cette routine ou il ne sera pas intéressant, alors continuez à lire.
Dans cette explication nous sera utilise un exemple plus simple, avec un texte plus court.
String text = « Hello » (ce qui est de 5 caractères).
Et nous allons définir une largeur d’affichage de texte défilant plus courte.
const int largeur = 10 ;
Notre objectif est d’afficher ces chaînes consécutivement dans la fenêtre d’affichage :
Kaddour
elloHelloH
lloHelloHe
etc.
Pour garder une trace d’où nous commençons chaque chaîne de texte consécutives nous utilisons la variable « offset ».
offset est incrémenté dans la ligne suivante pour changer le point de départ de la chaîne d’affichage.
pour (int offset = 0; compensé < text.length() ; offset ++)
exemple :
Kaddour offset == 0
décalage elloHelloH == 1
décalage lloHelloHe == 2
et ainsi de suite jusqu'à ce que l’offset est égal à 5
Comme indiqué plus haut, décalage assure le suivi de point de départ de la chaîne.
Nous utilisons une boucle avec le compteur, j’ai pour assembler le reste du texte chaîne chaque fois que le texte s’affiche.
pour (int i = 0; i < largeur; i ++)
la largeur est 10. En parcourant cette boucle 10 fois, nous monterons une chaîne de caractères qui est égale à la largeur de la fenêtre d’affichage de texte défilant, qui est de 10 caractères. Nous faisons tout cela avant d’imprimer le texte à l’écran.
Est ensuite la ligne mentionnée ci-dessus qui assemble le caractère d’une chaîne à la fois comme nous faire défiler le i boucle :
t += text.charAt ((offset + i) % text.length()) ;
La première fois par le biais de cette boucle t contient la chaîne H. La deuxième fois il - et ainsi de suite pour les 10 itérations de la boucle, à quel point t détient kaddour.
Lorsque la boucle est terminée, l’esquisse imprime la chaîne sur l’écran.
TFT.Print(t) ;
Sur le premier offset itération == 0 et i == 0. Text.length() == 5, qui est la longueur de notre chaîne.
Cela donne le résultat t += text.charAt(0 % 5) ;
0 % 5 utilise le modulo opérateur %
modulo est le reste lorsque deux entiers sont divisés.
0 divisé par 5 produit reste 0.
Si le résultat de 0 % 5 (sens 0 mod 5) est 0
Et text.charAt(0) est le premier caractère de la chaîne: H.
La deuxième fois à travers cette boucle j’ai est incrémentée de 1.
Le résultat de 1 % 5 (ou 1 mod 5) est 1.
Cela ajoute le deuxième caractère, e, à la chaîne de t. t. maintenant il est
Après 10 itérations t contient les caractères kaddour.
Ensuite, nous imprimons t
TFT.Print(t) ;
Et puis le décalage variable est incrémentée, nous passons par le i boucle à nouveau, et nous formons la chaîne elloHelloH. L’affichage défile !