problème affichage sur LCD I2C 20x4

j'ai essayé d'afficher sur 4 lignes une phrase longue mais
mon afficheur affiche sur ligne 1 puis ligne 3 (???) puis ligne 2(?) puis ligne 4 (?)
et pas dans l'ordre 1,2, 3, 4

mon code est le suivant :

#include <Wire.h>
#include <LiquidCrystal_I2C.h> 
const int  en = 2, rw = 1, rs = 0, d4 = 4, d5 = 5, d6 = 6, d7 = 7, bl = 3;
const int i2c_addr = 0x3F;
LiquidCrystal_I2C lcd(i2c_addr, en, rw, rs, d4, d5, d6, d7, bl, POSITIVE);

void setup() {
  lcd.begin(20, 4);
  lcd.backlight();
  lcd.clear();
  lcd.print("bonjour je suis un texte long sur plusieurs lignes et je dois afficher dans l'ordre des lignes"); 
}

est-ce un problème de bibliothèque ou matériel ?
Merci pour votre réponse !

aucun probleme, c'est dû à la conception interne des afficheurs
pour afficher des phrases plus longues que le nombre de caracteres affichables par ligne, il faut utiliser le defilement de caracteres ou couper la phrase en "lignes" de 20 caracteres et utiliser la fonction setCursor

Merci de ne pas poster 2 fois la même question

corrigez vos posts et utilisiez les code tags autour du code:
[code]`` [color=blue]// votre code ici[/color] ``[/code].

ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l’IDE avant de copier le code pour qu’il soit indenté correctement)