Arduino ile elektronik ve kodlama dünyasına adım atmak, bazen zorlayıcı gibi görünse de aslında oldukça eğlenceli ve öğretici bir süreçtir. Bu yazıda, Arduino Uno, bir servo motor ve ultrasonik sensör kullanarak kendi basit radar sisteminizi nasıl kuracağınızı anlatacağız. Bu proje sayesinde hem temel elektronik bağlantılarını hem de Arduino kodlama mantığını pekiştireceksin.
Bu projeyi hayata geçirmek için ihtiyacın olan tüm malzemeler aşağıda listelenmiştir. Malzemelerin çoğu elektronik hobi kitlerinde kolayca bulunabilir.
Devre bağlantılarını yapmak projenin en önemli adımlarından biridir. Aşağıdaki adımları dikkatle takip ederek bağlantıları kolayca tamamlayabilirsin.
Tüm bağlantıları tamamladıktan sonra, ultrasonik sensörü küçük bir bant veya vida yardımıyla servo motorun üzerine sabitleyebilirsin. Bu, sensörün servo ile birlikte hareket etmesini sağlayacaktır.
Devre bağlantılarını bitirdikten sonra sıra projenin beynini oluşturan koda geldi. Arduino IDE'yi aç ve aşağıdaki kodları kopyalayıp yapıştır. Kod, servo motoru 0 ile 180 derece arasında hareket ettirirken, ultrasonik sensörden gelen mesafeyi ölçer.
C++
#include <Servo.h>
// Ultrasonik sensör ve servo motor pinlerini tanımlıyoruz
const int trigPin = 9;
const int echoPin = 10;
const int servoPin = 3;
// Servo motor nesnesi oluşturuyoruz
Servo myServo;
long duration;
int distance;
void setup() {
// Servo motoru belirtilen pine bağlıyoruz
myServo.attach(servoPin);
// Ultrasonik sensör pinlerini giriş ve çıkış olarak ayarlıyoruz
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Seri iletişimi başlatıyoruz, böylece mesafeyi görebiliriz
Serial.begin(9600);
}
void loop() {
// Servo motoru 0'dan 180 dereceye doğru hareket ettiriyoruz
for (int pos = 0; pos <= 180; pos += 2) {
myServo.write(pos);
delay(30);
distance = getDistance();
Serial.print("Açı: ");
Serial.print(pos);
Serial.print("° | Mesafe: ");
Serial.print(distance);
Serial.println(" cm");
// Eğer 20 cm'den yakın bir engel varsa uyarı ver
if (distance > 0 && distance < 20) {
Serial.println(">>> Engel algılandı! <<<");
}
}
// Servo motoru 180'den 0 dereceye doğru geri hareket ettiriyoruz
for (int pos = 180; pos >= 0; pos -= 2) {
myServo.write(pos);
delay(30);
distance = getDistance();
Serial.print("Açı: ");
Serial.print(pos);
Serial.print("° | Mesafe: ");
Serial.print(distance);
Serial.println(" cm");
if (distance > 0 && distance < 20) {
Serial.println(">>> Engel algılandı! <<<");
}
}
}
// Mesafe ölçümü yapan fonksiyon
int getDistance() {
// Trig pinine kısa bir sinyal gönderiyoruz
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Echo pininden gelen sinyalin süresini ölçüyoruz
duration = pulseIn(echoPin, HIGH);
// Süreyi mesafeye çeviriyoruz (cm cinsinden)
// Ses hızı ~0.034 cm/mikrosaniye'dir
int dist = duration * 0.034 / 2;
return dist;
}
Kodları Arduino'ya yükledikten sonra Seri Monitör'ü açtığınızda, servo motorun dönmeye başladığını ve her açı için mesafenin ekrana yazdırıldığını göreceksin. Eğer 20 cm'den daha yakın bir nesne algılanırsa, ekranda "Engel algılandı!" uyarısı belirecektir.
Bu basit projenin üzerine farklı özellikler ekleyerek onu daha işlevsel hale getirebilirsin:
Bu proje, Arduino dünyasına giriş yapmak için harika bir başlangıç noktası. Kendi fikirlerini ekleyerek onu kişiselleştirmekten çekinme! Unutma, en iyi projeler merak ve deneme yanılma ile ortaya çıkar.