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

Paso 9: Tanque código de 44780 / RT0802B-1 ver 2.0

/ / Este código es para un panel de 14 pines LCD 44780 con 2 pines más para ánodo/cátodo iluminación trasera

#include < LiquidCrystal.h >

LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
RS EN, DB4, DB5, DB6, DB7

Tablero
1 = tierra
2 = Vcc
3 = pote de 10k - 20k para contraste
4 = RS
5 = RW
6 = EN
11 = D4
12 = D5
13 = D6
14 = D7
Búsqueda internet 44780 de varias páginas que describen el cableado en gran detalle

RW debe cablearse baja a escribir, otra queda en modo "read"

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

void setup() {}
fijar número la pantalla del LCD de filas y columnas:
LCD.Begin (8, 2);
lcd.setCursor(0,0);
LCD.Print("tankdemo");
lcd.setCursor(0,1);
LCD.Print("
memset(sprite0,7,8);
memset(sprite1,7,8);
memset(sprite2,7,8);
memset(sprite3,7,8);
lcd.setCursor(0,1);
Serial.Begin(9600);
}

Necesita ocho cantidades de 32 bits que puedo utilizar para pedacitos cambiantes alrededor.
La imagen original del tanque es en estos valores.

largo tankImg [] = {}
(B010000 (largo) << 10) | (B000000 (largo) << 5) | B000000 / y la punta de la antena
, (B010111 (largo) << 10) | ((largo) B011110 << 5) | B000000 / / parte superior de la torreta
, (B001111 (largo) << 10) | ((largo) B011111 << 5) | B011110 / / torrecilla mediados con barril
, (B000111 (largo) << 10) | ((largo) B011110 << 5) | B000000 / / base de la torreta
, (B001111 (largo) << 10) | ((largo) B011111 << 5) | B010000 / / tapa de la pisada
, (B010000 (largo) << 10) | (B000000 (largo) << 5) | B001000
, (B010000 (largo) << 10) | (B000000 (largo) << 5) | B001000
, (B001111 (largo) << 10) | ((largo) B011111 << 5) | B010000 / / pisada de la parte inferior, total en la banda de rodadura 24 píxeles
};

tankx es la posición de bit a bit a través de la pantalla.
tankcharx es la posición character-wise, por lo tanto tankx / 5.
Puede ser negativo.
Tankx cero, el tanque es el de la izquierda de la pantalla
tan tankImg bytes se dividen en cuatro caracteres personalizados
el cuarto del que ser bits en blanco
En tankx uno, los bits de tanque cambiar un poco a la derecha
y si soy inteligente, los peldaños se computan para "girar"
Y así sucesivamente
Porque hay cinco bits horizontalmente por char custom
y las pisadas del tanque van todos los demás, puedo repetir la original
tanque de peldaños a partir de las posiciones de caracteres incluso
int tankx = -15;
int tankcharx;
int tankchary = 1;
int treadx = 0;

#define BITS_PER_CHAR 6

void loop() {}
tankcharx = tankx / BITS_PER_CHAR;
Serial.Print ("tankx =");
Serial.Print(tankx);
Serial.Print ("tankcharx =");
Serial.println(tankcharx);

Interpretación inicial, no hay rotación de peldaños
Si ((tankx % BITS_PER_CHAR) == 0) {}
Turno completo es, necesita establecer un espacio en blanco donde el depósito pasado estaba
Si (tankcharx > = 1) {}
lcd.setCursor (tankcharx-1, tankchary);
LCD.Write(' ');
}
Si (tankcharx > = 0 & & tankcharx < = 7) {}
lcd.setCursor (tankcharx, tankchary);
LCD.Write((byte)0);
}
Si (tankcharx + 1 > = 0 & & tankcharx + 1 < = 7) {}
lcd.setCursor (tankcharx + 1, tankchary);
LCD.Write((byte)1);
}
Si (tankcharx + 2 > = 0 & & tankcharx + 2 < = 7) {}
lcd.setCursor (tankcharx + 2, tankchary);
LCD.Write((byte)2);
}
Si (tankcharx + 3 > = 0 & & tankcharx + 3 < = 7) {}
lcd.setCursor (tankcharx + 3, tankchary);
LCD.Write((byte)3);
}
}
Calcular los bits de lo caracteres personalizado individual
int shiftbits = (tankx % BITS_PER_CHAR);
Serial.Print ("shiftbits =");
Serial.println(shiftbits);
Si (shiftbits < 0) {shiftbits += BITS_PER_CHAR;}
para (int y = 0; y < 8; y ++)
{
largo lval = tankImg [y];
interruptor (treadx) {}
caso 0:
interruptor (y) {}
caso 4:
LVAL ^ = 0x2cb0; rotura;
caso 7:
LVAL ^ = 0x2490; rotura;
}
rotura;
caso 1:
interruptor (y) {}
caso 4:
LVAL ^ = 0x1240; rotura;
LVAL ^ = 0x36d0; rotura;
caso 5:
LVAL ^ = 0x0008; rotura;
caso 6:
LVAL ^ = 0 x 4000; rotura;
caso 7:
LVAL ^ = 0x0920; rotura;
}
rotura;
caso 2:
interruptor (y) {}
caso 4:
LVAL ^ = 0x0920; rotura;
LVAL ^ = 0x1b60; rotura;
caso 5:
LVAL ^ = 0 x 4000; rotura;
caso 6:
LVAL ^ = 0x0008; rotura;
caso 7:
LVAL ^ = 0x1240; rotura;
}
rotura;
}

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);
}
lcd.createChar (0, sprite0);
lcd.createChar (1, sprite1);
lcd.createChar (2, sprite2);
lcd.createChar (3, sprite3);
++ tankx;
Si (tankx > = 50) {tankx = -15;}
++ treadx;
Si (treadx == 3) {treadx = 0;}
Delay(100);
}

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