#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(32, 16, 2); // set the LCD address to 0x3F for a 16 chars and 2 line display
int PB = 2;
void scrollMessage(int row, String message, int delayTime, int totalColumns)
{
for (int i = 0; i < totalColumns; i++)
{
message = " " + message;
}
message = message + " ";
for (int position = 0; position < message.length(); position++)
{
lcd.setCursor(0, row);
lcd.print(message.substring(position, position + totalColumns));
delay(delayTime);
}
}
void setup()
{
pinMode(PB, INPUT_PULLUP);
lcd.init();
lcd.clear();
lcd.backlight();
}
void loop()
{
while (digitalRead(PB) == 1)
{
lcd.setCursor(1, 0);
lcd.print("Hello World");
delay(500);
scrollMessage(1, "Welcome!", 250, 16);
}
if (digitalRead(PB) == 0)
{
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Let's begin!");
}
}