Bonjour, je poste c sujet aujourd'hui car je commence à désespérer !!
J'ai acheté un LCD 20x4 avec son module I2C il y a peu et impossible de lui faire afficher quelque chose.
Voici le code qui ne marche pas et je ne comprend pas pourquoi il doit y avoir un problème avec la librairies pourtant j'ai regardé et je ne vois vraiment rien donc je fais appel à vous pour m'aider !
Bichongri:
Bonjour, je poste c sujet aujourd'hui car je commence à désespérer !!
J'ai acheté un LCD 20x4 avec son module I2C il y a peu et impossible de lui faire afficher quelque chose.
bonjour
Il semble y avoir pas mal de problemes avec certaines libs I²C/LCD (basées sur du PCF8574/A)
j'ai aussi pas mal cherché "du fiable" au debut
perso j'utulise celle ci sans aucun soucis
attention à bien nettoyer :
// Get the LCD I2C Library here:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
J'ai déjà essayé avec cette librairie pourrais tu mettre un exemple de ton programme car même avec les exemples fournis je n'arrive pas à faire fonctionner le LCD. Le programme se téléverse bien mais rien ne s'affiche à l'écran ! La ligne 1 et 3 sont remplies de carrées pleins et rien ne s'affiche.
J'utilise une carte UNO, un afficheur LCD 20x4, il n'y a pas l'air d'avoir vraiment de référence à part 2004A et une interface I2C pour display 20x4.
Bichongri:
J'ai déjà essayé avec cette librairie pourrais tu mettre un exemple de ton programme car même avec les exemples fournis je n'arrive pas à faire fonctionner le LCD. Le programme se téléverse bien mais rien ne s'affiche à l'écran ! La ligne 1 et 3 sont remplies de carrées pleins et rien ne s'affiche.
J'utilise une carte UNO, un afficheur LCD 20x4, il n'y a pas l'air d'avoir vraiment de référence à part 2004A et une interface I2C pour display 20x4.
photo de ton adaptateur I²C/LCD ?
test rapide avec ce que j'ai sous la main
#include <Wire.h> // Comes with Arduino IDE
// Get the LCD I2C Library here:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#include <LiquidCrystal_I2C.h>
/*-----( Declare Constants )-----*/
//none
/*-----( Declare objects )-----*/
// set the LCD address to 0x20 for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
long sec=0;
long pm=0;
byte ad;
/*-----( Declare Variables )-----*/
byte c0[8] = {17,10,17,21,21,17,10,17};
byte c1[8] = {31,17,17,17,17,17,17,31};
byte c2[8] = {25,21,19,17,19,21,25,0};
byte c3[8] = {3,3,4,9,18,4,24,24};
byte c4[8] = {24,24,4,18,9,4,3,3};
;
//none
void setup() /*----( SETUP: RUNS ONCE )----*/
{
Serial.begin(9600); // Used to type in characters
lcd.begin(20,4); // initialize the lcd for 20 chars 4 lines and turn on backlight
lcd.createChar(0, c0);
lcd.createChar(1, c1);
lcd.createChar(2, c2);
lcd.createChar(3, c3);
lcd.createChar(4, c4);
// ------- Quick 3 blinks of backlight -------------
for(int i = 0; i< 3; i++)
{
lcd.backlight();
delay(250);
lcd.noBacklight();
delay(250);
}
lcd.backlight(); // finish with backlight on
//-------- Write characters on the display ----------------
// NOTE: Cursor Position: CHAR, LINE) start at 0
lcd.home ();
lcd.setCursor(3,0); //Start at character 4 on line 0
lcd.print("Hello, world!");
delay(1000);
lcd.setCursor(0,2);
lcd.print("20 by 4 Line Display");
delay(2000);
lcd.clear();
// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to "No Line Ending")
lcd.setCursor(0,0); //Start at character 0 on line 0
lcd.print("TOP LCD 20X4 ");
lcd.setCursor(0,3);
lcd.print("BICHONGRI ");
lcd.setCursor(2,1);
lcd.print("Ligne 2 ");
lcd.write(byte(0));
lcd.write(byte(1));
lcd.write(byte(2));
lcd.write(byte(3));
lcd.write(byte(4));
lcd.write(byte(3));
lcd.write(byte(4));
lcd.write(byte(3));
lcd.write(byte(4));
lcd.setCursor(0,2);
lcd.print(" Ligne 3 ");
}/*--(end setup )---*/
void loop() /*----( LOOP: RUNS CONSTANTLY )----*/
{
{
// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
lcd.write(Serial.read());
}
}
if (pm<= millis()-100) {
sec=sec + 1;
lcd.setCursor(14,3);
lcd.print(sec);
ad=sec % 20;
lcd.setCursor(ad,2);
lcd.print(" >");
pm=millis();
}
}
}/* --(end main loop )-- */
/* ( THE END ) */
La photo de mon module I2C. Et en essayant ton code cela ne marche pas non plus le code se téléverse bien sur ma carte mais rien à l'écran et et il me met juste en orange les erreurs suivantes :
Plusieurs bibliothèque trouvées pour "LiquidCrystal_I2C.h"
Utilisé : C:\Users\basti\OneDrive\Documents\Arduino\libraries\NewliquidCrystal
Non utilisé : C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal
Non utilisé : C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal
Non utilisé : C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal
Non utilisé : C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal
Bichongri:
La photo de mon module I2C. Et en essayant ton code cela ne marche pas non plus le code se téléverse bien sur ma carte mais rien à l'écran et et il me met juste en orange les erreurs suivantes :
Plusieurs bibliothèque trouvées pour "LiquidCrystal_I2C.h"
tu n'a pas fait le ménage 8)
voir ma reponse en #2
Je viens de le re-téléverser en mettant la librairie et en enlevant les autres et toujours rien !
Les erreurs mais pas en orange donc je pense pas que ça soit grave :
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones : C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX : C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX
Le croquis utilise 6 422 octets (19%) de l'espace de stockage de programmes. Le maximum est de 32 256 octets.
Les variables globales utilisent 586 octets (28%) de mémoire dynamique, ce qui laisse 1 462 octets pour les variables locales. Le maximum est de 2 048 octets.
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones : C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX : C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones : C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX : C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX
Et aussi l'image de ce que m'affiche le LCD dès que je le branche au 5V et qui ne change jamais !
vu la photo , je ne pense pas que ce soit un probleme d'adresse
ceci etant ça ne coute rien de passer un coup de scanner I²C
déjà ça permettra de lever le doute sur l'I²C en lui meme