DiogoBasto:
Hello,
thanks for both answers, but the problem isn´t there, yes in the photo i didn´t connect the arduino to the same GND as the LCD, but with it connected doesn´t work still… the adress is ok, 0x27, the potentiometer of the brightness is ok too, i just can see a blinking cursor on the lcd, everytime i hit reset it changes to other position.
Already tryied diferente lcd backpacks, diferent lcds and arduinos… nothing seems to work, might be the librarie?
here´s what i´m using.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.print(“Hello, world!”);
}
void loop()
{
}
Here are the corresponding lines from my oven control program. Notice the address is different. I had a similar struggle until I discovered the address problem.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define LCDROWSIZE 4
#define LCDCOLSIZE 20
lcd.begin(LCDCOLSIZE, LCDROWSIZE); // initialize the lcd for 16 chars 2 lines, turn on backlight
lcd.setCursor(0, 0); // Splash screen
lcd.print(" JODECO DRYING OVEN ");
lcd.setCursor(0, 1);
lcd.print("SET TIM: TMP: "); // allow for a 4 digit time in munutes
lcd.setCursor(0, 2);
lcd.print("RUN TIM: TMP: ");
update_Display_now(); // Show initial values = 0.
void update_Display_now() { // display the value only if changed since last time here.
lcd.setCursor(0, 0);
if (Blinker) {
lcd.print(" “); //clear old second tick
Blinker = false;
} else
{
lcd.print(”."); // print a tick for a second
Blinker = true;
}
if (entered_Time != LCD_entered_Time) {
print_entered_Time();
LCD_entered_Time = entered_Time;
}
if (entered_Temp != LCD_entered_Temp) {
print_entered_Temp();
LCD_entered_Temp = entered_Temp;
}
if (LCD_Minutes != Minutes) {
print_Minutes();
LCD_Minutes = Minutes;
}
if (LCD_running_Temp != running_Temp) {
print_running_Temp();
LCD_running_Temp = running_Temp;
}
}
void print_entered_Time() {
lcd.setCursor(8, 1);
lcd.print(" "); //clear old value
lcd.setCursor(8, 1);
lcd.print(entered_Time);
}
void print_entered_Temp() {
lcd.setCursor(17, 1);
lcd.print(" "); //clear old value
lcd.setCursor(17, 1);
lcd.print(entered_Temp);
}
void print_Minutes() {
lcd.setCursor(8, 2);
lcd.print(" "); //clear old value
lcd.setCursor(8, 2);
lcd.print(Minutes);
}
void print_running_Temp() {
lcd.setCursor(17, 2);
lcd.print(" "); //clear old value
lcd.setCursor(17, 2);
lcd.print(running_Temp);
}