Bonjour.
Je sais que ce sujet a été traité au moins 1000 fois (si ce n'est plus...) mais pour le coup j'ai réellement tout essayé (vous allez me dire que non, et je serais d'accord mais considérons cette assertion relativement vraie si vous le voulez bien). En effet, depuis 2 semaines maintenant, je me tape ce fameux problème de carré blanc sur la ligne supérieure de mon écran LCD 16x2 connecté à un arduino Uno R3, et impossible d'y faire quelque chose.
Voici tout ce que j'ai tenté :
- Souder un module I2C à ce même écran (photo jointe)
- Régler le contraste
- Mettre mon écran en 4 bits (avec les broches D4 à D7)
- Mettre un potar de réglage de contraste sur la platine
- Nettoyer les contacts
- Changer d'écran LCD
- Changer d'arduino
- Changer de platine
- Modifier le code en testant avec d'autres broches (pourtant j'ai pris des exemple extrêmements simple, vous trouverez les codes sur lesquelles je me suis basé pour tester mon lcd)
- J'ai suivi à la lettre le tuto fourni dans le kit de démarrange arduino (Boule de crystal mon amour) et, spoiler : ça fonctionne pas
- Tester les fils avec un multimètre
- Vérifier s'il y a du courant circulant dans les fils datas (le seul truc que j'ai pu trouver est que lorsque je transmet des infos, l'un des 4 n'envoie pas de courant (j'ai testé avec plusieurs fils et plusieurs endroits sur la platine)
- Changer de câble USB B
- L'alimenter via une alimentatione externe
- Upload le programme via un autre ordi (on sait jamais si le pb venait de là... oui le désespoir m'envahit)
- Changer les fils
- Tester l'arduino avec des montages simples (genre avec des leds etc) et le PIRE, c'est que TOUT fonctionne parfaitement (à croire qu'il se fiche de moi
)
La seule chose que je n'ai pas fait c'est TOUT souder, mais ayant testé plusieurs fois les contacts cela m'étonnerait. Toutefois, s'ils s'avèrent que les réponses sont unanimes, je m'y résoudrais.
Je précise que jusqu'à il y a 2 semaines, tout fonctionnait parfaitement et que c'est lorsque j'ai essayé de reprendre le projet que ça a foiré (j'avais fait quelques erreurs dans mon montage qui ont fait chauffer certains composants de l'arduino, mais qui auraient dû être réglé par le changement d'arduino et de l'écran et des fils...)
Code I2C (je précise que j'ai bien vérifié l'adresse et que l'écran s'éteint puis se rallume) :
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD(0x27,16,2); // définit le type d'ecran lcd 16 x 2
void setup() {
LCD.init(); // initialisation de l'afficheur
LCD.backlight();
LCD.setCursor(1, 0);
LCD.print("HELLO");
LCD.setCursor(8, 1);
LCD.print("WORLD");
}
void loop() {
LCD.noDisplay();
delay(1000);
LCD.display();
delay(1000);
}
Code 4 bits :
// include the library code:
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}
(oui c'est le code hello world de base mais pas besoin de plus).
Montage I2C :
Montage 4 bits :
Liens des composants utilisés :
- LCD https://fr.farnell.com/midas/mc21605c6w-bnmlwi-v2/afficheur-alphanumerique-16x2/dp/2748649
- Arduino Uno R3 https://fr.farnell.com/arduino/a000066/arduino-uno-carte-d-eval/dp/2075382?srsltid=AfmBOortVnScYWeOB-IvCEoCQHf3VYM67MtvWjrLZYU34fU4nhUcjl7m
- Module I2C Backpack I2C pour LCD ME033 - Gotronic
Voilà, j'espère avoir donné suffisamment d'information. Je pense étoffer mon post dans les jours qui suivent pour être certain de ne rien avoir oublié !
En tout cas, si vous avez eu des soucis similaires ou que vous avez une idée à laquelle je n'aurais pas pensé (c'est certain) je suis preneur !
Je vous remercie encore et pendant ce temps je continue d'essayer xd



