L298N Motor Driver เป็นโมดูลยอดนิยมสำหรับการควบคุมมอเตอร์ DC และมอเตอร์สเต็ปเปอร์ ช่วยให้คุณสามารถควบคุมความเร็วและทิศทางของมอเตอร์โดยใช้สัญญาณ PWM จาก Arduino ทำให้เหมาะสำหรับโครงการหุ่นยนต์และระบบอัตโนมัติ บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ L298N กับ Arduino
สิ่งที่คุณต้องการ
- โมดูลไดรเวอร์มอเตอร์ L298N
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- มอเตอร์ดีซีหรือมอเตอร์สเต็ปเปอร์
- แหล่งพลังงานภายนอก (เช่นแบตเตอรี่ 9V หรือ 12V)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
ขั้นตอนที่ 1: ทำความเข้าใจกับไดรเวอร์มอเตอร์ L298N
โมดูล L298N เป็นไดรเวอร์มอเตอร์คู่ H-Bridge ซึ่งหมายความว่าสามารถควบคุมความเร็วและทิศทางของมอเตอร์ DC สองตัวได้อย่างอิสระหรือมอเตอร์สเต็ปเปอร์หนึ่งตัว
l298n pinout
เข็มหมุด | การทำงาน |
---|---|
in1, in2 | มอเตอร์อินพุตควบคุมทิศทาง |
ใน 3, in4 | อินพุตการควบคุมทิศทางของมอเตอร์ b |
ena | มอเตอร์ควบคุมความเร็ว (อินพุต PWM) |
enb | การควบคุมความเร็วของมอเตอร์ B (อินพุต PWM) |
Out1, Out2 | มอเตอร์ A เอาต์พุต |
Out3, Out4 | เอาท์พุทมอเตอร์ B |
12V (VCC) | แหล่งจ่ายไฟภายนอกสำหรับมอเตอร์ |
5V (ไม่บังคับ) | แหล่งจ่ายไฟลอจิก (ถ้าจัมเปอร์ถูกลบออก) |
gnd | พื้น |
หมายเหตุ:
- โมดูลรวมถึงตัวควบคุม 5V ออนบอร์ดที่ให้อำนาจวงจรลอจิกถ้าจัมเปอร์อยู่ในสถานที่และ VCC คือ 7-12V
- การถอดจัมเปอร์ต้องให้คุณจัดหาอุปทาน 5V ลอจิกแยกต่างหาก
ขั้นตอนที่ 2: เดินสาย L298N ไปยัง Arduino
นี่คือวิธีเชื่อมต่อ L298N กับ Arduino Uno และมอเตอร์ DC สองตัว:
l298n pin | พิน Arduino |
---|---|
ena | PIN 10 (PWM) |
ใน 1 | พิน 8 |
ใน 2 | พิน 9 |
enb | PIN 11 (PWM) |
ใน 3 | พิน 6 |
ใน 4 | พิน 7 |
gnd | Arduino Gnd |
12V (VCC) | พลังงานภายนอก (9V/12V) |
Out1, Out2 | มอเตอร์เทอร์มินัล |
Out3, Out4 | ขั้วมอเตอร์ B |
ขั้นตอนที่ 3: อัปโหลดรหัส
นี่คือตัวอย่างร่างเพื่อควบคุมมอเตอร์ DC สองตัว:
รหัสตัวอย่าง
// Motor A connections
#define ENA 10
#define IN1 8
#define IN2 9
// Motor B connections
#define ENB 11
#define IN3 6
#define IN4 7
void setup() {
// Set all pins as outputs
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
// Move Motor A forward
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 150); // Set speed (0-255)
// Move Motor B backward
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENB, 150); // Set speed (0-255)
delay(2000); // Run for 2 seconds
// Stop both motors
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
delay(1000); // Pause for 1 second
// Move both motors in reverse
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 200);
analogWrite(ENB, 200);
delay(2000); // Run for 2 seconds
// Stop both motors
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
delay(1000); // Pause for 1 second
}
ขั้นตอนที่ 4: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
- สังเกตมอเตอร์หมุนไปข้างหน้าหยุดและย้อนกลับตามลำดับที่ตั้งโปรแกรมไว้
เป็นทางเลือก: การควบคุมความเร็วแบบไดนามิก
คุณสามารถปรับความเร็วมอเตอร์แบบไดนามิกได้โดยการเปลี่ยนค่า PWM ที่ส่งไปยัง ENA
และ ENB
พินที่ใช้ analogWrite () ตัวอย่างเช่น:
analogWrite(ENA, 100); // Slow speed
analogWrite(ENA, 255); // Full speed
Applications of the L298N
- Building motorized robots
- การควบคุมสายพานลำเลียง
- ขับมอเตอร์ Stepper
- ระบบอัตโนมัติด้วยมอเตอร์ DC
การแก้ไขปัญหา
- มอเตอร์ไม่หมุน: ตรวจสอบให้แน่ใจว่าแหล่งจ่ายไฟภายนอกเชื่อมต่อและให้กระแสเพียงพอ
- ทิศทางมอเตอร์ไม่ถูกต้อง: ตรวจสอบการเดินสายของหมุดและการเชื่อมต่อย้อนกลับหากจำเป็น
- พฤติกรรมมอเตอร์ที่ไม่เสถียร: ใช้แหล่งจ่ายไฟที่เสถียรและหลีกเลี่ยงการเชื่อมต่อที่หลวม
บทสรุป
คุณสามารถเชื่อมต่อไดรเวอร์มอเตอร์ L298N กับ Arduino เพื่อควบคุมมอเตอร์ DC ได้สำเร็จ โมดูลอเนกประสงค์นี้ช่วยให้คุณจัดการความเร็วและทิศทางมอเตอร์ได้อย่างง่ายดาย ทดลองเพิ่มเติมโดยการรวมเซ็นเซอร์การควบคุมระยะไกลหรือโมดูลอื่น ๆ เข้ากับโครงการที่ใช้เครื่องยนต์ของคุณ!