El error me lo da aquí ...
Código: Seleccionar todo
#ifdef LCD16
#include "LiquidCrystal_I2C_Soft.h"
LiquidCrystal_I2C lcd(LCD_I2C_ADDR,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
char indicators[] = {'|', '/', '-',0};
uint8_t SpecialChar [8]= { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00 };
#define SCREENSIZE 16
#elif defined(LCD20)
#include "LiquidCrystal_I2C_Soft.h"
LiquidCrystal_I2C lcd(LCD_I2C_ADDR,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display // AQUI ME DA EL ERROR AL COMPILAR
char indicators[] = {'|', '/', '-',0};
uint8_t SpecialChar [8]= { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00 };
#define SCREENSIZE 20
#elif defined(OLED1306)
#if defined(Use_SoftI2CMaster) && defined(__AVR_ATmega2560__)
#define SDA_PORT PORTD
#define SDA_PIN 1
#define SCL_PORT PORTD
#define SCL_PIN 0
#include <SoftI2CMaster.h>
#elif defined(Use_SoftI2CMaster)
....
Y en la "ventana de compilación" ...
Código: Seleccionar todo
In file included from E:\MegaDuino_Firmware\MegaDuino_2.0\MegaDuino_2.0.ino:11:0:
hwconfig.h:53:3: error: 'LiquidCrystal_I2C' does not name a type
LiquidCrystal_I2C lcd(LCD_I2C_ADDR,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display
^~~~~~~~~~~~~~~~~
E:\MegaDuino_Firmware\MegaDuino_2.0\MegaDuino_2.0.ino: In function 'void loop()':
MegaDuino_2.0:218:13: error: 'lcd' was not declared in this scope
lcd.setCursor(0,0); lcd.print(filename2.substring(0,20));
^~~
MegaDuino_2.0:494:7: error: 'lcd' was not declared in this scope
lcd.setCursor(0,1); lcd.print(" ");
......
El caso es que he revisado todas las definiciones de LCD20 y no veo errores. La verdad es que varían poco respecto a las de LCD16, salvo evidentemente en lo relativo a "imprimir" los caracteres en pantalla.
Con LCD16 que es lo mismo salvo, como digo, por las posiciones de pantalla y número de caracteres a mostrar, no me da error ....