#include <Servo.h>
#include <LiquidCrystal_I2C.h>
const int BUTTON_PIN1 = 10;
const int BUTTON_PIN2 = 13;
const int BUTTON_PIN3 = 11;
const int BUTTON_PIN4 = 12;
const int BUTTON_PIN5 = 9;
LiquidCrystal_I2C s(0x27, 16, 2);
Servo m;
int lastButtonState1;
int lastButtonState2;
int lastButtonState3;
int lastButtonState4;
int lastButtonState5;
int currentButtonState1;
int currentButtonState2;
int currentButtonState3;
int currentButtonState4;
int currentButtonState5;
int led1 = 7;
int led2 = 6;
int led3 = 5;
int led4 = 4;
void setup() {
// put your setup code here, to run once:
pinMode(BUTTON_PIN1, INPUT_PULLUP);
pinMode(BUTTON_PIN2, INPUT_PULLUP);
pinMode(BUTTON_PIN3, INPUT_PULLUP);
pinMode(BUTTON_PIN4, INPUT_PULLUP);
pinMode(BUTTON_PIN5, INPUT_PULLUP);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
s.begin(16, 2);
m.attach(3);
m.write(0);
s.setCursor(0, 0);
s.print("Mode : Off");
s.setCursor(0, 1);
s.print("Angle : 0");
currentButtonState1 = digitalRead(BUTTON_PIN1);
currentButtonState2 = digitalRead(BUTTON_PIN2);
currentButtonState3 = digitalRead(BUTTON_PIN3);
currentButtonState4 = digitalRead(BUTTON_PIN4);
currentButtonState5 = digitalRead(BUTTON_PIN5);
}
void loop() {
// put your main code here, to run repeatedly:
lastButtonState1 = currentButtonState1;
currentButtonState1 = digitalRead(BUTTON_PIN1);
lastButtonState2 = currentButtonState2;
currentButtonState2 = digitalRead(BUTTON_PIN2);
lastButtonState3 = currentButtonState3;
currentButtonState3 = digitalRead(BUTTON_PIN3);
lastButtonState4 = currentButtonState4;
currentButtonState4 = digitalRead(BUTTON_PIN4);
lastButtonState5 = currentButtonState5;
currentButtonState5 = digitalRead(BUTTON_PIN5);
if(lastButtonState1 == HIGH && currentButtonState1 == LOW)
{
s.backlight();
s.clear();
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
m.write(0);
s.setCursor(0, 0);
s.print("Mode : 1");
s.setCursor(0, 1);
s.print("Angle : 0");
}
if(lastButtonState2 == HIGH && currentButtonState2 == LOW)
{
s.backlight();
s.clear();
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
m.write(60);
s.setCursor(0, 0);
s.print("Mode : 2");
s.setCursor(0, 1);
s.print("Angle : 60");
}
if(lastButtonState3 == HIGH && currentButtonState3 == LOW)
{
s.backlight();
s.clear();
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
m.write(120);
s.setCursor(0, 0);
s.print("Mode : 3");
s.setCursor(0, 1);
s.print("Angle : 120");
}
if(lastButtonState4 == HIGH && currentButtonState4 == LOW)
{
s.backlight();
s.clear();
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
m.write(180);
s.setCursor(0, 0);
s.print("Mode : 4");
s.setCursor(0, 1);
s.print("Angle : 180");
}
if(lastButtonState5 == HIGH && currentButtonState5 == LOW)
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
s.clear();
s.noBacklight();
s.setCursor(0, 0);
s.print("Mode : Off");
s.setCursor(0, 1);
s.print("Angle : 0");
m.write(0);
}
}