problem with I2C_LCD vs RTClib


I have a program wich run correctly without the RTClib.

when I put line 15 " #include <RTClib.h> ", many errors appears when compilation.

arduino nano original
LCD 128*64 pixels with I2C_LCD library
DHT11 with DHT.h
RTClib with Dds3231 module
onewire with ds18b20 sensors

/*    .. 
//For details of the function useage, please refer to "I2C_LCD User Manual". 
//You can download the "I2C_LCD User Manual" from I2C_LCD WIKI page:

//The usage of LCD.print() is same to the Serial.print().
//For more informations about print, please visit:

#include "DHT.h"
#include <I2C_LCD.h>
#include <Wire.h>
#include <OneWire.h>
//#include <RTClib.h>

uint8_t I2C_LCD_ADDRESS = 0x69; //Device address configuration, the default value is 0x51.

#define DHTPIN A0      // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11 ou 22
const byte BROCHE_ONEWIRE = 7;

uint8_t StartTime;
int OneSecond = 1000 ;

int temps;

/* Broche du bus 1-Wire */

/* Adresses des capteurs de température */
const byte SENSOR_ADDRESS_1[] = { 0x28, 0xFF, 0x03, 0x81, 0xA4, 0x16, 0x04, 0x1F }; // capteur 1
const byte SENSOR_ADDRESS_2[] = { 0x28, 0xFF, 0x2B, 0xB4, 0xA4, 0x16, 0x05, 0x4E }; // capteur 2
const byte SENSOR_ADDRESS_3[] = { 0x28, 0xFF, 0x82, 0xB7, 0xA4, 0x16, 0x05, 0x06 }; // capteur 3
const byte SENSOR_ADDRESS_4[] = { 0x28, 0xFF, 0x54, 0xB0, 0xA4, 0x16, 0x04, 0x1C }; // capteur 4
const byte SENSOR_ADDRESS_5[] = { 0x28, 0xFF, 0x40, 0x7E, 0xA4, 0x16, 0x04, 0x53 }; // CAPTEUR 5

/* Création de l'objet OneWire pour manipuler le bus 1-Wire */

 * Fonction de démarrage de la prise de mesure de la température via un capteur DS18B20.
void startTemperatureMeasure(const byte addr[]) 
  // addr[] : Adresse du module 1-Wire détecté
  /* Reset le bus 1-Wire et sélectionne le capteur */
  /* Lance une prise de mesure de température et attend la fin de la mesure */
  ds.write(0x44, 1);

/*** Fonction de récupération de la prise de mesure de la température via un capteur DS18B20.
float readTemperatureMeasure(const byte addr[]) 
  byte data[9];
  // data[] : Données lues depuis le scratchpad
  // addr[] : Adresse du module 1-Wire détecté
  /* Reset le bus 1-Wire, sélectionne le capteur et envoie une demande de lecture du scratchpad */
 /* Lecture du scratchpad */
  for (byte i = 0; i < 9; i++) {
    data[i] =;
  /* Calcul de la température en degré Celsius */
  return ((data[1] << 8) | data[0]) * 0.0625; 

           /**************        void setup(void)         ***********/

void setup()          
    Wire.begin();         //I2C controller initialization.
    LCD.CleanAll(WHITE);    //Clean the screen with black or white.
    //LCD.WorkingModeConf(ON, ON, WM_CharMode);
    LCD.BacklightConf(LOAD_TO_RAM, 20);
    LCD.FontModeConf(Font_6x8, FM_ANL_AAA, BLACK_BAC);
    LCD.DispStringAt("0 2 4 6 8 0 2 4 6 8 0", 0, 0); 
    LCD.FontModeConf(Font_6x8, FM_ANL_AAA, BLACK_BAC);
    LCD.FontModeConf(Font_6x8, FM_ANL_AAA, BLACK_BAC);
    LCD.DispStringAt("Plantes 04 ", 45, 32); 
    LCD.CleanAll(WHITE);    //Clean the screen with black or white.

    Serial.println("Enable Plantes 04 sketch . ");

    temps = millis();

           /**************            void loop (void)         ***********/

void loop()
    float humidity    = dht.readHumidity();
    float temperature = dht.readTemperature();
    float Temperature[5]; // One Wire 
  /* Lit les températures des cinq capteurs One Wire */
  delay(750);          // temps de lecture .
  Temperature[0] = readTemperatureMeasure(SENSOR_ADDRESS_1);
  Temperature[1] = readTemperatureMeasure(SENSOR_ADDRESS_2);
  Temperature[2] = readTemperatureMeasure(SENSOR_ADDRESS_3);
  Temperature[3] = readTemperatureMeasure(SENSOR_ADDRESS_4);
  Temperature[4] = readTemperatureMeasure(SENSOR_ADDRESS_5);
                LCD.FontModeConf(Font_6x8, FM_ANL_AAA, BLACK_BAC); 

                //Set the start coordinate.
                //Print string on I2C_LCD.
                LCD.print("Temperature ");
                //Print float on I2C_LCD.
                LCD.print(" Humidity : ");
                //Print float on I2C_LCD.
                LCD.println("Températures : ");
                LCD.print(Temperature[4], 0);
                LCD.print(F("C. A:"));
                LCD.print(Temperature[1], 0);
                LCD.print(F("C. B:"));
                LCD.print(F("C. C:"));

                //Print the number of seconds since reset:
                //LCD.FontModeConf(Font_6x8, FM_ANL_AAA, BLACK_BAC); 

                LCD.print("police 6x8");
                //Print the number of seconds since reset:
                //StartTime = millis()/OneSecond;

thx for your help … .

Please use code tags (</> button on the toolbar) when you post code or warning/error messages. The reason is that the forum software can interpret parts of your code as markup, leading to confusion, wasted time, and a reduced chance for you to get help with your problem. This will also make it easier to read your code and to copy it to the IDE or editor. Using code tags and other important information is explained in the How to use this forum post. Please read it.

Please always do a Tools > Auto Format on your code before posting it. This will make it easier for you to spot bugs and make it easier for us to read. If you’re using the Arduino Web Editor you will not have access to this useful tool. I recommend you to use the standard IDE instead.

Please remove unnecessary blank lines from your code before posting to the forum. One or two to separate code into logical sections is fine but large spaces for no reason just make for more scrolling when we’re trying to read your code.

When your code requires a library that’s not included with the Arduino IDE please always post a link (using the chain link icon on the toolbar to make it clickable) to where you downloaded that library from or if you installed it using Library Manger(Sketch > Include Library > Manage Libraries) then say so and state the full name of the library.

When you encounter an error you’ll see a button on the right side of the orange bar “Copy error messages”. Click that button. Paste the error in a message here using code tags.

Did you install the RTC library correctly? Also:

When you encounter an error you'll see a button on the right side of the orange bar "Copy error messages". Click that button. Paste the error in a message here using code tags.

bonjour .

thx for your responses.

I resolve the problem with a ds3231.h library modification, by suppressing all line corresponding to DS1307, because some instructions have the same adresses than I2C_LCD.h library.