Arduino Sensörlü Araç Yapımı
Güncelleme: 6.019 defa okundu
Konu: Arduino
İçindekiler
Arduino ile sensörlü engelden kaçan araba projesi Arduino başlangıç için güzel bir projedir.
Bu arabanın karşısına engel çıkarsa sensör tarafından algılanan engel Arduino kodları ile nesnelere çarpmadan gitmesini sağlayabiliriz.
Bunun için aşağıdaki malzemelere ihtiyaç vardır.
- 1 adet 2WD (2 tekerlekli) Robot Araç Kiti
- 1 adet L298N Motor Sürücü Kartı
- 1 adet Arduino Uno SMD Klon
- Arduino Kartı ile Bilgisayar arasında bağlantı için USB Kablo
- 1 adet HC-SR04 Ultrasonik Mesafe Sensörü
- Jumper Kabloları
Araç bağlantı devresi

Engelden kaçan sensörlü araç Arduino kodu:
Arduino
- #define echoPin 13 // Ultrasonik sensörün echo pini Arduino'nun 13. pin tanımı
- #define trigPin 12 // Ultrasonik sensörün trig pini Arduino'nun 12. pin tanımı
- #define MotorR1 6 // Sağ Motor pini tanımlıyoruz.
- #define MotorR2 7 // Sağ Motor pini tanımlıyoruz.
- #define MotorRE 9 // Sağ Motor hız pini tanımlıyoruz.
- #define MotorL1 5 // Sol Motor pini tanımlıyoruz.
- #define MotorL2 4 // Sol Motor pini tanımlıyoruz.
- #define MotorLE 3 // Sol Motor hız pini tanımlıyoruz.
- long sure, uzaklik; //süre ve uzaklık değişkenleri tanımlıyoruz.
- void setup() {
- pinMode(echoPin, INPUT); // bu dalgaları Echo pini ile geri aldığı için INPUT (Giriş) olarak tanımlanır.
- pinMode(trigPin, OUTPUT);// ultrasonik sensör Trig pininden ses dalgaları gönderdiği için OUTPUT (Çıkış),
- pinMode(MotorL1, OUTPUT); //Motorlarımızı çıkış olarak tanımlıyoruz.
- pinMode(MotorL2, OUTPUT);
- pinMode(MotorLE, OUTPUT);
- 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 için komut
- 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 cmden küçük ise,
- {
- geri(); // 150 milisaniye geri git
- delay(150);
- sag(); // 250 milisaniye sağa dön
- delay(250);
- }
- else {
- ileri(); // değilse 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
- }
Sensörlü Araç Videosu
Teşekkürler, geri bildiriminiz alındı.