#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
const int ledPin = 12; // LED connected to digital pin 13
unsigned long previousLEDMillis = 0; // Store last time LED was updated
const unsigned long intervalLED = 1000; // Interval at which to blink (milliseconds)
unsigned long previousLCDMillis = 0;
const unsigned long intervalLCD = 4000;
int count = 0;
void setup() {
pinMode(ledPin, OUTPUT); // Initialize the digital pin as an output
// Init
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("COUNT: ");
}
void loop() {
unsigned long currentMillis = millis(); // Get the current time
if (currentMillis - previousLEDMillis >= intervalLED) { // Check if interval has passed
previousLEDMillis = currentMillis; // Save the current time
digitalWrite(ledPin, !digitalRead(ledPin)); // Toggle the LED state
}
if (currentMillis - previousLCDMillis >= intervalLCD) { // Check if interval has passed
previousLCDMillis = currentMillis; // Save the current time
count++;
lcd.setCursor(9, 0);
lcd.print(String(count));
}
}