#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // Set the LCD address to 0x27 for a 16 chars and 2 line display

const int buttonPin = 2; // Pushbutton connected to digital pin 2
int buttonState = 0;     // Variable for reading the pushbutton status
int lastButtonState = 0; // Variable to store the previous state of the button

void setup() {
  lcd.init();                      // Initialize the LCD
  lcd.backlight();                 // Turn on the backlight
  randomSeed(analogRead(0));       // Seed the random number generator
  pinMode(buttonPin, INPUT);       // Set pushbutton pin as input
}

// Function to generate positive random numbers within a range
int positiveRandom(int minVal, int maxVal) {
  return random(maxVal - minVal + 1) + minVal;
}

void loop() {
  buttonState = digitalRead(buttonPin); // Read the state of the pushbutton
  
  if (buttonState != lastButtonState) {
    if (buttonState == HIGH) { //
      lcd.clear();                       
      lcd.setCursor(0, 0);              
      lcd.print("Success");               
      lcd.setCursor(0, 1);               
      int randomNumber = positiveRandom(0, 999999); // Generate a positive random number between 0 and 999999
      lcd.print("Index " + String(randomNumber)); 
    }
    delay(200); // Increased debounce delay
  }
  
  lastButtonState = buttonState;
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL