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

🎁 İlk alışverişe özel %10 indirim — kod: ATOLYE10

💳 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 Kitap Yöneticisi'nden "IRremote" kütüphanesini kurun. Kumanda tuş kodlarını Seri Monitör'den okuyup KOD_* satırlarını güncelleyin.

// 3'ü 1 Arada Robot - Bluetooth + IR + Engelden Kaçma
// Atölye Elektronik
#include <IRremote.h>
#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

#define KOD_ILERI 0xFF18E7
#define KOD_GERI  0xFF4AB5
#define KOD_SOL   0xFF10EF
#define KOD_SAG   0xFF5AA5
#define KOD_DUR   0xFF38C7   // OK tusu: otonom ac/kapat

IRrecv irrecv(IR_PIN);
decode_results results;
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);
  irrecv.enableIRIn();
  kafa.attach(SERVO_PIN); kafa.write(90);
  dur();
}

void loop() {
  if (Serial.available()) komut(Serial.read());
  if (irrecv.decode(&results)) {
    switch (results.value) {
      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:   otonom = !otonom; dur();  break;
    }
    irrecv.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ı

  • HC-06 D0/D1'e bağlıyken kod yüklenmez — önce kabloları çıkarın, yükleyin, sonra takı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.