Problema LCD 16x2

Ciao, ho un problema, come da titolo con un display LCD 16x2 con una scheda I2C saldata direttamente allo schermo presente in un kit, senza scritte e/o documentazione, lo sfondo è blu.
Ho scaricato la libreria NewliquidCrystal e caricato lo sketch trovato in questa pagina https://arduino-info.wikispaces.com/LCD-Blue-I2C.
Il risultato è lo schermo acceso con la prima fila formata da “blocchi pieni” invece che caratteri, e senza il lampeggiamento come da codice.
Credo possa essere un problema software, sembra come se non ci fosse comunicazione, ma non ne sono sicuro.
I collegamenti I2C sono corretti, e anche l’indirizzo, controllato con I2C scanner.
Ho letto che diverse schede I2C si inizializzano in modo differente nella funzione LiquidCrystal_I2C lcd(); ho provato diversi argomenti trovati su vari sketch qua e la ma senza ottenere risultati.
Ho provato vari sketch presi qui e lì, che nemmeno ricordo ma senza ottenere risultati diversi.
Sbaglio qualcosa nella configuraizione o devo dare il display per morto?
Grazie a tutti!

/* YourDuino.com Example Software Sketch
 16 character 2 line I2C Display
 Backpack Interface labelled "A0 A1 A2" at lower right.
 ..and
 Backpack Interface labelled "YwRobot Arduino LCM1602 IIC V1"
 MOST use address 0x27, a FEW use 0x3F
 terry@yourduino.com */

/*-----( Import needed libraries )-----*/
#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 )-----*/
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 16 chars 2 line display
// A FEW use address 0x3F
// 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

/*-----( Declare Variables )-----*/
//NONE

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);  // Used to type in characters

  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight

// ------- 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.setCursor(0,0); //Start at character 4 on line 0
  lcd.print("Hello, world!");
  delay(1000);
  lcd.setCursor(0,1);
  lcd.print("HI!YourDuino.com");
  delay(8000);  

// 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.clear();
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print("Use Serial Mon");
  lcd.setCursor(0,1);
  lcd.print("Type to display");  


}/*--(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());
      }
    }
  }

}/* --(end main loop )-- */


/* ( THE END ) */

ciao!

spesso questi lcd hanno un paio di piccoli problemi legati alle librerie/ide/indirizzo faci cos:

che ide usi? dall ide stessa vai su librerie e controlla se ci sono aggiornamenti per la tua libreria

poi ti consiglio per la prova iniziale di usare gli sketches di esempio che trovi all interno della libreria stessa (come hai detto tu non tutti partono con gli stessi comandi)

infine prova la libreria di testato (utende del forum) che trovi semplicemente googlandola

Ciao, la libreria che sto usando è quella che ho torvato qui https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
Ho scaricato l'ultima versione
L' IDE è la versione 1.6.10

Ho scaricato e installato le librerie testato, ma non funzia, nemmeno con l'esempio
Ho provato sia i pin dedicati all' I2C sia quelli A4 A5
Il display viene riconosciuto dall' I2C scanner ma non risponde a nessun comando

Cambia l'intestazione dei pin
dove al posto di 0x3F metti il tuo indirizzo letto con I2Cscanner

//LiquidCrystal_I2C lcd(0x3F);  // Set the LCD I2C address
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

Provato con quell' intestazione ma nulla

ma l'indirizzo qual'è ?

Il problema potrebbe essere dovuto al fatto che usi una libreria che non è aggiornata con la nuova versione dell'IDE (sicuramente è così perché la libreria che hai postato, l'ultima versione risale al 24 ottobre del 2015):

Prova l'ultima versione della libreria di Testato scaricabile QUI (ti linko questa perché magari non hai trovato quella proprio aggiornata, mentre questa ti posso assicurare che funziona con l'IDE 1.6.10)

Se sai l'indirizzo del tuo display allora prova l'esempio hello world con quella libreria che ti ho linkato e metti l'indirizzo giusto prima di caricare lo sketch

P.S. Infine anche se una cosa stupida, prova a girare il trimmer sull'adattatore i2c :slight_smile:

prova questo:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {

  lcd.init();
  lcd.backlight();
  lcd.clear();

}

void loop() {

  lcd.setCursor(0, 0);
  lcd.print("adesso funziona?");
}

p.S: io di qeiusta libreria ho la 1.1.2 col tuo stesso ide, come indirizzo ho messo quello che avevi scritto tu supponendo lo avessi preso da i2c scanner

Ciao acquasonik prima cosa mandaci una foto del modulo i2c che si trova dietro al display in modo da poter vedere che modulo monti.

P.s. se dietro c’è scritto A0 A1 A2 non troverai molte librerie ma se hai tempo fino al 26 - 27 agosto (Ora sono in vacanza :slight_smile: ) ti mando io una libreria fatta a posta per questo modulo, visto che anchio avevo un A0 A1 A2 :slight_smile:

Queste sono le foto del display, è proprio un "A0 A1 A2"

L'indirizzo è 0X27

As_Needed ho provato la libreria che mi hai linkato ma nulla

aster94 ho provato quel codice, ma mi da questo errore

In file included from C:\Users\Luke\Documents\Arduino\Arduino Uno\aaa\aaa.ino\aaa.ino.ino\aaa.ino.ino.ino:2:0:

C:\Program Files (x86)\Arduino\libraries\LiquidCrystal/LiquidCrystal_I2C.h: In function 'void setup()':

C:\Program Files (x86)\Arduino\libraries\LiquidCrystal/LiquidCrystal_I2C.h:154:9: error: 'int LiquidCrystal_I2C::init()' is private

    int  init();

         ^

aaa.ino.ino:8: error: within this context

   lcd.init();

            ^

exit status 1
within this context

Prova TUTTE le soluzioni che trovi qui: https://arduino-info.wikispaces.com/LCD-Blue-I2C

Mi quoto da solo. Acquasonik se hai tempo fino al 26 la libreria te la passo io!

Ernesto079569:
Ciao acquasonik prima cosa mandaci una foto del modulo i2c che si trova dietro al display in modo da poter vedere che modulo monti.

P.s. se dietro c'è scritto A0 A1 A2 non troverai molte librerie ma se hai tempo fino al 26 - 27 agosto (Ora sono in vacanza :slight_smile: ) ti mando io una libreria fatta a posta per questo modulo, visto che anchio avevo un A0 A1 A2 :slight_smile:

Infatti, con il link di sukko risolvi sicuro :wink: