He conectado un Nokia 5110 LCD a un PIC. Muestra caracteres usando una tabla de fuentes.
¿Hay alguna manera de trazar datos ADC en la pantalla LCD con datos ADC en el eje Y y tiempo en el eje X? No quiero usar una biblioteca ya que mi espacio de código es limitado. Estoy usando el compilador Microchip XC8.
Guarde sus muestras en una matriz, luego trace cada valor ADC como el valor y e incremente el valor x.
Algo como el siguiente código ( int8_t = unsigned char typedef
):
int8_t buffer[256];
int8_t i;
for(i = 0, i < 256, i++)
{
// draw_pixel is your routine for plotting an individual pixel
draw_pixel(i, buffer[i]);
}
Puede interpolar entre los píxeles si lo desea (necesita una función draw_line - google para el código), luego haga algo como:
// note end value decremented by one to account for i+i
for(i = 0, i < 255, i++)
{
draw_line(i, buffer[i]), i+1, buffer[i+1]);
}
Trabajé con la pantalla Nokia 5110 hace un tiempo pero usando un MSP430.
La pantalla se puede ver como una matriz de 84 columnas x 6 bloques de 8 píxeles cada uno; escribir un valor de 0x00
a 0xFF
a un bloque cambiará su contenido ( 0x00
= nada en ese bloque, 0xFF
= este bloque está completamente activado). El bloque 0 representa las filas 0 a 7, el bloque 1 representa las filas 8 a 15, etc...
Por lo tanto, necesitará un búfer de 84 x 6 = 504 valores para contenerlos, ya que la pantalla es de solo escritura. Para dibujar un píxel en (x,y), debe encontrar en qué bloque desea escribir, luego cambiar los valores adecuados en el búfer, establecer la posición X/Y de la pantalla y escribirlo allí.
Esos códigos para Arduino podrían ayudar: https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library y https://github.com/adafruit/Adafruit-GFX-Library
Chetan Bhargava