#include <LiquidCrystal_I2C.h>
#define LCD_WIDTH 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(0x27, LCD_WIDTH, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display
// print buffer
char printBuffer[LCD_WIDTH+1];
byte bufferIndex = 0;
void menu_printLabel( char text, uint8_t row, uint8_t start, uint8_t lenght){
char buffer[21];
byte i = 0;
for (i; i < min(strlen_P(text),LCD_WIDTH); i++) {
buffer[i] = pgm_read_byte_near(text + i);
}
// for (i; i < lineWidth; i++) {
// myChar[i] = ' ';
// }
lcd.setCursor(start, row);
lcd.print(buffer);
}
void menu_printLabel(uint8_t row, char text, uint8_t start, uint8_t lenght){
char buffer[21];
byte i = 0;
for (i; i < min(strlen_P(text),LCD_WIDTH); i++) {
buffer[i] = pgm_read_byte_near(text + i);
}
// for (i; i < lineWidth; i++) {
// myChar[i] = ' ';
// }
lcd.setCursor(start, row);
lcd.print(buffer);
}
const char exText[] PROGMEM = {"dupa"};
void setup()
{
Serial.begin(115200);
lcd.init(); // initialize the lcd
lcd.backlight();
// Print a message to the LCD.
lcd_printExample();
lcd_printLine(1,exText);
lcd_printLine(0,exText);
Serial.println(F("Start"));
}
void lcd_printExample(){
lcd.setCursor(0, 0);
lcd.print(F("Example screen"));
}
void lcd_printLine(uint8_t row, char text){
lcd.setCursor(0, row);
char myChar[21];
byte i = 0;
for (i; i < min(strlen_P(text),LCD_WIDTH); i++) {
myChar[i] = pgm_read_byte_near(text + i);
}
for (i; i < LCD_WIDTH; i++) {
myChar[i] = ' ';
}
lcd.print(myChar);
}
void loop() {
// put your main code here, to run repeatedly:
}