autoworks24.com

Arduino ควบคุม DC Motor ด้วย L298

Arduino ควบคุม DC Motor ด้วย L298

อุปกรณ์

  1. Arduino (เช่น Arduino Uno)
  2. L298N Motor Driver Module
  3. DC Motor 2 ตัว
  4. แหล่งจ่ายไฟสำหรับ DC Motor (แบตเตอรี่หรือ power supply)
  5. สาย Jumper
  6.  

การเชื่อมต่อ

  • เชื่อมต่อ Motor 1 กับช่อง OUT1 และ OUT2 ของ L298N Motor Driver Module
  • เชื่อมต่อ Motor 2 กับช่อง OUT3 และ OUT4 ของ L298N Motor Driver Module
  • เชื่อมต่อแหล่งจ่ายไฟสำหรับ DC Motor กับช่อง VCC และ GND ของ L298N Motor Driver Module
  • เชื่อมต่อขา ENA ของ L298N Motor Driver Module กับขา PWM บน Arduino (เช่น ขา 10) สำหรับ Motor 1
  • เชื่อมต่อขา ENB ของ L298N Motor Driver Module กับขา PWM บน Arduino (เช่น ขา 11) สำหรับ Motor 2
  • เชื่อมต่อขา IN1 และ IN2 ของ L298N Motor Driver Module กับขา Digital บน Arduino (เช่น ขา 8 และ 9) สำหรับ Motor 1
  • เชื่อมต่อขา IN3 และ IN4 ของ L298N Motor Driver Module กับขา Digital บน Arduino (เช่น ขา 12 และ 13) สำหรับ Motor 2
  • เชื่อมต่อขา GND ของ Arduino กับ GND ของ L298N Motor Driver Module

โค้ดตัวอย่าง

// กำหนดขาของ Arduino ที่เชื่อมต่อกับ L298N Motor Driver Module สำหรับ Motor 1
const int enA = 10;
const int in1 = 8;
const int in2 = 9;

// กำหนดขาของ Arduino ที่เชื่อมต่อกับ L298N Motor Driver Module สำหรับ Motor 2
const int enB = 11;
const int in3 = 12;
const int in4 = 13;

void setup() {
// กำหนดขา enA และ enB เป็นขา OUTPUT
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
// กำหนดขา in1, in2, in3 และ in4 เป็นขา OUTPUT
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}

void loop() {
// หมุนมอเตอร์ 1 ไปข้างหน้า
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 255); // ความเร็วสูงสุด

// หมุนมอเตอร์ 2 ไปข้างหน้า
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, 255); // ความเร็วสูงสุด

delay(2000); // หมุนเป็นเวลา 2 วินาที

// หยุดมอเตอร์ 1 และ 2
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(enA, 0); // หยุด
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
analogWrite(enB, 0); // หยุด

delay(1000); // หยุดเป็นเวลา 1 วินาที

// หมุนมอเตอร์ 1 ย้อนกลับ
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 255); // ความเร็วสูงสุด

// หมุนมอเตอร์ 2 ย้อนกลับ
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 255); // ความเร็วสูงสุด

delay(2000); // หมุนเป็นเวลา 2 วินาที

// หยุดมอเตอร์ 1 และ 2
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(enA, 0); // หยุด
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
analogWrite(enB, 0); // หยุด

delay(1000); // หยุดเป็นเวลา 1 วินาที
}

โค้ดนี้จะทำให้มอเตอร์ทั้งสองหมุนไปข้างหน้าเป็นเวลา 2 วินาที หยุด 1 วินาที จากนั้นหมุนย้อนกลับเป็นเวลา 2 วินาที และหยุด 1 วินาที ในลูปซ้ำๆ คุณสามารถปรับความเร็วของมอเตอร์โดยการเปลี่ยนค่าของ analogWrite(enA, value) และ analogWrite(enB, value) ซึ่ง value มีค่าอยู่ระหว่าง 0 ถึง 255 (0 คือหยุดและ 255 คือความเร็วสูงสุด)

หมายเหตุ

ตรวจสอบการเชื่อมต่อให้ถูกต้องและใช้แหล่งจ่ายไฟที่เหมาะสมกับมอเตอร์ของคุณเพื่อป้องกันความเสียหายต่ออุปกรณ์

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *