Arduino texto animación de LCD (6 / 9 paso)

Paso 6: Cambiar los bits de tanque

Con los personajes en la pantalla, puede modificar sus pedacitos.  En última instancia, usted tiene que llamar a la función createChar (índice, byteArray) para obtener los bits para el LCD, y eso significa que tienes que tener una matriz de ocho bytes por carácter.  Estoy utilizando cuatro caracteres personalizados, por lo que utiliza matrices de cuatro bytes.

sprite0 Byte [8];
sprite1 Byte [8];
sprite2 Byte [8];
sprite3 Byte [8];

En el loop(), tomé el bit a bit modulo posición para llegar a un desvío.  Entonces, fui una línea a la vez a través del tanque.  Aquí, la eficiencia de los enteros largos entra en juego.  En primer lugar, le copio el int largo del tanque estático a una variable local.  Entonces, yo cambiaría el int entero largo por el número de bits que necesitaría.

int shiftbits = (tankx % BITS_PER_CHAR);

Si (shiftbits < 0) {shiftbits += BITS_PER_CHAR;}
para (int y = 0; y < 8; y ++)
{
largo lval = tankImg [y];
...

lshifted largo = lval << (BITS_PER_CHAR-shiftbits);
sprite0 [y] = (byte) ((lshifted >> (3 * BITS_PER_CHAR)) & B011111);
sprite1 [y] = (byte) ((lshifted >> (2 * BITS_PER_CHAR)) & B011111);
sprite2 [y] = (byte) ((lshifted >> (1 * BITS_PER_CHAR)) & B011111);
sprite3 [y] = (byte) ((lshifted >> (0 * BITS_PER_CHAR)) & B011111);
}

Finalmente, cuando habían sido computadas todas las matrices de bytes, empujaría les sobre a lo LCD.
lcd.createChar (0, sprite0);
lcd.createChar (1, sprite1);
lcd.createChar (2, sprite2);
lcd.createChar (3, sprite3);

Si se computa esto cambiando bytes, tienes que asegurarse de que usted ' d que "lleva" el último bit el octeto siguiente horizontalmente, pero ya que me quedo dentro de lo 32 bits int largo con cada ronda, el procesador hace poco para mí.

Al final del bucle, mover el tanque y luego lazo alrededor al principio después de consiguió el depósito fuera de la pantalla.
++ tankx;
Si (tankx > = 50) {tankx = -15;}
...
Delay(100);

Por último, ves el retraso.  Es importante utilizar un retraso que es apropiado para su LCD.  Mi afición LCD es azul con blanco iluminación, y se desvanece muy lentamente, por lo que un breve retraso acabaría con un montón de visión borrosa.

Artículos Relacionados

Conversor de Arduino DIY: Cómo hacer LCD:

Conversor de Arduino DIY: Cómo hacer LCD:

aquí hay un video horrible de trabajo. Más adelante subiré más.Por supuesto esto es para que hacer aprender concurso juvenil, así que aquí están las respuestas a todas sus preguntas!¿Qué hago?Bien pensé que era mi Arduino aprendió a hacerlo algunas m
Arduino Temp/humedad con pantalla LCD y la interfaz Web

Arduino Temp/humedad con pantalla LCD y la interfaz Web

recientemente ayudó al cliente moverse de su oficina que incluyó la creación de una nueva sala de informática.Yo quería que ser capaces de controlar la temperatura y la humedad de la habitación tanto marcando una pantalla LCD en la habitación y tambi
Twitter controla salidas de Arduino - no PC - pantalla de LCD + Sensor datos a Twitter

Twitter controla salidas de Arduino - no PC - pantalla de LCD + Sensor datos a Twitter

Control digital hacia fuera los pernos por mensajes de Twitter. Lecturas del sensor enviadas a Twitter.MODIFICADO por JOHN Xativa de Twitter2LCD escrito originalmente por Fabrizio GranelliVer * Usted puede enviar mensajes de texto a la pantalla de LC
Reloj con termómetro usando Arduino i2c 16 x 2 lcd, RTC DS1307 y DHT11 sensor.

Reloj con termómetro usando Arduino i2c 16 x 2 lcd, RTC DS1307 y DHT11 sensor.

