Soru: 2 ayaklı bir robotu yürüten ardunio kodunu verir misiniz? ( Not: her adımda 30 derece ilerlemeli ve GND ile 5V pininin istediğiniz yere bağlayıp belirtirseniz sevinirim) *****!"""""100 puanlık"""""!*****

Cevaplar 1

Cevap:

#define echoPin 12 //Ultrasonik sensörün echo pini Arduino'nun 12.pinine

#define trigPin 13 //Ultrasonik sensörün trig pini Arduino'nun 13.pinine tanımlandı.

#define MotorR1 7

#define MotorR2 6

#define MotorRE 9  // Motor pinlerini tanımlıyoruz.

#define MotorL1 5

#define MotorL2 4

#define MotorLE 3

long sure, uzaklik; //süre ve uzaklık diye iki değişken tanımlıyoruz.

void setup() {

 // ultrasonik sensör Trig pininden ses dalgaları gönderdiği için OUTPUT (Çıkış),

 // bu dalgaları Echo pini ile geri aldığı için INPUT (Giriş) olarak tanımlanır.

 pinMode(echoPin, INPUT);

 pinMode(trigPin, OUTPUT);

 pinMode(MotorL1, OUTPUT);

 pinMode(MotorL2, OUTPUT);

 pinMode(MotorLE, OUTPUT); //Motorlarımızı çıkış olarak tanımlıyoruz.

 pinMode(MotorR1, OUTPUT);

 pinMode(MotorR2, OUTPUT);

 pinMode(MotorRE, 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

 sure = pulseIn(echoPin, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor

 uzaklik = sure / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor

 Serial.println(uzaklik);

 if (uzaklik < 15) // Uzaklık 15'den küçük ise,

 {

   geri();  // 150 ms geri git

   delay(150);

   sag();  // 250 ms sağa dön

   delay(250);

 }

 else {  // değil ise,

   ileri(); // ileri git

 }

}

void ileri(){  // 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, 150); // Sağ motorun hızı 150

 digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif

 digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif

 analogWrite(MotorLE, 150); // Sol motorun hızı 150

 

 

}

void sag(){ // Robotun sağa dönme 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, 0); // Sağ motorun hızı 0 (Motor duruyor)

 digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif

 digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif

 analogWrite(MotorLE, 150); // Sol motorun hızı 150

 

 

}

void geri(){ // Robotun geri yönde 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, 150); // Sağ motorun hızı 150

 digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif

 digitalWrite(MotorL2, HIGH); // Sol motorun geri hareketi aktif

 analogWrite(MotorLE, 150); // Sol motorun hızı 150

 

}



Cevabı biliyor musunuz? Buraya ekleyin!

Cevabı bulamıyor musunuz?

Google ile giriş yap

veya

Şifrenizi mi unuttunuz?

Hesabım yok ve şunu yapmak istiyorum: Kayıt ol

Bir dil veya bölge seçin
How much to ban the user?
1 hour 1 day 100 years