Hola a todos escribo esto porque he visto aquí en el foro un proyecto de contador de pulsos que me ha parecido muy interesante el proyecto esta hecho para pantalla lcd 2004 pero yo tengo una pantalla de LCD 128X64 con controladora ST7920 y solo consigo ver el titulo de contadores que he puesto en el medio de la pantalla, quería decir que yo de programación no se nada, suelo buscar todo lo que encuentro del tema y voy cambiando hasta que suelo conseguirlo pero con este no sale. Gracias
#include "U8glib.h"
U8GLIB_ST7920_128X64_1X u8g(52, 51, 53); // SPI Com: (SCK, MOSI, CS)
struct {
unsigned int pinBoton;
unsigned int numPulsaciones;
bool ultimoEstado;
}
contador[12] = { {02, 0, LOW},
{03, 0, LOW},
{04, 0, LOW},
{05, 0, LOW},
{06, 0, LOW},
{07, 0, LOW},
{10, 0, LOW},
{11, 0, LOW},
{12, 0, LOW},
{13, 0, LOW},
{14, 0, LOW},
{15, 0, LOW}
};
void draw(void) {
// graphic commands to redraw the complete screen should be placed here
u8g.setFont(u8g_font_courB08);
u8g.drawStr( 5, 6, " A CONTADORES B");
}
void setup(void) {{
// flip screen, if required
// u8g.setRot180();
// set SPI backup if required
//u8g.setHardwareBackup(u8g_backup_avr_spi);
// assign default color value
if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
u8g.setColorIndex(255); // white
}
else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
u8g.setColorIndex(3); // max intensity
}
else if ( u8g.getMode() == U8G_MODE_BW ) {
u8g.setColorIndex(1); // pixel on
}
else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
u8g.setHiColorByRGB(255,255,255);
for (int i=0; i<12; i++) {
pinMode(contador[i].pinBoton, INPUT);
}
}}}
void loop(void) {{
// picture loop
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
// rebuild the picture after some delay
delay(50);
}
for (int i=0; i<12; i++) {
bool lectura = digitalRead(contador[i].pinBoton);
if (lectura != contador[i].ultimoEstado) {
if (lectura == HIGH) {
delay(10); // ajustar este valor PERFECTO
if (digitalRead(contador[i].pinBoton) == HIGH) { //confirmo x mseg después
++contador[i].numPulsaciones;
}
}
contador[i].ultimoEstado = lectura;
}
}
}
void draw(void){
u8g.setFont(u8g_font_courB08);
for (int i=0; i<1; i++) {
u8g.drawStr( 0, 19, "%d:%04d %d:%04d %d:%04d", i+01, contador[i+01].numPulsaciones, i+02, contador[i+02].numPulsaciones, i+03, contador[i+03].numPulsaciones);
u8g.drawStr( 0, 28, "%d:%04d %d:%04d %d:%04d", i+04, contador[i+04].numPulsaciones, i+05, contador[i+05].numPulsaciones, i+06, contador[i+06].numPulsaciones);
u8g.drawStr( 0, 37, "%d:%04d %d:%04d %d:%04d", i+07, contador[i+07].numPulsaciones, i+08, contador[i+08].numPulsaciones, i+09, contador[i+09].numPulsaciones);
u8g.drawStr( 0, 46, "%d:%04d %d:%04d %d:%04d", i+10, contador[i+10].numPulsaciones, i+11, contador[i+11].numPulsaciones, i+12, contador[i+12].numPulsaciones);
}
}