dominoFiber     domiRobot     Blog

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

Gönderen Konu: Çizgi izleyen robot  (Okunma sayısı 637 defa)

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Mayıs 21, 2018, 12:06:10 ÖS
Çevrimdışı Hasan ERTURK
*****
İleti: 99
Profili Görüntüle 
Projede basit anlamda nasıl çizgi izleyen yapılır onu göreceğiz. Sensör ile algıladığımız çizgiyi motorlar yardımı ile araca yön vererek çizgi  takibini sağlayacağız. Arduino ile programlamaya yeni başlayanlar için basit ve yapılması önerilen bir projedir. Gerekli malzemeleri aldıktan sonra projemize başlayabiliriz.

Seviye:
Orta seviye

Malzeme listesi:


Şema 1: Çizgi izleyen robot fritzing devre şeması

Arduino kodu:
Kod: [Seç]
#define SensorSol 4
#define SensorOrta 3  //  Sensör sayısı arttırılabilir,Arttırmak daha iyi ve hızlı bir çizgi izleyene sahip olmanızı sağlar
#define SensorSag 2

#define MotorSag1 12
#define MotorSag2 11
#define MotorSagE 10

#define MotorSol1 8
#define MotorSol2 7
#define MotorSolE 6

int git=250;       // Motor hızları buradan değiştirilebilir.
int dur=0;
int yavas=100;    // Sensör sayısı arttırlırsa kullanılabilir

void setup()
{
Serial.begin(9600);
 
  pinMode(SensorSol, INPUT);
  pinMode(SensorOrta, INPUT);
  pinMode(SensorSag, INPUT);
  pinMode(MotorSag1, OUTPUT);
  pinMode(MotorSag2, OUTPUT);
  pinMode(MotorSagE, OUTPUT);
  pinMode(MotorSol1, OUTPUT);
  pinMode(MotorSol2, OUTPUT);
  pinMode(MotorSolE,OUTPUT);

}

void loop()

{
                   
                         //Eğer orta sensör görüyorsa 2 motorda çalışsın
  if(digitalRead(SensorSol) == 0 && digitalRead(SensorOrta) == 1 && digitalRead(SensorSag) == 0)
 
  { 
  digitalWrite(MotorSag1, HIGH);
  digitalWrite(MotorSag2, LOW);
  analogWrite(MotorSagE, git);

  digitalWrite(MotorSol1, HIGH);
  digitalWrite(MotorSol2, LOW);
  analogWrite(MotorSolE, git);

  Serial.println("Düz gidiyor"); // test amaçlı
 
  }
                       //Eğer sag sensör görüyorsa sol motor çalışsın ve sağ motor dursun,böylece araç sağa dönsün
  if(digitalRead(SensorSol) == 0 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag) == 1)
 
  { 
  digitalWrite(MotorSag1, HIGH);
  digitalWrite(MotorSag2, LOW);
  analogWrite(MotorSagE, dur);

  digitalWrite(MotorSol1, HIGH);
  digitalWrite(MotorSol2, LOW);
  analogWrite(MotorSolE, git);

  Serial.println("Sağa dönüyor"); //test amaçlı
 
  }
                        //Eğer sol sensör görüyorsa sağ motor çalışsın ve sol motor dursun,böylece araç sola dönsün
  if(digitalRead(SensorSol) == 1 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag) == 0)
 
  { 
  digitalWrite(MotorSag1, HIGH);
  digitalWrite(MotorSag2, LOW);
  analogWrite(MotorSagE, git);
 
  digitalWrite(MotorSag1, HIGH);
  digitalWrite(MotorSag2, LOW);
  analogWrite(MotorSagE, dur);

  Serial.println("Sola dönüyor"); // test amaçlı
  }

                                     // EGER 5 sensör kullanılsaydı söyle yapılabilirdi

                                   // sol1 numaralı sensör görürse sağ motor çalışsın ,Sol motor yavaş çalışsın
   // if(digitalRead(SensorSol2) == 0 && digitalRead(SensorSol) == 1 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag1) == 0 && digitalRead(SensorSag2) == 0)
 
 // { 
 // digitalWrite(MotorSag1, HIGH);
 // digitalWrite(MotorSag2, LOW);
 // analogWrite(MotorSagE, git);
 
 // digitalWrite(MotorSag1, HIGH);
 // digitalWrite(MotorSag2, LOW);
 // analogWrite(MotorSagE, yavas);
 // }
 
}
« Son Düzenleme: Mayıs 21, 2018, 12:16:49 ÖS Gönderen: Hasan ERTURK »