En fouillant dans la bibliothèque on trouve ça :
void LiquidCrystal_I2C::setCursor(uint8_t col, uint8_t row){
int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 };
if (row > _rows) {
row = _rows-1; // we count rows starting w/0
}
command(LCD_SETDDRAMADDR | (col + row_offsets[row]));
}
Avec, dans le .h:
#define LCD_SETDDRAMADDR 0x80
J'imagine qu'en modifiant
0x14, 0x54
en
0x10, 0x50
ça devrait corriger le problème (ôter 4). Mais c'est peut-être un peu plus compliqué que ça : il faudrait rentrer dans le code de la fonction 'command' qui elle même appelle 'send' qui appelle 'write4bits' qui utilise la bibli 'Wire'... autant tester ces valeurs et voir ce que ça donne !
"A force d'essayer, on y arrivera ..."
Je ne sais pas si c'est juste une bidouille ou s'il y a vraiment un problème dans la bibli... mais on sent bien que les valeurs du tableau sont différentes pour les deux dernières lignes !