Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial
____________________________
31A.- Pantalla LCD. Caracteres especiales.
- El cambio de caracteres no se realiza desde las librerías de LCD ya están en la ROM de la tarjeta.
- El módulo LCD contiene una memoria EPROM en donde están los caracteres que se pueden escribir.
- Hay dos tipos de ROM:
ROM Code: A00 japonesa y ROM Code: A02 europea. La mayoría de nuestras pantallas tienen la EPROM japonesa.
- Con la A00 solo podemos obtener la eñe minúscula.
- En este archivo, concretamente en las páginas 16 y 17 observamos los distintos tipos de caracteres: HD44780.pdf
____________________________
1.- Recorrer los 256 posibles caracteres.
- Va mostrando el número del carácter en decimal, binario y el caracter.
- Observa que el número del carácter lo escribe mediante lcd.print y el carácter mediante lcd.write.
256.ino |
// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup()
{
lcd.begin(16,2);// Columnas y filas de LCD
Serial.begin(9600);
delay(2000);
}
void loop() {
// LCD
for(int i=0; i<=255; i++){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(i);
lcd.setCursor(5,0);
lcd.print(i, BIN);
lcd.setCursor(0,1);
byte z = (int) i;;
lcd.write(z);
delay(500);
}
}
|
____________________________
2.- Crear nuevos caracteres.
- Consultamos la página 17 de este documento y vamos adaptando nuestros caracteres: HD44780.pdf
- En este ejemplo he creado la Ñ, ú, á y ó.
crear.ino |
// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// Ñ
byte n2[8] = {
B01101,
B10010,
B00000,
B10001,
B11001,
B10101,
B10011,
B10001
};
// ú
byte u2[8] = {
B00010,
B00100,
B00000,
B10001,
B10001,
B10001,
B10011,
B01101
};
// á
byte a2[8] = {
B00010,
B00100,
B00000,
B01110,
B00001,
B01111,
B10001,
B01111
};
// ó
byte o2[8] = {
B00010,
B00100,
B00000,
B01110,
B10001,
B10001,
B10001,
B01110
};
void setup()
{
lcd.begin(16,2);// Columnas y filas de LCD
Serial.begin(9600);
lcd.createChar(1, n2);
lcd.createChar(2, u2);
lcd.createChar(3, a2);
lcd.createChar(4, o2);
for(int n = 1; n < 5; n++)
{
lcd.setCursor(n,0);
lcd.write(n);
}
lcd.createChar(0, n2);
lcd.setCursor(0,1);
lcd.write("El ");
lcd.write(1);
lcd.write("and");
lcd.write(2);
}
void loop() {
}
|
________________________________
|