https://youtu.be/YbOozz1z0rg

ENGELDEN KAÇAN ROBOT KODU

const int IN1 = 2;
const int IN2 = 3;
const int IN3 = 4;
const int IN4 = 5;

const int enA = 10;
const int enB = 9;

int hiz = 255;

const int trig = 12;
const int echo = 11;

long sure;
int uzaklik;

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trig, 0);
  delayMicroseconds(10);
  digitalWrite(trig, 1);
  delayMicroseconds(10);

  sure = pulseIn(echo, 1);
  uzaklik = (0.0343 * sure) / 2;

  if (uzaklik < 30) {
    digitalWrite(IN1, 0);
    digitalWrite(IN2, 1);

    analogWrite(enA, hiz);
    analogWrite(enB, hiz);
  }
  else {
    digitalWrite(IN1, 1);
    digitalWrite(IN2, 0);
    digitalWrite(IN3, 1);
    digitalWrite(IN4, 0);
    analogWrite(enA, hiz);
    analogWrite(enB, hiz);
  }
}

Aşağıdaki kodda ENA ve ENB jumperları takılı kalır.

const byte IN1 = 5, IN2 = 6, IN3 = 9, IN4 = 10; // Motor sürücü yön pinleri (PWM pinleri.)
const byte echo = 11, trig = 12; // Ultrasonik sensör pinleri

byte hiz = 150; // PWM.
unsigned long sure;
int uzaklik;

void setup() {
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
}

void loop() {
  digitalWrite(trig, 0); // Darbe sinyali gönder.
  delayMicroseconds(10);
  digitalWrite(trig, 1);
  delayMicroseconds(10);

  sure = pulseInLong(echo, 1); // Gelen sinyalin HIGH'da kalma süresini oku.
  uzaklik = (0.0343 * sure) / 2; // Mesafeyi hesapla.

  if (uzaklik < 30) { // Uzaklık 30 cm'den yakınsa sola dön.
    analogWrite(IN1, 0);
    analogWrite(IN2, hiz);
    analogWrite(IN3, hiz);
    analogWrite(IN4, 0);
  }
  else { // Uzaklık 30 cm'den yakın değilse düz git.
    analogWrite(IN1, hiz);
    analogWrite(IN2, 0);
    analogWrite(IN3, hiz);
    analogWrite(IN4, 0);
  }
}

2 Responses

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dersler