LCD 16x4

Bonjour à tous,

Jeune apprenti dans le domaine je cherche à faire apparaitre sur un LCD 16*4 des informations
'ai suivi scrupuleusement la connectique.

Le rétro éclairage s'allume et on tournant le potentiomètre le contraste se règle par contre je n'arrive pas à faire apparaitre les indications.

#include <LiquidCrystal.h>


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

void setup()
  {
  lcd.begin(16, 4);                        
  lcd.setCursor(0,2);
  lcd.print("test");
  lcd.setCursor(0,3);
  lcd.print("test");
  }

void loop()
  {
  }

En sachant que l'arduino est un mega 2560. Je ne sais pas s'il y a des subtilités...
Merci d'avance pour votre aide

Je crois que cette bibliothèque a un bug avec les deux dernières lignes. Essaie d'écrire sur les deux premières pour commencer.

lcd.setCursor(0,0);
  lcd.print("test");
  lcd.setCursor(0,1);
  lcd.print("test");

Bonjour,
sur la photo on voit qu'il y a 2 lignes noires sur l'écran, donc il n'est pas initialisé.
Revoir les branchements et vérifier qu'ils correspondent à la déclaration de l'init.

Ce n’est pas un 16x4 mais un 20x4 essayez avec lcd.begin(20, 4); suivi d’un lcd.clear()

Il y a plein de LiquidCrystal.h - laquelle vous utiliser?

Bonsoir,
Effectivement je n'ai pas fait attention mais il y a 20 caractères possibles apparemment (la facture précise bien 16x4...)

Pour la version de LiquidCrystal c'est le 1.0.7
J-M-L: j'ai essayé lcd.begin(20, 4); suivi d'un lcd.clear() mais ca n'a rien apporté.

spink37: qu'elle est la procédure d'initialisation? A quoi cela correspond?

J'ai récupéré le schéma de l'écran, mais ca à l'air d'être du classique?

ton lcd n'est pas branché correctement
LiquidCrystal lcd (rs, enable, d4, d5, d6, d7)

r/w au gnd

référence lcd ? compatible hd44780 ?

Bonjour, voici le modèle

Je n ai rien vu sur la comptabilité hd44780

Bonjour

Les produits vendus par Farnell sont en général bien documentés

la page du produit indique :
controleur.jpg
Cette même page donne accès une notice technique téléchargeable, elle confirme la référence SPLC780D pour le contrôleur.

Pour aller plus loin télécharger la notice du SPLC780D et observer le jeu de commandes, le jeu de caractères...

Ok merci je vais essayer de me débrouiller.
Mais c est vrai que ce n est pas si simple quand on debute :slight_smile:

c'est un 16x4 alors
pour débuter, on teste 1 ou 2 exemples de la biblio
rs, enable, d4 d5 d6 d7 ne sont pas cablés dans le bon ordre,

liquidcrystal lcd(2,3,4,5,11,12)

rs au 2 enable au 3 etc...

LiquidCrystal lcd (rs, enable, d4, d5, d6, d7)

Et c’est clairement un 20x4 pas 16x4 - suffit de compter les blocs sur la photo

J-M-L:
Et c’est clairement un 20x4 pas 16x4 - suffit de compter les blocs sur la photo

oui c'est clair !

ceci dit, même initialisé en 16*4 il devrait afficher les caractères, mais pas au bon endroit. Là il me semble qu'il a vraiment un problème de câblage

Mais c est vrai que ce n est pas si simple quand on debute :slight_smile:

Un afficheur OLED SSD1306 est nettement plus simple à utiliser, au moins d'avoir besoin de caractères de grande taille.

@+

J-M-L:
Et c’est clairement un 20x4 pas 16x4 - suffit de compter les blocs sur la photo

Donc ça ne correspond visiblement pas au lien fourni par jeremie01

https://fr.farnell.com/midas/mc41605a6w-bnmlw-v2/afficheur-alphanumerique-16x4/dp/2675654

hbachetti:
Un afficheur OLED SSD1306 est nettement plus simple à utiliser, au moins d'avoir besoin de caractères de grande taille.

Au 16x4, je préfère le...

Il y a un sens caché ?

Comme le signale J-M-L effectivement sur l'écran il y a bien 20 blocs par ligne.
Mais sur ma facture il est bien indiqué 16X4.

Je suppose qu'il faut utiliser cette fiche technique

Il est vrai que ce n'est pas le plus simple pour débuter :slight_smile:

je me demande où tu as a trouvé LiquidCrystal lcd(2, 3, 4, 5, 11, 12);

l'exemple :

#include <Wire.h>
#include <LiquidCrystal.h>

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

"j'ai suivi scrupuleusement la connectique." ne correspond pas à ton sketch

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

tant que tu n'expliqueras pas les liaisons que tu as réalisés entre la mega et le lcd :

d12 >>> pin lcd ?
d11 >>>
d5 >>>
etc....

Voici mon code actuel

#include <LiquidCrystal.h>

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

void setup() 
{
  lcd.begin(20, 4);   
  lcd.clear();

}

void loop() 
{
                     
  lcd.setCursor(0,0);
  lcd.print("TEST");
  

}

Pour le câblage
Vss-->Masse
Vdd-->5V
V0-->Potentiomètre (broche du milieu)
Rs-->pin12
R/W-->Masse
E-->pin11
DB4-->pin5
DB5-->pin4
DB6-->pin3
DB7-->pin2
Led+-->5V
Led- -->Masse

Vous allez peut-être mieux identifier l'erreur avec ces informations effectivement

hbachetti:
Il y a un sens caché ?

Juste que j'ai laissé tomber ces écrans qui posent trop de problèmes à mon gout : un OLED ou un TFT, c'est plus facile à mettre en oeuvre, il y a des bibliothèques très bien faites, et le résultat est plus esthétique. Donc, j'ai délaissé le 16x4 pour la 1664. (hips :confused: )