/* Hello Wokwi! */
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include "Wire.h"
//#include <LiquidCrystal.h>
#define DS1307_I2C_ADDRESS 0x68
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte bcdToDec(byte val)
{
return ( (val/16*10) + (val%16) );
}
void getDateDs1307(byte *minute,byte *hour)
{
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(DS1307_I2C_ADDRESS, 7);
*minute = bcdToDec(Wire.read());
*hour = bcdToDec(Wire.read() & 0x3f);
}
void setup()
{
byte minute, hour;
Wire.begin();
// AMEND IF YOUR USING A DIFFERENT LCD SCREEN //
lcd.begin(16, 2);
}
void loop()
{
int ambientTemp=23;
int coolantTemp=101;
int voltage=12.5;
byte minute, hour;
String m, h, v;
v= String(voltage);
getDateDs1307( &minute, &hour);
if (minute < 10) { m = "0" + String(minute); } else { m = String(minute); }
h = String(hour);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print(char(255) + h + ":" + m + char(255) + "E ");
lcd.setCursor(12, 0);
lcd.print(coolantTemp);
lcd.write(223);
lcd.setCursor(3, 1);
lcd.print(char(255) + v + "V " + char(255) + "A");
//lcd.setCursor(10, 1);
//lcd.print(char(255) + "A");
lcd.setCursor(13, 1);
lcd.print(ambientTemp);
lcd.write(223);
delay(1000); // Wait 1 second
}