#define LED 2
#define LED2 4
#define LED3 26
#define LED4 27
#define SW1 5
#define SW2 16
#define SW3 17
#define SW4 12
#define SW5 14
#define SW6 25
#define SW7 33
#define SW8 32
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <ESP32Servo.h>
const int servoPin = 13;
Servo servo;
int pos = 0;
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
Serial.println("Hello, ESP32!");
Serial.println("My name is Siradanai Chuepukong (115)");
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
pinMode(SW3, INPUT_PULLUP);
pinMode(SW4, INPUT_PULLUP);
pinMode(SW5, INPUT_PULLUP);
pinMode(SW6, INPUT_PULLUP);
pinMode(SW7, INPUT_PULLUP);
pinMode(SW8, INPUT_PULLUP);
//////////////////////////
lcd.setCursor(5, 0);
lcd.print("<<Dommy>>");
digitalWrite(LED, LOW);
Serial.println("LED->>OFF");
lcd.setCursor(4, 1);
lcd.print("LED1 is OFF ");
digitalWrite(LED2, LOW);
Serial.println("LED2->>OFF");
lcd.setCursor(4, 2);
lcd.print("LED2 is OFF ");
/////////////////////////
//LED.clear() ;
delay(2000);
servo.attach(servoPin, 500, 2400);
}
void loop() {
//Function_a () ;
//LED_1 () ;
//LED_2 ();
//LED_3 () ;
//LED_4 ();
//Servo_control () ;
//servo1_unselect ();
Function_OFF () ;
delay(200);
if (digitalRead(SW1) == LOW) {
Function_a () ;
}
if (digitalRead(SW2) == LOW) {
LED_1 () ;
}
if (digitalRead(SW3) == LOW) {
LED_2 () ;
}
if (digitalRead(SW4) == LOW) {
LED_3 () ;
}
if (digitalRead(SW5) == LOW) {
LED_4 () ;
}
if (digitalRead(SW6) == LOW) {
Servo_control () ;
}
if (digitalRead(SW7) == LOW){
servo1_select ();
}
if (digitalRead(SW8) == LOW){
servo2_unselect();
}
}
void Function_a (){
digitalWrite(LED, HIGH);
Serial.println("LED->>ON");
digitalWrite(LED2, LOW);
Serial.println("LED2->>ON");
digitalWrite(LED3, HIGH);
Serial.println("LED3->>ON");
digitalWrite(LED4, LOW);
Serial.println("LED4->>ON");
lcd.setCursor(5, 0);
lcd.print("<<Dommy>>");
lcd.setCursor(4, 1);
lcd.print("LED1 is ON ");
lcd.setCursor(4, 2);
lcd.print("LED2 is OFF ");
lcd.setCursor(4, 1);
lcd.print("LED3 is ON ");
lcd.setCursor(4, 2);
lcd.print("LED4 is OFF ");
delay(550);
digitalWrite(LED, LOW);
Serial.println("LED->>OFF");
digitalWrite(LED2, HIGH);
Serial.println("LED2->>OFF");
digitalWrite(LED3, LOW);
Serial.println("LED3->>OFF");
digitalWrite(LED4, HIGH);
Serial.println("LED4->>OFF");
lcd.setCursor(4, 1);
lcd.print("LED1 is OFF ");
lcd.setCursor(4, 2);
lcd.print("LED2 is ON ");
lcd.setCursor(4, 1);
lcd.print("LED3 is OFF ");
lcd.setCursor(4, 2);
lcd.print("LED4 is ON ");
delay(550);
}
void LED_1 (){
lcd.setCursor(5, 0);
lcd.print("<<Dommy>>");
digitalWrite(LED, HIGH);
Serial.println("LED->>ON");
lcd.setCursor(4, 1);
lcd.print("LED1 is ON ");
delay(550);
digitalWrite(LED, LOW);
Serial.println("LED->>OFF");
lcd.setCursor(4, 1);
lcd.print("LED1 is OFF ");
delay(550);
}
void LED_2 (){
lcd.setCursor(5, 0);
lcd.print("<<Dommy>>");
digitalWrite(LED2, LOW);
Serial.println("LED2->>ON");
lcd.setCursor(4, 2);
lcd.print("LED2 is OFF ");
delay(550);
digitalWrite(LED2, HIGH);
Serial.println("LED2->>OFF");
lcd.setCursor(4, 2);
lcd.print("LED2 is ON ");
delay(550);
}
void LED_3 (){
lcd.setCursor(5, 0);
lcd.print("<<Dommy>>");
digitalWrite(LED3, HIGH);
Serial.println("LED3->>ON");
lcd.setCursor(4, 1);
lcd.print("LED3 is ON ");
delay(550);
digitalWrite(LED3, LOW);
Serial.println("LED3->>OFF");
lcd.setCursor(4, 1);
lcd.print("LED3 is OFF ");
delay(550);
}
void LED_4 (){
lcd.setCursor(5, 0);
lcd.print("<<Dommy>>");
digitalWrite(LED4, LOW);
Serial.println("LED4->>ON");
lcd.setCursor(4, 2);
lcd.print("LED4 is OFF ");
delay(550);
digitalWrite(LED4, HIGH);
Serial.println("LED4->>OFF");
lcd.setCursor(4, 2);
lcd.print("LED4 is ON ");
delay(550);
}
void Function_OFF (){
/////////////////////////
lcd.setCursor(5, 0);
lcd.print("<<Dommy>>");
digitalWrite(LED, LOW);
Serial.println("LED->>OFF");
lcd.setCursor(4, 1);
lcd.print("LED1 is OFF ");
digitalWrite(LED2, LOW);
Serial.println("LED2->>OFF");
lcd.setCursor(4, 2);
lcd.print("LED2 is OFF ");
digitalWrite(LED3, LOW);
Serial.println("LED3->>OFF");
lcd.setCursor(4, 1);
lcd.print("LED3 is OFF ");
digitalWrite(LED4, LOW);
Serial.println("LED4->>OFF");
lcd.setCursor(4, 2);
lcd.print("LED4 is OFF ");
/////////////////////////
}
void Servo_control (){
for (pos = 0; pos <= 180; pos += 1) {
servo.write(pos);
delay(10);
}
for (pos = 180; pos >= 0; pos -= 1) {
servo.write(pos);
delay(10);
}
}
void servo1_select(){
if (pos<180){
pos += 10;
servo.write(pos);
Serial.println(pos);
delay(10);
}
}
void servo2_unselect(){
if (pos>0){
pos -= 10;
servo.write(pos);
Serial.println(pos);
delay(10);
}
}