probleme afficheur LCD alphanumerique (8 colonnes au lieu de 16!!)

Bonjour,
Tout est dans le titre!!

Je suis débutant et je n'arrives pas à faire fonctionner correctement l'afficheur LCD alphanumérique 1 ligne 16 colonnes MR400-015.
En effet, il ne m'affiche que 8 caractères au lieu de 16.

mon montage:

RS sur digital 12
E sur digital 11
D0 à D3 à la masse
D4 sur digital 5
D5 sur digital 4
D6 sur digital 3
D7 sur digital 2
R/W à la masse
VSS à la masse
VCC sur 5V

mon code:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 1);
lcd.print("hello, world!");
}

void loop() {
}

Ce programme m'affiche "hello wo"
Je vous promet, J'ai beaucoup cherché, y compris sur internet!
Merci beaucoup par avance.

probablement un lcd une ligne 8 x 2

essayez çà

lcd.begin(8, 2);

Il me semble bien avoir essayé ça. Je testerai demain tout de même.
Sur le site ou j'ai acheté l'afficheur LCD (semageek), un utilisateur se plaint du même problème, l'administrateur lui à répondu

"Bonjour, L'écran fonctionne très bien avec la librairie LiquidCrystal, le problème doit venir d'ailleurs merci de contacter le SAV par mail avec schéma de câblage complet et votre programme en pièce jointe."

bref, j'avais une piste, mais de là à obtenir une réponse de leur part...
Toutefois je leur ai posé la question à mon tour.

Merci si quelq'un a une idée!

avec lcd.begin(8, 2);

il faut peut etre lcd.setcursor(9,1) qui sera en fait le 9eme caractere de la ligne 1

exactement comme un 2x16 lignes : lcd.print("hello, world! je suis le meilleur");
vous ne verrez que les 16 premiers caracteres, le message ne va pas se couper automatiquement apres le 16 eme caractere pour passer à la ligne 2

Salut,
Aïe Aïe Aïe, ça marche paaaas!!!
J'ai contacté le SAV semageek, j'ai décrit le problème, ils m'ont répondu que l'afficheur devait être défectueux, ils m'en ont renvoyé un nouveau, mais le problème persiste.
Je renouvelle donc ma requête au cas ou...
Merci infiniment par avance

Salut;

Il doit y avoir un problème de branchement.
http://www.microbot.it/documents/mr400-015_datasheet.pdf

DB0~DB7 sont les broches 8bits
Hors tu a mis a la masse DO à D3

A plus !

SAlut,
Merci beaucoup pour ta réponse.
J'ai déjà testé ce câblage, à savoir:
DB0 à DB7 sur D9 à D2,
Dans le doute, je vais refaire le test.

Petite erreur de ma part

Je corrige.

Retire la masse sur D0 à D3 qui sont les broches 8bits.

A plus !

Essai ça.

Voici un synoptique de branchement.

Légende=> o Connection ; --- Connecteurs;
LCD 1 (VSS) o----------------------------------o GND
LCD 2 (VDD) o----------------------------------o +5V
LCD 3 (V0 ) o----------------------------------o Broche sortie Potar
LCD 4 (RS ) o----------------------------------o 11 Broche Arduino
LCD 5 (R/W) o----------------------------------o GND
LCD 6 (Enbl) o----------------------------------o 10 Broche Arduino
LCD 7 (DB0)o Rien
LCD 8 (DB1)o  "
LCD 9 (DB2)o  "
LCD 10 (DB3)o Rien
LCD 11 (DB4)o----------------------------------o 5 Broche Arduino
LCD 12 (DB5)o----------------------------------o 4 Broche Arduino
LCD 13 (DB6)o----------------------------------o 3 Broche Arduino
LCD 14 (DB7)o----------------------------------o 2 Broche Arduino
LCD 15 (+5V)o-----o//Résistance 220 ohm//o---o +5V
LCD 16 (0V )o----------------------------------o GND

Je viens de trouver cette solution qui n'en est pas vraiment une:
ça fonctionne, mais ce n'est pas vraiment pratique

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(8, 2);
lcd.setCursor(0,1);
lcd.home();
lcd.clear();
lcd.print("hello wo");
lcd.setCursor(0,1);
lcd.print("rld!!");
lcd.cursor();
lcd.blink();
}

void loop() {

}

A tu regardé le datasheet ?

A tu retiré les connexions de masse sur les broches cité.

C'est une solution oui ! Mais le fonctionnement reste anormal et vas te compliquer la mise en application.

A plus !

smaww:
Je viens de trouver cette solution qui n'en est pas vraiment une:
ça fonctionne, mais ce n'est pas vraiment pratique

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(8, 2);
lcd.setCursor(0,1);
lcd.home();
lcd.clear();
lcd.print("hello wo");
lcd.setCursor(0,1);
lcd.print("rld!!");
lcd.cursor();
lcd.blink();
}

void loop() {

}

lcd.setCursor(0,1); inutile
lcd.home(); inutile, repositionne curseur 0,0 sans effacer le texte
lcd.clear(); positionne curseur colonne 0 ligne 0 avec effacement
il faut vraiment les 3 ??? lcd.clear tout seul devrait suffire

lcd.print("hello wo"); ecrit à partir de colonne 0 ligne 0
lcd.setCursor(0,1); positionne curseur colonne 0 ligne 1
lcd.print("rld!!"); ecrit à partir de colonne 0 ligne 1

le probleme vient des vendeurs "1 x 16 lignes" sans préciser si c'est 1x16 ou 2 x 8 sur la meme ligne

le 2 lignes x 8 colonnes était courant dans les anciens, sauf qu'on avait une marque et un modele, on consultait la datasheet avant d'acheter : philips ltn111 et ltn211 par exemple

solution actuelle : toujours acheter des 16x2, ou 8x2 avec les lignes de 8 caracteres une en dessous de l'autre si on a vraiment un souci d'encombrement

Salut;

A tu retiré la masse sur DB0 à DB3?

Je ne comprend pas ?

Pourquoi la référence d'un équipement donné 1X16 et autant de gymnastique pour le mettre en œuvre?

Bon! soit !

A plus!

Merci pour vos réponses et désolé d'être un peu long à la détente, je suis au four et au moulin!!!
Manu, tu veux dire laisser les broches DB0 à DB3 en l'air, non connectées?
Electrax, j'ai copié cette "solution" sur une page que je ne retrouves pas, Je vais retirer les lignes inutiles.
En effet, comme je le dit, ça fonctionne, mais ce n'est pas pratique, ce n'est donc pas une solution.
Semageek ne connait donc pas les propriétés de ce composant!

En parallèle, je me suis commandé un 16x2, ce devrait être plus simple.
merci les amis, je teste tout ça dès que possible

Salut;

Manu, tu veux dire laisser les broches DB0 à DB3 en l'air, non connectées?

Oui ne rien connecter a ces broches.

A plus !