Arduino ile çizgi izleyen robot kodu nasıl yazılır?
Arduino ile Çizgi İzleyen Robot Kodu
Çizgi izleyen bir robot yapmak için gerekli bileşenler ve kod yapısı aşağıda verilmiştir.Gerekli Malzemeler
- Arduino kartı
- İki adet motor
- Motor sürücü (L298N önerilir)
- Çizgi izleme sensörleri (IR sensörleri)
- Pil
- Bağlantı kabloları
Bağlantı Şeması
- Motorlar, motor sürücüye bağlanır. - Motor sürücü, Arduino\'ya dijital pinler ile bağlanır. - IR sensörleri, Arduino\'daki analog veya dijital pinlere bağlanır.Örnek Kod
Aşağıda çizgi izleyen robot için örnek bir kod verilmiştir:
#define motorA_1 3
#define motorA_2 4
#define motorB_1 5
#define motorB_2 6
#define leftSensor A0
#define rightSensor A1
void setup() {
pinMode(motorA_1, OUTPUT);
pinMode(motorA_2, OUTPUT);
pinMode(motorB_1, OUTPUT);
pinMode(motorB_2, OUTPUT);
pinMode(leftSensor, INPUT);
pinMode(rightSensor, INPUT);
}
void loop() {
int leftState = digitalRead(leftSensor);
int rightState = digitalRead(rightSensor);
if (leftState == LOW && rightState == LOW) {
// İleri
forward();
}
else if (leftState == HIGH && rightState == LOW) {
// Sağa
turnRight();
}
else if (leftState == LOW && rightState == HIGH) {
// Sola
turnLeft();
}
else {
// Durdur
stop();
}
}
void forward() {
digitalWrite(motorA_1, HIGH);
digitalWrite(motorA_2, LOW);
digitalWrite(motorB_1, HIGH);
digitalWrite(motorB_2, LOW);
}
void turnRight() {
digitalWrite(motorA_1, HIGH);
digitalWrite(motorA_2, LOW);
digitalWrite(motorB_1, LOW);
digitalWrite(motorB_2, LOW);
}
void turnLeft() {
digitalWrite(motorA_1, LOW);
digitalWrite(motorA_2, LOW);
digitalWrite(motorB_1, HIGH);
digitalWrite(motorB_2, LOW);
}
void stop() {
digitalWrite(motorA_1, LOW);
digitalWrite(motorA_2, LOW);
digitalWrite(motorB_1, LOW);
digitalWrite(motorB_2, LOW);
}
Kod Açıklaması
- Motor hareketleri için pinler tanımlanır. - Sensörlerin durumu kontrol edilir. - Sensörlerden gelen verilere göre robotun yönü belirlenir. - İlgili fonksiyonlar ile motor hareket ettirilir. Bu kod, temel bir çizgi izleyen robot uygulaması içindir. Projeyi geliştirmek için algılama aralıklarını ve motor hızlarını ayarlayabilirsiniz.
Cevap yazmak için lütfen
.
Aynı kategoriden
- M.2 boyları (2230/2242/2280) ve soğutucu seçimi nasıl yapılır?
- Elektronik devrelerde kullanılan farklı direnç türlerinin avantajları ve dezavantajları nelerdir?
- Bluetooth 5.0 ile 5.3 arasında fark var mı?
- Harici SSD/HDD seçimi: USB 3.2 Gen1/Gen2 ve NVMe kasalar
- Breadboard nedir, nasıl kullanılır?
- Robot süpürge haritalama hatası nasıl giderilir?
- Uygulama izinleri ve gizlilik: kamera/mikrofon izni nasıl yönetilir?
- Telefon kamerasında sensör boyutu neden önemlidir?
- Arduino’da analog ve dijital pin farkı nedir?
- RAM artırmak gerçekten hız kazandırır mı?
- GPS modülü nedir, nasıl kullanılır?
- Powerbank kapasitesi nasıl hesaplanır, 10.000 mAh gerçekten ne kadar şarj eder?
- Modem/router kanal genişliği, DFS ve kanal seçimi nasıl yapılır?
- DC-DC dönüştürücü nedir?
- Gelişmiş yarı iletken teknolojilerinin elektronik devrelerin enerji verimliliği ve işlem hızına etkisi nasıl açıklanabilir?
- AC ve DC akım farkı nedir?
- Kol Saatlerindeki Quartz Ne Anlama Gelir?
- Psikolojide neden insanlar farklı duyguları aynı olaya farklı şekilde tepki vererek yaşarlar?
- TV kalibrasyonu: parlaklık, gamma ve renk sıcaklığı nasıl ayarlanır?
- OLED, AMOLED, IPS farkı nedir? PWM titreme ve göz konforu
