Here's half of the Arduino code:
int btnPin = 2; // Digital 2 ; 'Toggle' Button
int irPin = 3; // Digital 4 ; IR Detector
int bryPin = 5; // Digital 5 ; Bottom Right Yellow LED
int trgPin = 6; // Digital 6 ; Top Right Green LED
int blgPin = 7; // Digital 7 ; Bottom Left Green LED
int tlyPin = 8; // Digital 8 ; Top Left Yellow LED
int clockPin = 9; // Digital 9 ; SH_CP on Shift Register
int latchPin = 10; // Digital 10 ; ST_CP on Shift Register
int dataPin = 11; // Digital 11 ; DATA on Shift register
int blPin = 0; // Analog 0 ; Blue RGB LED
int cdsPin = 2; // Analog 2 ; CdS Cell
int rdPin = 3; // Analog 3 ; Red RGB LED
int gnPin = 4; // Analog 4 ; Green RGB LED
int irval = 1;
int btnval = 1;
int cdsval = 0;
int pos = 0;
int i = 0;;
void setup()
{
Serial.begin(9600);
pinMode(latchPin, OUTPUT);
pinMode(btnPin, INPUT);
//pinMode(irPin, INPUT);
pinMode(bryPin, OUTPUT);
pinMode(trgPin, OUTPUT);
pinMode(tlyPin, OUTPUT);
pinMode(blPin, OUTPUT);
pinMode(rdPin, OUTPUT);
pinMode(gnPin, OUTPUT);
clearLCD();
Serial.print(0xFE, BYTE);
Serial.print(0x0C, BYTE);
determineBacklight();
delay(100);
selectLineOne();
delay(100);
Serial.print("Main Menu");
delay(500);
for(i = 0; i < 10; i++) {
scrollLeft();
delay(100);
}
delay(1000);
}
void loop()
{
clearLCD();
pos = 130;
selectLineCustom();
Serial.print("Select Menu");
pos = 197;
selectLineCustom();
Serial.print("Option");
delay(700);
for(i = 0; i < 15; i++) {
scrollLeft();
delay(100);
}
clearLCD();
mainMenu();
}
void selectLineOne(){ //puts the cursor at line 0 char 0.
Serial.print(0xFE, BYTE); //command flag
Serial.print(128, BYTE); //position
}
void selectLineTwo(){ //puts the cursor at line 0 char 0.
Serial.print(0xFE, BYTE); //command flag
Serial.print(192, BYTE); //position
}
void selectLineCustom() {
Serial.print(0xFE, BYTE);
Serial.print(pos, BYTE);
pos = 0;
}
void scrollRight() {
Serial.print(0xFE, BYTE);
Serial.print(0x1C, BYTE);
}
void scrollLeft() {
Serial.print(0xFE, BYTE);
Serial.print(0x18, BYTE);
}
void clearLCD(){
Serial.print(0xFE, BYTE); //command flag
Serial.print(0x01, BYTE); //clear command.
}
void determineBacklight() {
cdsval = analogRead(cdsPin);
if(cdsval < 500) {
backlightOn();
}
else if(cdsval > 500) {
backlightOff();
}
}
void backlightOn(){ //turns on the backlight
Serial.print(0x7C, BYTE); //command flag for backlight stuff
Serial.print(157, BYTE); //light level.
}
void backlightOff(){ //turns off the backlight
Serial.print(0x7C, BYTE); //command flag for backlight stuff
Serial.print(128, BYTE); //light level for off.
}
void serCommand(){ //a general function to call the command flag for issuing all other commands
Serial.print(0xFE, BYTE);
}
void End() {
delay(500);
End();
}