#include <LiquidCrystal_I2C.h>

#define I2C_ADDR    0x27
#define LCD_COLUMNS 20
#define LCD_LINES   4

int resetStart = 0;
int resetEnd = 0;
int timeTaken =0; 

LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);

void setup() {
  // Init
  lcd.init();
  lcd.backlight();

  // Print something
  lcd.setCursor(3, 0);
  lcd.print("Hello, world!");
  lcd.setCursor(1, 1);
  lcd.print("Hello Prof.Paxton!");
  lcd.setCursor(0, 3);
  lcd.print("Last reset: ");
  Serial.begin(115200);
}


void loop() {


  delay(3000);
  lcd.init();
  resetStart = millis();
  delay(random(500,4000));
  display();
}

void display(){

  resetEnd = millis();

  timeTaken = resetEnd - resetStart; 
  Serial.println(timeTaken);


  // Print something
  lcd.setCursor(3, 0);
  lcd.print("Hello, world!");
  lcd.setCursor(1, 1);
  lcd.print("Hello Prof.Paxton!");
  lcd.setCursor(0, 3);
  lcd.print("Last reset:");
  lcd.setCursor(11, 3);
  lcd.print(timeTaken);

  lcd.setCursor(16, 3);
  lcd.print("ms");

}