#include <Servo.h>
#include <LiquidCrystal_I2C.h>
// switch-הגדרת כניסת ה
int slide_switch = 51;
int servoVal_X;
int servoVal_Y;
//LCD-הגדרת ה
LiquidCrystal_I2C lcd(0x27, 16, 2);
//joystick-הגדרת ה
int joyX = 12;
int joyY = 13;
//
Servo servoY;
Servo servoX;
int serY=0;
int serX=0;
//הגדרת החיישני האור
int ldr_MU = A8;
int ldr_MD = A9;
int ldr_L = A10;
int ldr_R = A11;
void setup()
{
servoY.attach(2);
servoX.attach(3);
lcd.init();
lcd.backlight();
pinMode(ldr_MU,INPUT);
pinMode(ldr_MD,INPUT);
pinMode(ldr_L,INPUT);
pinMode(ldr_R,INPUT);
pinMode(slide_switch,INPUT_PULLUP);
}
void loop()
{
if (digitalRead(slide_switch))
{
int MU_Status = analogRead(ldr_MU);
int MD_Status = analogRead(ldr_MD);
int L_Status = analogRead(ldr_L);
int R_Status = analogRead(ldr_R);
// מצב אוטומטי
if (MU_Status - MD_Status > 100)
{
if(serY<180)
{
serY++;
delay(10);
}
}
else if (MU_Status - MD_Status < -100)
{
if(serY>0)
{
serY--;
delay(10);
}
}
servoY.write(serY);
if (R_Status - L_Status > 100)
{
if(serX<180)
{
serX++;
delay(10);
}
}
else if (R_Status - L_Status < -100)
{
if(serX>0)
{
serX--;
delay(10);
}
}
servoX.write(serX);
}
//מצב ידני
else
{
servoVal_X = analogRead(joyX);
servoVal_Y = analogRead(joyY);
//
if (servoVal_X > 700)
{
if(serX<180)
{
serX++;
delay(10);
}
}
else if (servoVal_X < 300)
{
if(serX>0)
{
serX--;
delay(10);
}
}
servoX.write(serX);
{
if (servoVal_Y > 700)
{
if(serY<180)
{
serY++;
delay(10);
}
}
else if (servoVal_Y < 300)
{
if(serY>0)
{
serY--;
delay(10);
}
}
servoY.write(serY);
}
}
lcd.setCursor(0,0);
lcd.print("servo X " + String(serX) );
delay(10);
lcd.setCursor(0,1);
lcd.print("servo Y " + String(serY) );
delay(10);
}