1.200 TL üzeri kargo bedava — 15:00'a kadar verilen siparişler aynı gün kargoda !

🎁 İlk alışverişe özel %5 indirim — kod: ATOLYE5

💳 Havale/EFT ve Kredi Kartı ile güvenle ödeme yapabilirsiniz

🔗 Linkle Ödeme ile de ödeme yapabilirsiniz — PayTR güvenli ödeme sayfası

3'ü 1 Arada Robot Kiti: Bluetooth, Kumanda ve Engelden Kaçma Tek Kodda

23.08.2026

3'ü 1 Arada Robot Kiti bağlantı şeması

3'ü 1 Arada Çok Fonksiyonlu Robot Araba Kiti, aynı şasi üzerinde üç projeyi birleştirir: Bluetooth ile telefondan kontrol, IR kumandayla kontrol ve ultrasonik sensörle engelden kaçma. Bu yazıda tek bağlantı şeması ve üç modu da içeren tek bir kod paylaşıyoruz.

Bağlantı Şeması

L298N: IN1→D5, IN2→D6, IN3→D9, IN4→D10. HC-06: TXD→D0, RXD→D1 (kod yüklerken çıkarın). IR alıcı OUT→D11. HC-SR04: TRIG→A0, ECHO→A1. Servo sinyal→D3. Modüller Arduino 5V'tan, Arduino pilden VIN ile beslenir; GND'ler ortak.

Standart set (4'lü AA pil kutusu, 6V):

3'ü 1 Arada Robot Araba Kiti bağlantı şeması - 4xAA

18650 pil yuvalı set (2x18650, 7,4V):

3'ü 1 Arada Robot Araba Kiti bağlantı şeması - 18650

Mod Seçimi Nasıl Çalışır?

  • Telefon (Bluetooth): F/B/L/R/S karakterleri robotu sürer; A karakteri otonom modu açar, M kapatır.
  • Kumanda (IR): yön tuşları robotu sürer; OK tuşu otonom modu açar/kapatır.
  • Otonom: HC-SR04 ile mesafe ölçülür, engel görününce servo sağa-sola bakıp boş tarafa döner.

Arduino Kodu

Önce Arduino IDE'de Kütüphane Yöneticisi'nden "IRremote" kütüphanesini kurun (kod, kütüphanenin güncel 4.x sürümüne göre yazıldı). Tuş kodları kitteki 17 tuşlu kumandaya göredir; farklı bir kumanda kullanıyorsanız Seri Monitör'de (9600 baud) görünen "IR komut" değerlerini KOD_* satırlarına yazın.

// 3'ü 1 Arada Robot - Bluetooth + IR + Engelden Kaçma
// Atölye Elektronik - IRremote 4.x sürümü için
#include <IRremote.hpp>
#include <Servo.h>

#define IN1 5
#define IN2 6
#define IN3 9
#define IN4 10
#define IR_PIN 11
#define TRIG A0
#define ECHO A1
#define SERVO_PIN 3

// Kitteki 17 tuşlu kumandanın komut kodları
#define KOD_ILERI 0x18   // yukarı ok
#define KOD_GERI  0x52   // aşağı ok
#define KOD_SOL   0x08   // sol ok
#define KOD_SAG   0x5A   // sağ ok
#define KOD_DUR   0x1C   // OK tuşu: otonom aç/kapat

Servo kafa;
bool otonom = false;

void ileri() { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); }
void geri()  { digitalWrite(IN1,LOW);  digitalWrite(IN2,HIGH); digitalWrite(IN3,LOW);  digitalWrite(IN4,HIGH); }
void sola()  { digitalWrite(IN1,LOW);  digitalWrite(IN2,HIGH); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); }
void saga()  { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW);  digitalWrite(IN3,LOW);  digitalWrite(IN4,HIGH); }
void dur()   { digitalWrite(IN1,LOW);  digitalWrite(IN2,LOW);  digitalWrite(IN3,LOW);  digitalWrite(IN4,LOW); }

long mesafe() {
  digitalWrite(TRIG, LOW); delayMicroseconds(2);
  digitalWrite(TRIG, HIGH); delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  long sure = pulseIn(ECHO, HIGH, 30000);
  return sure == 0 ? 400 : sure * 0.034 / 2;
}

void komut(char c) {
  switch (c) {
    case 'F': ileri(); break;
    case 'B': geri(); break;
    case 'L': sola(); break;
    case 'R': saga(); break;
    case 'S': dur(); break;
    case 'A': otonom = true; break;
    case 'M': otonom = false; dur(); break;
  }
}

void setup() {
  Serial.begin(9600);
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
  pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT);
  IrReceiver.begin(IR_PIN, ENABLE_LED_FEEDBACK);
  kafa.attach(SERVO_PIN); kafa.write(90);
  dur();
}

void loop() {
  if (Serial.available()) komut(Serial.read());

  if (IrReceiver.decode()) {
    uint8_t kod = IrReceiver.decodedIRData.command;
    // Tuşu basılı tutunca gelen tekrar sinyalinde OK tuşu modu tekrar değiştirmesin
    bool tekrar = IrReceiver.decodedIRData.flags & IRDATA_FLAGS_IS_REPEAT;
    Serial.print("IR komut: 0x");
    Serial.println(kod, HEX);
    switch (kod) {
      case KOD_ILERI: otonom = false; ileri(); break;
      case KOD_GERI:  otonom = false; geri();  break;
      case KOD_SOL:   otonom = false; sola();  break;
      case KOD_SAG:   otonom = false; saga();  break;
      case KOD_DUR:   if (!tekrar) { otonom = !otonom; dur(); } break;
    }
    IrReceiver.resume();
  }

  if (otonom) {
    if (mesafe() > 25) { ileri(); return; }
    dur(); delay(150); geri(); delay(300); dur();
    kafa.write(150); delay(350); long sol = mesafe();
    kafa.write(30);  delay(350); long sag = mesafe();
    kafa.write(90);  delay(250);
    if (sol > sag) sola(); else saga();
    delay(400); dur();
  }
}

İpuçları ve Sorun Giderme

  • HC-06 D0/D1'e bağlıyken kod yüklenmez — önce kabloları çıkarın, yükleyin, sonra takın.
  • Derlerken "decode_results" veya "IRrecv" hatası: Yazının eski kodunu kullanıyorsunuz; yukarıdaki güncel kodu yükleyin.
  • Kumanda tepki vermiyor: Seri Monitör'de "IR komut" satırı görünmüyorsa IR alıcı bağlantısını (OUT→D11, VCC→5V) kontrol edin; görünüyor ama robot hareket etmiyorsa görünen değerleri KOD_* satırlarına yazın.
  • IR alıcı doğrudan güneş ışığında yanıltıcı sinyal alabilir; iç mekanda deneyin.
  • Motor ters dönerse ilgili OUT uçlarını yer değiştirin.

Kitin içinde 2WD gövde, Arduino Uno, L298N, HC-06, IR kumanda seti, HC-SR04, SG90 servo, pil yuvası ve jumper kablolar dahil. Satın almak için 3'ü 1 Arada Robot Araba Kiti veya 18650 Pil Yuvalı versiyonu sayfasına göz atın.