#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#define trucx A2
#define trucy A3
#define button1 7
#define button2 4
#define button3 2
Servo myservo[4];
int chanservo[4]={11,10,9,6};
int goc[4]={0,0,0,0};
unsigned long timetime=0;
void setup() {
lcd.init();
lcd.backlight();
pinMode(trucx, INPUT);
pinMode(trucy, INPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
//caub
for (int i=0;i<4;i++){
myservo[i].attach(chanservo[i]);
myservo[i].write(0);
}
}
//cau i
void loop() {
unsigned long time=millis();
if (digitalRead(button3)==LOW){
if(time-timetime >3000){
for(int i =0;i<4;i++){
myservo[i].write(0);
}
}
}else{
timetime=time;
}
//cau d e
int x=analogRead(trucx);
int y=analogRead(trucy);
if(x==1023){
goc[0]+=5;
goc[1]+=5;
myservo[0].write(goc[0]);
myservo[1].write(goc[1]);
}else if(x==0){
goc[0]-=5;
goc[1]-=5;
myservo[0].write(goc[0]);
myservo[1].write(goc[1]);
}
if(y==1023){
goc[2]+=5;
goc[3]+=5;
myservo[2].write(goc[2]);
myservo[3].write(goc[3]);
}else if(y==0){
goc[2]-=5;
goc[3]-=5;
myservo[2].write(goc[2]);
myservo[3].write(goc[3]);
}
for (int i=0;i<4; i++){
if (goc[i]<0){
goc[i]= 0;
}
if(goc[i]>180){
goc[i]=180;
}
}
//cau c
lcd.setCursor(0,0);
lcd.print("x:");
lcd.print(x);
lcd.print(" ");
lcd.print("y:");
lcd.print(y);
lcd.print(" ");
delay(50);
}