</> Make for Iran – بسازیم برای ایران

پروژه‌ها، آموزش‌ها و ابزارها برای سازندگان و علاقه‌مندان الکترونیک

  • خانه
  • الکترونیک
  • پرینت سه‌بعدی
  • حکاکی و برش لیزری
  • ابزار کارگاهی
  • پهپاد
  • ربات زمینی UGV
  • ربات پرنده UAV
  • صنایع دستی
  • آموزش
  • پروژه‌ها
  • درباره ما
خانه›آموزش›پلتفرم UGV چوبی — بخش ۲: سیم‌کشی L298N، کد آردوینو و کنترل RC (فارسی)
آموزش ربات‌های زمینی (UGV)

پلتفرم UGV چوبی — بخش ۲: سیم‌کشی L298N، کد آردوینو و کنترل RC (فارسی)

​ ژوئن 12, 2026 2 دقیقه مطالعه
سیم‌کشی UGV L298N Arduino
📌 بخش ۱/۲: مکانیک و شاسی ✅  |  بخش ۲/۲ (همین): الکترونیک، کد و کنترل RC

L298N چطور کار می‌کند؟

L298N یک تراشه H-Bridge دوتایی است — می‌تواند دو موتور DC را به طور مستقل در دو جهت کنترل کند. برای هر موتور دو پایه جهت (IN1/IN2 و IN3/IN4) و یک پایه PWM سرعت (ENA/ENB) دارد. با یک آردوینو Uno می‌توان هر دو موتور را با ۵ پایه کنترل کرد.

سیم‌کشی L298N به Arduino Uno

L298N Arduino توضیح
IN1 D7 جهت موتور چپ A
IN2 D8 جهت موتور چپ B
ENA D9 (PWM) سرعت موتور چپ
IN3 D5 جهت موتور راست A
IN4 D6 جهت موتور راست B
ENB D10 (PWM) سرعت موتور راست
12V باتری + برق موتور
5V out Arduino 5V برق آردوینو از L298N
GND GND + باتری – زمین مشترک

کد کامل Differential Drive

// ===== تعریف پین‌ها =====
#define IN1 7
#define IN2 8
#define ENA 9
#define IN3 5
#define IN4 6
#define ENB 10

void setup(){
  pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(ENA,OUTPUT);
  pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); pinMode(ENB,OUTPUT);
  Serial.begin(9600);
}

// تابع حرکت: leftSpeed و rightSpeed از -255 تا 255
void drive(int L, int R){
  digitalWrite(IN1, L>=0 ? HIGH:LOW);
  digitalWrite(IN2, L>=0 ? LOW:HIGH);
  analogWrite(ENA, abs(constrain(L,-255,255)));
  digitalWrite(IN3, R>=0 ? HIGH:LOW);
  digitalWrite(IN4, R>=0 ? LOW:HIGH);
  analogWrite(ENB, abs(constrain(R,-255,255)));
}

void loop(){
  if(Serial.available()){
    char cmd = Serial.read();
    if(cmd=='F') drive(200,200);       // جلو
    else if(cmd=='B') drive(-200,-200); // عقب
    else if(cmd=='L') drive(-150,150);  // چرخش چپ
    else if(cmd=='R') drive(150,-150);  // چرخش راست
    else if(cmd=='S') drive(0,0);       // توقف
  }
}

افزودن کنترل NRF24L01

// کتابخانه: RF24 by TMRh20
#include <SPI.h>
#include <RF24.h>
RF24 radio(7, 8); // CE=7, CSN=8
const byte addr[6] = "00001";
struct Ctrl { int throttle; int steer; };

void setup(){
  radio.begin();
  radio.openReadingPipe(0, addr);
  radio.startListening();
}

void loop(){
  if(radio.available()){
    Ctrl c;
    radio.read(&c, sizeof(c));
    // c.throttle: -100 تا 100، c.steer: -100 تا 100
    int L = c.throttle + c.steer;
    int R = c.throttle - c.steer;
    drive(map(L,-200,200,-255,255), map(R,-200,200,-255,255));
  }
}

چک‌لیست

تست نتیجه ✓
Serial ‘F’ → هر دو چرخ جلو می‌روند اگر یکی برعکس بود IN1/IN2 را جابه‌جا کن ⬜
Serial ‘L’ → UGV به چپ می‌چرخد چرخش صحیح ⬜
PWM سرعت کار می‌کند عدد کم = کند، زیاد = سریع ⬜

  • Last Minute Engineers: L298N راهنمای کامل
  • آپارات: ربات آردوینو L298N
برچسب‌ها: Differential Drive L298N nRF24L01 RC UGV آردوینو بخش ۲ از ۲ کد
​
مطلب بعدی ساخت پلتفرم UGV چوبی با موتور DC و L298N — بخش ۱: مکانیک و شاسی (فارسی) مطلب قبلی UGV با فرمان Ackermann — سرو موتور و درایو DC برای ماشین‌مانند (فارسی)
</> Make for Iran – بسازیم برای ایران

پروژه‌ها، آموزش‌ها و ابزارها برای سازندگان و علاقه‌مندان الکترونیک

یاد بگیر، بساز، به اشتراک بگذار. جامعه‌ای برای سازندگان، مهندسان و علاقه‌مندان به فناوری در ایران.

دسته‌بندی‌ها

  • پروژه‌ها
  • ربات‌های پرنده (UAV)
  • آموزش
  • ربات‌های زمینی (UGV)
  • الکترونیک
  • پهپاد و مولتی‌روتور

پیوندها

  • خانه
  • درباره ما
  • تماس
  • فید RSS

آخرین مطالب

  • خلاصه دوره ArduPilot/iNAV و گام‌های بعدی (فارسی)
  • رادیو تله‌متری در مقابل LTE/4G برای کنترل از راه دور (فارسی)
  • Ground Station روی موبایل و تبلت — QGroundControl و Solex (فارسی)
  • راه‌اندازی Ground Station با Mission Planner (فارسی)
© 2026 Make for Iran – بسازیم برای ایران. تمامی حقوق محفوظ است.
ساخته شده با ❤️ برای سازندگان ایران  |  ورود