Paso 2: Cómo funciona
En esta demo nos muestra este texto:
. . Desplazamiento de texto con shield Adafruit TFT... (47 caracteres?)
El texto muestra en manera de carpa, en letras grandes, con 18 caracteres en la pantalla de desplazamiento.
Puede reemplazar el texto con su propio mensaje que desee desplazarse por la pantalla.
Cómo funciona el bosquejo
-se realiza la mayor parte de la obra en el montaje de las cadenas de caracteres a mostrar en esta línea:
{
t += text.charAt ((offset + i) % text.length());
}
Si entiendes esa línea, no necesita ninguna otra explicación; dejar de leer.
-continuar
Para todos los demás, tienes que entender cómo funciona esta rutina o no ser interesante, así que sigue leyendo.
En esta explicación se utiliza un ejemplo más simple, con un texto más corto.
String texto = "Hola" (que es 5 caracteres).
Y vamos a definir un ancho de pantalla marquesina más corto.
const int ancho = 10;
Nuestro objetivo es mostrar las cuerdas consecutivamente en la ventana de visualización:
HelloHello
elloHelloH
lloHelloHe
etc.
Para hacer un seguimiento de dónde empezar cada cadena de texto consecutivo utilizamos la variable 'offset'.
desplazamiento se incrementa en la línea siguiente para cambiar el punto de partida de la cadena de presentación.
para (int desplazamiento = 0; desplazamiento < text.length(); offset ++)
ejemplo:
HelloHello offset == 0
elloHelloH offset == 1
lloHelloHe offset == 2
y así sucesivamente hasta que el desplazamiento es igual a 5
Como se indicó anteriormente, offset seguimiento de punto de partida de la cadena.
Usamos un bucle con el contador que para montar el resto del texto string cada vez que se muestra el texto.
para (int i = 0; i < ancho; i ++)
anchura es de 10. Caminando a través de este bucle 10 veces montaremos una cadena de caracteres que es igual a la anchura de la ventana de visualización de carpa, que es de 10 caracteres. Hacemos todo esto antes de imprimir el texto a la pantalla.
El siguiente es la línea mencionada anteriormente que reúne el carácter de una cadena en un momento como nos paso a través de la i lazo:
t += text.charAt ((offset + i) % text.length());
La primera vez a través de este lazo t posee la cadena H. La segunda vez él - y así sucesivamente, de las 10 iteraciones del bucle, momento en el que t tiene HelloHello.
Cuando se termina el bucle, el bosquejo imprime la cadena en la pantalla.
TFT.Print(t);
En el primera iteración offset == 0 y i == 0. Text.length() == 5, que es la longitud de nuestra cadena.
Esto da el resultado t += text.charAt(0 % 5);
0% 5 utiliza el modulo operador %
modulo es el resto cuando se dividen dos enteros.
0 dividido entre 5 produce resto 0.
Así que el resultado de 0% 5 (leído como 0 mod 5) es 0
Y text.charAt(0) es el primer carácter de la cadena: H.
La segunda vez este bucle se incrementa a 1.
El resultado de 1% 5 (o 1 mod 5) es de 1.
Esto suma el segundo caracter, e, a la cadena t t. ahora es
Después de 10 iteraciones t posee los caracteres HelloHello.
Luego imprimimos t
TFT.Print(t);
Y entonces el desplazamiento se incrementa la variable, pasamos por el i otra vez de bucles, y montamos la cadena elloHelloH. La pantalla muestra!