Modificación código LCD 16X2 modulo i2c

Buenas tardes amigos de la comunidad de arduino, el código que pondre a continuación muestra ciertos parametros en la LCD 16X2 pero necesito modificarlo para que este mismo funcione en la pantalla 16x2 con el módulo i2c pero no se que partes haya que cambiar para que este funcione, les agradeceria muchísimo si alguien supiera como hacerlo y me pudiera explicar y enseñar que es lo que se necesita modificar y por que, muchas gracias de antemano .

Código

#include <LiquidCrystal.h>
LiquidCrystal lcd(7,8,10,11,12,13);

int num_Measure = 128 ; // Set the number of measurements   
int pinSignal = A0; // pin connected to pin O module sound sensor  
int redLed = 5; 
long Sound_signal;    // Store the value read Sound Sensor   
long sum = 0 ; // Store the total value of n measurements   
long level = 0 ; // Store the average value   
int soundlow = 40;
int soundmedium = 500;
 
void setup ()  
{   
  pinMode (pinSignal, INPUT); // Set the signal pin as input   
  Serial.begin (9600); 
  lcd.begin(16,2); 
}  
   
void loop ()  
{  
  // Performs 128 signal readings   
  for ( int i = 0 ; i <num_Measure; i ++)  
  {  
   Sound_signal = analogRead (pinSignal);  
    sum =sum + Sound_signal;  
  }  
 
  level = sum / num_Measure; // Calculate the average value   
  Serial.print("Sound Level: ");
  lcd.print("Sound Level= ");
  Serial.println (level-33);  
  lcd.print(level-33);
  if(level-33<soundlow)
  {
    lcd.setCursor(0,2);
    lcd.print("Intensity= Low");
     digitalWrite(redLed,LOW);
  }
  if(level-33>soundlow && level-33<soundmedium)
  {
    lcd.setCursor(0,2);
    lcd.print("Intensity=Medium"); 
     digitalWrite(redLed,LOW); 
  }
  if(level-33>soundmedium)
  {
    lcd.setCursor(0,2);
    lcd.print("Intensity= High");   
    digitalWrite(redLed,HIGH); 
  }
  sum = 0 ; // Reset the sum of the measurement values  
  delay(200);
  lcd.clear();
}

Buenas tardes, ya supe como hacer que funcione con el modulo I2C aquí los pasos:

1.-Eliminar la libreria liquid crystal que viene por defecto en el ide
2.-Descargar la libreria para del LCD 16X2 Para el modulo I2C https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/
3.-Instalar la libreria
4.- Añadir esto: (Comparar código anterior con el código puesto aquí abajo para mayor entendimiento de que se quito y que se añadio)

#include <LiquidCrystal.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>    // libreria para LCD por I2C

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7); // DIR, E, RW, RS, D4, D5, D6, D7

5.- Ahora en void setup

void setup ()  
{   
pinMode (pinSignal, INPUT); // Set the signal pin as input   
Serial.begin (9600); 
 lcd.setBacklightPin(3,POSITIVE);  //  P3 port of PCF8574 as positive
  lcd.setBacklight(HIGH);   // enables lcd backlight
  lcd.begin(16, 2);     // 16 columns x 2 lines for LCD 1602A
  lcd.clear();

Y seria todo, tendrán su código funcionando con el modulo I2c

#include <LiquidCrystal.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>    // libreria para LCD por I2C

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7); // DIR, E, RW, RS, D4, D5, D6, D7

int num_Measure = 128 ; // Set the number of measurements   
int pinSignal = A0; // pin connected to pin O module sound sensor  
int redLed = 5; 
long Sound_signal;    // Store the value read Sound Sensor   
long sum = 0 ; // Store the total value of n measurements   
long level = 0 ; // Store the average value   
int soundlow = 40;
int soundmedium = 500;
 
void setup ()  
{   
  pinMode (pinSignal, INPUT); // Set the signal pin as input   
  Serial.begin (9600); 
   lcd.setBacklightPin(3,POSITIVE);  //  P3 port of PCF8574 as positive
    lcd.setBacklight(HIGH);   // enables lcd backlight
    lcd.begin(16, 2);     // 16 columns x 2 lines for LCD 1602A
    lcd.clear();
}  
   
void loop ()  
{  
  // Performs 128 signal readings   
  for ( int i = 0 ; i <num_Measure; i ++)  
  {  
   Sound_signal = analogRead (pinSignal);  
    sum =sum + Sound_signal;  
  }  
 
  level = sum / num_Measure; // Calculate the average value   
  Serial.print("Nivel Sonido: ");
  lcd.print("Nivel Sonido= ");
  Serial.println (level-33);  
  lcd.print(level-33);
  if(level-33<soundlow)
  {
    lcd.setCursor(0,2);
    lcd.print("Int= Baja");
     digitalWrite(redLed,LOW);
  }
  if(level-33>soundlow && level-33<soundmedium)
  {
    lcd.setCursor(0,2);
    lcd.print("Int= Media"); 
     digitalWrite(redLed,LOW); 
  }
  if(level-33>soundmedium)
  {
    lcd.setCursor(0,2);
    lcd.print("Int= Alta");   
    digitalWrite(redLed,HIGH); 
  }
  sum = 0 ; // Reset the sum of the measurement values  
  delay(200);
  lcd.clear();
}

Hola, si te parece te dejo un ejemplo muy simple para el i2c, y con este podrás ver que cosas distintas tiene al tuyo. Aqui importante es la libreria, que será la que te podría dar problemas.

#include <Wire.h>                    // Necesario Modulo i2c
#include <LiquidCrystal_I2C.h>       //Libreria LCD i2c
LiquidCrystal_I2C lcd (0x3f, 16, 2); // Direccion comunicacion i2c LCD y tamaño
  


void setup() {
  
Wire.begin();
  lcd.begin(16,2);                // Tamaño de la pantalla LCD
  lcd.backlight ();               // Encender la luz LCD 
  lcd.clear ();                   // Limpiar la pantalla LCD
  
}

void loop() {
  
  lcd.setCursor (0, 0);     // Posicion cursor para (abajo)
  lcd.print ("LINEA CERO");           // TEXTO
  lcd.setCursor (0, 1);    // Posicion cursor para (abajo)
  lcd.print("LINEA UNO");           // TEXTO

}