Problème LCD I2C Arduino nano

Salut tout le monde

j'ai un soucis avec mon montage d'un ecran LCD / I2C sur une carte Arduino Anno
le programme compile sans soucis
le retro-eclairage du LCD fonctionne, mais je n'ai aucun message
j'ai vérifier les soudures, tout semble ok

mon code : (il sert à piloter 2 relais en variant le temps via 2 BP pour ajouter ou enlever du temps)

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,16,2);


int ledm = 12;     
int boutonmoins = 11;
int boutonplus = 10; 
int ledp = 9;     
int bouton = 8;

int relais1 = 7;  
int relais2 = 6;  

int boutonp = HIGH;
int boutonm = HIGH;
int boutonc = HIGH;



int val0 = 18000;
int val;


void setup()
{  
  lcd.begin(16,2);
 
  pinMode(ledp, OUTPUT);    
  pinMode(ledm, OUTPUT); 


  pinMode(boutonplus, INPUT); 
  pinMode(boutonmoins, INPUT);
  pinMode(bouton, INPUT);

  pinMode(relais1, OUTPUT);
  pinMode(relais2, OUTPUT);
  
  digitalWrite(relais1, LOW);
  digitalWrite(relais2, LOW);
    
  lcd.init();                      
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("duree");
  lcd.setCursor(0,1);
  lcd.print(val0);
 
   
  
  }

void loop()
{
  
boutonp = digitalRead(boutonplus);
boutonm = digitalRead(boutonmoins);
boutonc = digitalRead(bouton);

  
 
  if  (boutonp == LOW)
  {    
  digitalWrite(ledp, HIGH);
  val0 = val0+250;
  lcd.setCursor(0,0);
  lcd.print("duree");
  lcd.setCursor(0,1);
  lcd.print(val0);
  delay (200),
  digitalWrite(ledp, LOW);

  }
  
  if (boutonm == LOW) 
  {    
  digitalWrite(ledm,HIGH);
  val0 = val0-250;
  lcd.setCursor(0,0);
  lcd.print("duree");
  lcd.setCursor(0,1);
  lcd.print(val0);
  delay (200);
  digitalWrite(ledm, LOW);
  }
  
  if ((boutonc == LOW)) 
  {
    // active le relais
  digitalWrite(ledp, HIGH);
  digitalWrite(ledm, HIGH);
  lcd.setCursor(0,0);
  lcd.print("recuit");
  lcd.setCursor(0,1);
  lcd.print(val0);
  
     
    digitalWrite(relais1, HIGH);
    delay (val0);
    digitalWrite(relais1, LOW);
    delay(150);
    digitalWrite(relais2, HIGH);
    delay(700);
    digitalWrite(relais1, LOW);
    delay(100);
    
    
  digitalWrite(ledp, LOW);
  digitalWrite(ledm, LOW);
  delay(100);
  lcd.setCursor(0, 1);
  lcd.print("--OK--");
  delay(700);  
  lcd.setCursor(0,0);
  lcd.print("duree");
  lcd.setCursor(0,1);  
  lcd.print(val0);
  delay(100);       
  } 
}

je ne vois pas où est mon erreur....

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

sorry....

Commence par tester les exemples de la bibliothèque de l'afficheur, pour voir s'ils fonctionnent.

Est-ce bien cette bibliothèque ?

Il est possible que l'adresse I2C (0x20) que tu mets ici :
LiquidCrystal_I2C lcd(0x20,16,2);
ne soit pas celle de ton écran. tu peux la chercher avec un I2C scanner :
https://playground.arduino.cc/Main/I2cScanner/
Il scannera toutes les adresses et t'indiqueras celle(s) qui répond(ent).

LiquidCrystal_I2C lcd(0x20,16,2);
Je plussoie @lesept, l'adresse de ton affichage est 0x27 ou 0x3F, mais pas 0x20, si c'est un "classique" affichage LCD.
image

Cordialement
jpbbricole

en effet, l'adresse etait bien mauvaise (0x27)
j'ai corrigé, mais même problème....

je viens de tester un exemple de la bibliothèque
même résultat : le LCD est bien éclairé, mais pas de message....

Bonjour gilg33

Sur mon installation, avec ton programme, j'ai un message, tu as peut-être un problème de réglage de contraste.

Cordialement
jpbbricole

un réglage du potentiometre de contraste ne fait rien apparaître ?
(oups ! déjà évoqué par @jpbbricole )

bingo !
c'était juste ça !!

merci les gars

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.