سلام حسین عزیز
راه های مختلفی برای انجام این کار وجود داره که من دو موردش رو اشاره میکنم.
راه اول اینکه همون طوری که گفته بودم هر دو ماژول رو به پین های I2C آردوینو وصل کنید و برای خوندنشون از کتابخانه Wire استفاده کنید. در این صورت هر ماژول رو باید با آدرس خودش صدا بزنید و بین توابع begintransmission و endtransmission عملیات مورد نظرتون رو بنویسید. مثلا :
wire.begintransmission(address1)
x++;
wire.endtransmission(false)
این روش نیازمند وقت و علاقه به کدزنی هست.
روش دوم و ساده تر این هست که از کتابخانه های موجود هر ماژول استفاده کنید. برای LCD از کتابخانه LiquidCrystal_I2C و برای تایمر از کتابخانه DS3231 استفاده کنید. البته اینها تنها کتابخانه های موجود نیستند ولی من خودم از همین ها استفاده میکنم. دستورات مهم کتابخانه LCD به صورت زیر هست:
LiquidCrystal_I2C lcd(0x27, 16, 2);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Hello, World!");
delay(1000);
lcd.clear();
و دستورات مهم کتابخانه تایمر به این صورت اند:
DS3231 DS3231(datapin, clockpin);
DS3231.begin();
DS3231.getTime();
DS3231.getTemp();
نکته بسیار مهمی که در مورد این کتابخانه باید دقت کنید این هست که تایمر رو نباید همزمان با ماژول دیگه ای به I2C آردوینو وصل کنید. ولی در عوض با دستور اولی که در بالا گفتم، میتونید اون رو به هر پین دیگه ای وصل کنید و با این توضیح مشکلات قبلیتون هم برطرف میشه.
موفق باشید.