#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
const long interval1 = 250; // Interval for scrolling text 1
const long interval2 = 250; // Interval for scrolling text 2
String message1 = "First Text";
String message2 = "Second Text";
int lcdColumns = 16;
void setup() {
Wire.begin();
Serial.begin(115200);
Serial.println("I2C Scanner");
lcd.init();
lcd.backlight();
lcd.home();
}
void scrollText(int row, String message, unsigned long &previousMillis, const long interval) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
for (int i = 0; i < lcdColumns; i++) {
message = " " + message;
}
message = message + " ";
static int pos = 0;
lcd.setCursor(0, row);
lcd.print(message.substring(pos, pos + lcdColumns));
pos++;
if (pos >= message.length()) {
pos = 0;
}
}
}
void loop() {
lcd.home();
// Scroll text 1
scrollText(0, message1, previousMillis1, interval1);
// Scroll text 2
scrollText(1, message2, previousMillis2, interval2);
}