/*
Arduino Fireworks Base Device
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define osVersion "Ver: 1.011 Alpha"
#define osBanner "PyrOS"
#define copyRight "Copyright 2024"
#define companyBanner "Rick Stewart Ind."
#define lcdAddr 0x27
// set the LCD address to 0x27 for a 20 chars 4 line display
LiquidCrystal_I2C lcd( lcdAddr, 20, 4);
char lcdBuffer[4][21];
void setup()
{
Serial.begin(9600);
setup_lcd();
lcd.setCursor(0,1); //Start at character 0 on line 1
lcd.print("Booting ...");
delay(1000);
lcd.clear();
lcd.print(osBanner);
delay(1000);
lcd.setCursor(0,1);
lcd.print(osVersion);
delay(1000);
lcd.setCursor(0,2);
lcd.print(copyRight);
delay(1000);
lcd.setCursor(0,3);
lcd.print(companyBanner);
delay(1000);
}
void setup_lcd()
{
lcd.init(); // initialize the lcd
// Print our characters on the LCD
lcd.backlight(); //Backlight ON if under program control
lcd.setCursor(0,0); //Start at character 0 on line 0
lcd.print("LCD initalized.");
}
void display(char *message)
{
// Check to see if we have text on the screen
if( lcdBuffer[0].length() < 1 && lcdBuffer[1].length() < 1 && lcdBuffer[2].length() < 1 && lcdBuffer[3].length() < 1 ){
// Screen is empty
lcd.setCursor( 0, 0);
strcpy( lcdBuffer[0], message);
lcd.print( message );
}
}
void setup_bluetooth()
{
}
void setup_relays()
{
}
void loop()
{
{
// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
lcd.write(Serial.read());
}
}
}
}