// define devices pin & library //
#include <Wire.h> // I2C library
#include <LiquidCrystal_I2C.h> // LCD with I2C library
#define SW1 2 // SW on pin 2
#define SW2 3 // SW on pin 3
#define LED1 8 // LED1 on pin 8
#define LED2 9 // LED1 on pin 9
#define LED3 10 // LED1 on pin 10
#define LED4 11 // LED1 on pin 11
LiquidCrystal_I2C myLCD(0x27, 16, 2); // I2C_LCD 16x2
void setup()
{
pinMode(SW1, INPUT); // SW1 as input
pinMode(SW2, INPUT); // SW2 as input
pinMode(LED1, OUTPUT); // LED1 as output
pinMode(LED2, OUTPUT); // LED2 as output
pinMode(LED3, OUTPUT); // LED3 as output
pinMode(LED4, OUTPUT); // LED4 as output
Serial.begin(9600);
myLCD.begin(0x27, 16, 2 );
myLCD.setCursor(2,0); // 1st row
myLCD.print ("Press Button");
myLCD.setCursor(4,1); // 1st row
myLCD.print ("To Test");
}
void loop()
{
if (digitalRead(SW1) == HIGH) // SW pressed
{
digitalWrite(LED1, HIGH); // LED1 on
digitalWrite(LED2, LOW); // LED2 off
digitalWrite(LED3, HIGH); // LED3 on
digitalWrite(LED4, LOW); // LED4 off
Serial.print ("Led1=ON");
Serial.print (" Led2=OFF");
Serial.print (" Led3=ON");
Serial.println (" Led4=OFF");
myLCD.setCursor(2,0); // 1st row
myLCD.print ("L1=1");
myLCD.print (" L2=0");
myLCD.setCursor(2,1); // 2nd row
myLCD.print ("L3=1");
myLCD.print (" L4=0");
}
else if (digitalRead(SW2) == HIGH) // SW2 pressed
{
digitalWrite(LED1, LOW); // LED1 off
digitalWrite(LED2, HIGH); // LED2 on
digitalWrite(LED3, LOW); // LED3 off
digitalWrite(LED4, HIGH); // LED4 on
Serial.print ("Led1=OFF");
Serial.print (" Led2=ON");
Serial.print (" Led3=OFF");
Serial.println (" Led4=ON");
myLCD.setCursor(2,0); // 1st row
myLCD.print ("L1=0");
myLCD.print (" L2=1");
myLCD.setCursor(2,1); // 2nd row
myLCD.print ("L3=0");
myLCD.print (" L4=1");
}
delay(500); // delay 30s before new loop
}