// include the library code:
#include <LiquidCrystal.h>
// these constants won't change. But you can change the size of
// your LCD using them:
const int numRows = 4;
const int numCols = 16;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(numCols,numRows);
}
void loop() {
// loop from ASCII 'a' to ASCII 'z':
for (int thisLetter = 'a'; thisLetter <= 'z'; thisLetter++) {
// loop over the columns:
for (int thisCol = 0; thisCol < numRows; thisCol++) {
// loop over the rows:
for (int thisRow = 0; thisRow < numCols; thisRow++) {
// set the cursor position:
lcd.setCursor(thisRow,thisCol);
// print the letter:
lcd.print(thisLetter, BYTE);
delay(200);
}
}
}
}
Moi j'ai u le méme probléme que toi sur un 4x40, et un 4x20, les ligne 3 et 4 etait décaler de 1 car !!!.
avec la libréry LiquidCrystal440.h
j'ai fait une soustraction de la position lcd.begin(numCols**-x**,numRows**-y**);
me demande pas commant mes sur le 4x40 sa marche.
a teste lcd.setCursor(numCols-thisRow,numRows-thisCol);.
ci joint un petit bout de mon code..
// ##################### DEBUT TRAITEMENT TRAJET ###### FINI ###########################
if (affichemenu==2)
{
displaytrajet(); // caractaire spécial
lcd.setCursor(nColumns-39,0); // col 5 row 3
if (theure<10){lcd.print("0");} // HEURE
lcd.print(theure);
lcd.print(":");
if (tminute<10){lcd.print("0");} // MINUTE
lcd.print(tminute);
lcd.print(":");
if (tseconde<10){lcd.print("0");} // seconde
lcd.print(tseconde);
// ---------------------------------------- AFFICHE kilométre
lcd.setCursor (nColumns-28,0); // Cursor at column 2 row 4
lcd.print(kilo,2);
lcd.print(" Km ");
//---------------------------------------- AFFICHE LE PEAGE
lcd.setCursor (nColumns-39,1);
lcd.print(peage); // PRIX
lcd.setCursor(nColumns-32,1); // Cursor at column 10 row 1
lcd.print("Peage");
// --------------------------------------- AFFICHAGE DU PRIX DE L'ESECNCES
lcd.setCursor(nColumns-39,2); // Cursor at column 10 row 1
lcd.print(conso_escence); // PRIX
lcd.setCursor(nColumns-32,2); // Cursor at column 10 row 1
lcd.print("Carbu. ");
lcd.print(litre,2); // affiche le nombre de litre consomer
lcd.print(" L");
// AFFICHE du prix total
///************************* conso_escence
lcd.setCursor(nColumns-39,3); // Cursor at column 10 row 1
lcd.print(prix_trajet,2); // PRIX
lcd.setCursor(nColumns-32,3); // Cursor at column 10 row 1
lcd.print("Total");
///************************ affiche la moy
lcd.setCursor(nColumns-24,3); // Cursor at column 10 row 1
car_valueD=(litre/kilo)*100; // calcule consomation moyenne pour 100km
lcd.print("Moy ");
lcd.print(car_valueD);
lcd.print(" Li ");
}
// ***************************FIN AFFICHAGE MODE TRAJET***************************
J'ai ma petit idée du probléme la libaryLCD bug sur le départ de la 3 ligne et 4 ligne, aprés observation du code C de la libreryLCD, la seul parade ces de mettre en "-" . Aprés il faut changer du code C dans la libraryLCD.
écouter j'ai un trou de 2h00 demain au travail, je regarde sa plus en détail et je te post une solus.
Cordialement
Bon aprés un bref tour sur la toile, le départ de la 3 lignes varie en fonction de frabricants en général
14 et 54 mes cela peut étre dif ché hitachi cela n'est pas les méme que motorola.
dou le bout de code a changer dans LiquidCrystal.cpp en fonction de la marche du LCD.
Pour toit essais (0x12 ou 0x16) et (0x52 ou 0x56).
J'ai testé avec ta modification, et essayé les diverses combinaison (0x12 ou 0x16) et (0x52 ou 0x56).
Rien a faire, les lignes 3 et 4 sont décalées de 4 caractères.