#include <Servo.h> // Servo kütüphanesini ekledik


Servo horizontal; // yatay hareket motoru

int servoh = 90; // yatay limit


Servo vertical; // dikey hareket motoru

int servov = 90; // dikey limit


// LDR pinlerini belirliyoruz

int ldrlt = 0; //LDR sol üst ldr

int ldrrt = 1; //LDR sağ üst ldr

int ldrld = 2; //LDR sol alt ldr

int ldrrd = 3; //LDR sağ alt ldr


void setup()

{

Serial.begin(9600);

// servo connections

// name.attacht(pin);

horizontal.attach(9);

vertical.attach(10);

}


void loop()

{

int lt = analogRead(ldrlt); // üst sol ldr okuma

int rt = analogRead(ldrrt); // üst sağ ldr okuma

int ld = analogRead(ldrld); // alt sol ldr okuma

int rd = analogRead(ldrrd); // alt sağ ldr okuma


int dtime = analogRead(4)/20; // pot ayarları

int tol = analogRead(5)/4;// tolerans belirliyoruz


int avt = (lt + rt) / 2; // üst ldr değerleri ortalaması

int avd = (ld + rd) / 2; // alt ldr değerler ortalaması

int avl = (lt + ld) / 2; // sol ldr değerler ortalaması

int avr = (rt + rd) / 2; // sağ ldr değerler ortalaması


int dvert = avt - avd; // üst ve alt ldr değerleri farkı

int dhoriz = avl - avr;// sol ve sağ ldr değerleri farkı


if (-1*tol > dvert || dvert > tol) // dikey hareket için tolerans değerleri ile karşılaştırma

{

if (avt > avd)//üst tarafa alt taraftan daha fazla ışık geliyorsa

{

servov = ++servov;// yukarı hareket sağla

if (servov > 180)

{

servov = 180;

}

}

else if (avt < avd)//alt tarafa üst taraftan daha fazla ışık geliyorsa

{

servov= --servov;// aşağı hareket sağla

if (servov < 0)

{

servov = 0;

}

}

vertical.write(servov);

}


if (-1*tol > dhoriz || dhoriz > tol) // yatay hareket için tolerans değerleri kontrolü

{

if (avl > avr)//sol tarafta ışık daha fazla ise

{

servoh = --servoh;//sola hareket sağla

if (servoh < 0)

{

servoh = 0;

}

}

else if (avl < avr)// sağ tarafta ışık daha fazla ise

{

servoh = ++servoh;//sağa hareketi sağla

if (servoh > 180)

{

servoh = 180;

}

}

else if (avl == avr)//ışık şiddetli eşit ise sabit kal

{

// nothing

}

horizontal.write(servoh);

}

delay(dtime);

}

0 yorum:

Yorum Gönder