Engelden kaçan robot,diğer adıyla engel algılayan robot, otonom olarak çevre kontrolü yapabilen ve hareketini önleyebilecek cisimleri atlatabilen robot tipidir. Çevre kontrolünü sağlayabilmesi için ultrasonik, kızılötesi vb. gibi çeşitli sensörlere ihtiyaç duyar.


const int solileri = 7;
const int solgeri = 6;
const int sagileri = 4;
const int saggeri = 5;
const int solHiz = 9; // Pwn pini hız ayarı için Jumperları sökünce
const int sagHiz = 3; // Pwn pini hız ayarı için Jumperları sökünce
const int echoPin = 12; //Ultrasonik sensörün echo pini Arduino'nun 12.pinine
const int trigPin = 13; //Ultrasonik sensörün trig pini Arduino'nun 13.pinine tanımlandı.
void setup() {
pinMode(solileri, OUTPUT);
pinMode(solgeri, OUTPUT);
pinMode(sagileri, OUTPUT);
pinMode(saggeri, OUTPUT);
pinMode(solHiz, OUTPUT);
pinMode(sagHiz, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW); //sensör pasif hale getirildi
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); //Sensore ses dalgasının üretmesi için emir verildi
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi
int sure = pulseIn(echoPin, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor
int uzaklik = sure / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor
Serial.println(uzaklik);
if (uzaklik < 10) {
geri();
delay(1500);
sag();
delay(1000);
}
else {
ileri();
}
}
void ileri() {
// Araba İleri Gidiyor...
digitalWrite(solileri, HIGH); // Sol İleri
digitalWrite(solgeri, LOW);
analogWrite(solHiz, 250);
digitalWrite(sagileri, HIGH); // Sağ İleri
digitalWrite(saggeri, LOW);
analogWrite(sagHiz, 250);
}
void geri() {
// Araba Geri Gidiyor...
digitalWrite(solileri, LOW); // Sol İleri
digitalWrite(solgeri, HIGH);
analogWrite(solHiz, 250);
digitalWrite(sagileri, LOW); // Sağ İleri
digitalWrite(saggeri, HIGH);
analogWrite(sagHiz, 250);
}
void sag() {
// Araba Sağa Gidiyor...
digitalWrite(solileri,HIGH);
digitalWrite(solgeri, LOW);
analogWrite(solHiz, 250);
digitalWrite(sagileri, HIGH);
digitalWrite(saggeri, LOW);
analogWrite(sagHiz, 0);
}
void sol() {
// Araba Sola Gidiyor...
digitalWrite(solileri, HIGH);
digitalWrite(solgeri, LOW);
analogWrite(solHiz, 0);
digitalWrite(sagileri, HIGH);
digitalWrite(saggeri, LOW);
analogWrite(sagHiz, 250);
}
Yazar hakkında