Problema LCD I2C 20x4 caratteri a metà

Salve, ho un lcd 20x4 i2c, dopo aver aperto i2c scanner ho scoperto l’indirizzo 0x3F e ho fatto uno sketch per testarlo, ma alcuni caratteri si vedono male come in figura qui sotto. Lcd è guasto? Grazie

Sketch che uso:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup() {

  lcd_begin();
lcd.setCursor(0,0);
lcd.print("1234567891234567891");
lcd.setCursor(0,1);
lcd.print("1234567891234567891");
lcd.setCursor(0,2);
lcd.print("1234567891234567891");
lcd.setCursor(0,3);
lcd.print("1234567891234567891");
}

void lcd_begin () {
  lcd.begin(20,4);   
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight();
}

void loop(){
  
}

Hai provato a stampare un carattere differente per vedere se il problema di visualizzazione è identico? Nel senso che se i soliti pixel sono spenti allora potrebbe essere un problerma di LCD o di collegamenti saldati male.
puoi anche provare a creare un carattere con tutti i pixel accesi e stampare quello su tutte le righe

fabpolli:
puoi anche provare a creare un carattere con tutti i pixel accesi e stampare quello su tutte le righe

Esiste già, ha codice 255:

for (int r=1; r<=2;r++)
 for (int c=1; c<=16; c++)
   lcd.write(255);

Ma vista così mi pare un difetto di uno dei due chip di gestione (uno gestisce le prime 2 righe l’altro le seconde) che ha alcune colonne di pixel che non si accendono.

Tranquillo
Un bel respiro e...lo mettiamo a posto.
Vedi quelle palettina di lamiera piegate dietro alla cornice del display?
Ecco, piegale meglio in modo che il vetro del display risulti ancora più pressato sul circuito stampato (e quindi sulle "gommine conduttive" che trasferiscono i segnali al vetro.

Vedrai che ce la fai.

E' successo alcune volte anche a me...