part 2
/* write one character to the LCD */
void
lcd_putch(byte c)
{
digitalWrite(LCD_RS,HIGH); // write characters
lcd_write(c);
}
void
lcd_putin(int c)
{
digitalWrite(LCD_RS,HIGH); // write characters
lcd_write(c);
}
/*
* Go to the specified position
*/
void
lcd_goto(byte pos)
{
digitalWrite(LCD_RS,0);
lcd_write(0x80 + pos);
}
/* initialise the LCD - put into 4 bit mode */
void
lcd_init(void)
{
pinMode(LCD_D7,OUTPUT);
pinMode(LCD_D6,OUTPUT);
pinMode(LCD_D5,OUTPUT);
pinMode(LCD_D4,OUTPUT);
pinMode(LCD_EN,OUTPUT);
pinMode(LCD_RS,OUTPUT);
digitalWrite(LCD_RS, LOW); // write control bytes
delay(15);// power on delay
digitalWrite(LCD_D4, HIGH); // init!
digitalWrite(LCD_D5, HIGH); //
lcd_strobe();
delay(5);
lcd_strobe();// init!
delayMicroseconds(100);
lcd_strobe();// init!
delay(5);
digitalWrite(LCD_D4, LOW); // set 4 bit mode
lcd_strobe();
delayMicroseconds(40);
lcd_write(0x28);// 4 bit mode, 1/16 duty, 5x8 font, 2lines
lcd_write(0x0C);// display on
lcd_write(0x06);// entry mode advance cursor
lcd_write(0x01);// clear display and reset cursor
}
void checkPower()
{
// check power status of projector
proj_send(proj_statusPower);
incomingPower[0] = mySerial.read();
incomingPower[1] = mySerial.read();
Serial.print(incomingPower[0]);
Serial.println(incomingPower[1]);
if (incomingPower[0] == '0')
{
if (incomingPower[1] == '0')
{
// POWER is ON
lcd_clear();
delay(10);
lcd_goto(0);
delay(10);
lcd_puts("STATUS:Power ON ");
Serial.println("STATUS POWER IS ON");
}
// if (incomingPower[1] == '2')
// {
// // Any buttons on a projector is not available
// lcd_clear();
// delay(10);
// lcd_goto(0);
// delay(10);
// lcd_puts("Any buttons on a ");
// lcd_goto(40);
// delay(10);
// lcd_puts("proj. not avail.");
// }
// if (incomingPower[1] == '4')
// {
// // Power Save
// lcd_clear();
// delay(10);
// lcd_goto(0);
// delay(10);
// lcd_puts("Power Save ");
// }
// if (incomingPower[1] == '8')
// {
// // Exceeding critical temperature
// lcd_clear();
// delay(10);
// lcd_goto(0);
// delay(10);
// lcd_puts("Exceed high temp");
// }
}
// if (incomingPower[0] == '1')
// {
// // Abnormal Power Supply
// lcd_clear();
// delay(10);
// lcd_goto(0);
// delay(10);
// lcd_puts("Abnormal Power ");
// }
// if (incomingPower[0] == '2')
// {
// if (incomingPower[1] == '0')
// {
// // COOLING DOWN
// lcd_clear();
// delay(10);
// lcd_goto(0);
// delay(10);
// lcd_puts("Cooling down ");
// }
// if (incomingPower[1] == '4')
// {
// // Processing Power Save - Cooling Down
// lcd_clear();
// delay(10);
// lcd_goto(0);
// delay(10);
// lcd_puts("Power Save ");
// lcd_goto(40);
// delay(10);
// lcd_puts("Cooling Down ");
// }
// if (incomingPower[1] == '8')
// {
// // Cooling down because of exceeding critical temperature
// lcd_clear();
// delay(10);
// lcd_goto(0);
// delay(10);
// lcd_puts("Cool down hi tmp");
// }
// }
// if (incomingPower[0] == '4')
// {
// // COUNT DOWN
// lcd_clear();
// delay(10);
// lcd_goto(0);
// delay(10);
// lcd_puts("Count Down ");
// }
if (incomingPower[0] == '8')
{
if (incomingPower[1] == '0')
{
// STANDBY
// POWER is ON
lcd_clear();
delay(10);
lcd_goto(0);
delay(10);
lcd_puts("STATUS:Power OFF");
}
if (incomingPower[1] == '8')
{
// STANDBY mode after recovering the exceeding critical temperature
lcd_clear();
delay(10);
lcd_goto(0);
delay(10);
lcd_puts("Standby HI TEMP ");
}
}
}
void checkInput()
{
// check input status of projector
proj_send(proj_statusInput);
incomingInput = mySerial.read();
Serial.println(incomingInput);
if(incomingInput == '1')
{
// COMPUTER INPUT
lcd_goto(40);
delay(10);
lcd_puts(" Input PC ");
Serial.println("INPUT IS PC");
}
if(incomingInput == '3')
{
// VIDEO INPUT --- DVD
lcd_goto(40);
delay(10);
lcd_puts(" Input DVD");
Serial.println("INPUT IS DVD");
}
}
void checkLamp()
{
proj_send(proj_lampHours);
incomingLamp[0] = mySerial.read();
incomingLamp[1] = mySerial.read();
incomingLamp[2] = mySerial.read();
incomingLamp[3] = mySerial.read();
Serial.print(incomingLamp[0]);
Serial.print(incomingLamp[1]);
Serial.print(incomingLamp[2]);
Serial.println(incomingLamp[3]);
lcd_goto(0);
delay(10);
lcd_puts("Total Lamp Hours");
lcd_goto(40);
delay(10);
lcd_putch(incomingLamp[0]);
lcd_putch(incomingLamp[1]);
lcd_putch(incomingLamp[2]);
lcd_putch(incomingLamp[3]);
lcd_puts(" ");
}