Hello! Ya ha pasado un tiempo no me he posteado nada en Instructables, pero ahora hice un simple proyecto que he visto en internet en varias formas. He conseguido crear un código con otros códigos que he encontrado en internet y tengo que decir es tr
Arduino Bluetooth pantalla remota de lcd

Arduino Bluetooth pantalla remota de lcd

Hola,Hoy he hecho una simple pero útil pantalla LCD remota.¿Lo que hace esto? Puede conectar el teléfono al módulo Bluetooth de tu Arduino, escribir un mensaje de texto y aparecerá en la pantalla LCD de Arduino!Paso 1: Lo que usted necesita.Las cosas
ESCÁNER de huellas digitales de ARDUINO con 16 X 2 LCD

ESCÁNER de huellas digitales de ARDUINO con 16 X 2 LCD

este instructivo se basa y se inspira en Arduino LCD explorador del tutorial y huellas dactilares de Adafruit (http://www.adafruit.com/product/751). He añadido 16 x 2 LCD en la huella digital para poder ver el estado del proceso de digitalización de
Arduino Mega GPS con pantalla LCD y SD Registro

Arduino Mega GPS con pantalla LCD y SD Registro

Utilice su Audino Mega como un registrador de GPS con una pantalla de LCD clara y 5 botones de función. Un LED bicolor se utiliza para proporcionar información de estado.La SDcard puede ser dejado en y leer utilizando un bosquejo de lector de tarjeta
Arduino powered GLCD (gráfico LCD) - hice en TechShop

Arduino powered GLCD (gráfico LCD) - hice en TechShop

muestra siempre es agradable. Hasta ahora he sólo ha demostrando cómo utilizar displays de 7 segmentos para mostrar números utilizando muy pocos recursos. Pero ¿qué pasa si desea mostrar el texto? ¿O fotos? ¿O ambos? Bien para ello, vas a necesitar u
Arduino Nano + suelo humedad Sensor + LCD

Arduino Nano + suelo humedad Sensor + LCD

Podemos utilizar el sensor de humedad del suelo con arduino nano y Mostrar datos en un 2 x 16 lcd. Vamos a empezar...Paso 1: Añadir 2 X 16 LCD con Arduino NanoRS = 12R/W = tierraHABILITAR = 11LCD D4 = 9LCD D5 = 8LCD D6 = 7LCD D7 = 6Puedes ver otras c
Arduino Bluetooth RC coche con LCD

Arduino Bluetooth RC coche con LCD

Pantalla LCD muestra donde el rumbo del coche (por ejemplo mover adelante, atrás,...)Yo sólo he modificado el código y conectar un LCDPaso 1: Lista de piezas Arduino unoMódulo Bluetooth HC06Controlador de Motor L293DPANTALLA LCD 16 * 2Chasis del auto
Arduino texto a código Morse

Arduino texto a código Morse

¡ Hola!Este es mi primer instractableHe escrito un pequeño programa en Arduino para convertir texto a código Morse y visualizar con ledZumbador también se puede agregar fácilmente
Detector de movimiento PIR de ARDUINO con 16 X 2 LCD

Detector de movimiento PIR de ARDUINO con 16 X 2 LCD

Este es un proyecto simple para los principiantes que apenas han empezado a usar Arduino.Este proyecto utiliza un Sensor de movimiento PIR y un módulo de pantalla LCD 16 X 2 para mostrar cuando se detecta el movimiento y cuando el movimiento se detuv
Arduino - Temp y humedad DHT11 + LCD 1602A - KY-015 Sensor

Arduino - Temp y humedad DHT11 + LCD 1602A - KY-015 Sensor

¡Hola mundo! Hoy hice otro ejemplo para uno del manojo del sensor que tengo.Esta vez hice una sencilla estación meteorológica con el DHT11 (ky-015) y el LCD 1602A.¡ Nota!Si utilizas una I2C en la pantalla LCD ya puse las líneas en el código para uste
Arduino con 4 x 20 LCD y LCD Smartie USB

Arduino con 4 x 20 LCD y LCD Smartie USB

aquí es un Arduino conectado a un 4 x 20 display HD44780, incluido en 8 "x 4 1/2" Lexan.Usé una versión modificada de la librería de arduino LCD y había hackeado el LCD Smartie bosquejo utilizando comandos de matriz Orbital.Smartie LCD corre los