//motor pinleri
#define MotorL1 9
#define MotorL2 10
#define MotorLE 6
#define MotorR1 7
#define MotorR2 8
#define MotorRE 5
//alıcıdan arduinoya aldığımız kanallar
const int ch1=A1;
const int ch2=A2;
const int ch6=A4;
//gerekli değişkenleri tanımladık
int leddeger;
int ilerideger, motorileri, motorgeri;
int donusdeger, motorsag, motorsol;
void setup()
{
Serial.begin(9600);
//kanalları tanımladık
pinMode(ch1,INPUT);
pinMode(ch2,INPUT);
pinMode(ch6,INPUT);
pinMode(2,OUTPUT);
}
void loop()
{
//değerleri pulsein komutu ile okuyup değişkenlere atadık
leddeger = pulseIn (ch6,HIGH);
donusdeger = pulseIn (ch1,HIGH);
ilerideger = pulseIn (ch2,HIGH);
motorileri=map(ilerideger,1920,1080,0,255);
motorgeri=map(ilerideger,1080,1920,0,255);
motorsag=map(donusdeger,1080,1920,0,255);
motorsol=map(donusdeger,1920,1080,0,255);
if (leddeger > 1300) {digitalWrite(2,HIGH);}
else digitalWrite(2,LOW);
if (ilerideger > 1550){ geri(motorgeri);}
else if (ilerideger < 1450){ ileri(motorileri);}
else if (donusdeger < 1450) {yerindesol(motorsol);}
else if (donusdeger > 1550) {yerindesag(motorsag);}
else dur();
}
void ileri(int ilerigeri){ // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.
digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
analogWrite(MotorRE, ilerigeri); // Sağ motorun hızı
}
void geri(int ilerigeri){ // Robotun geri hareketi için fonksiyon tanımlıyoruz.
digitalWrite(MotorR1, LOW); // Sağ motorun ileri hareketi pasif
digitalWrite(MotorR2, HIGH); // Sağ motorun geri hareketi aktif
analogWrite(MotorRE, ilerigeri); // Sağ motorun hızı
}
void yerindesag(int sag){ // Robotun yerinde sağa dönme hareketi için fonksiyon tanımlıyoruz.
digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, HIGH); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, sag); // Sol motorun hızı
}
void yerindesol(int sol){ // Robotun yerinde sola dönme hareketi için fonksiyon tanımlıyoruz.
digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi pasif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi aktif
analogWrite(MotorLE, sol); // Sol motorun hızı
}
void dur(){ // Robotun durma hareketi için fonksiyon tanımlıyoruz.
digitalWrite(MotorR1, HIGH);
digitalWrite(MotorR2, LOW);
digitalWrite(MotorRE, LOW);
digitalWrite(MotorL1, HIGH);
digitalWrite(MotorL2, LOW);
digitalWrite(MotorLE, LOW);
}