โมดูลขับมอเตอร์ L9110S เป็นโซลูชันขนาดกะทัดรัดและมีประสิทธิภาพสำหรับการควบคุมมอเตอร์ DC และมอเตอร์สเต็ปเปอร์ในโปรเจกต์ Arduino ของคุณ ไม่ว่าคุณจะสร้างหุ่นยนต์ง่ายๆ หรือระบบออโตเมชันที่ซับซ้อนกว่า L9110S มอบวิธีที่เชื่อถือได้ในการจัดการการทำงานของมอเตอร์ด้วยการเดินสายและการเขียนโปรแกรมที่เรียบง่าย ในบทความบล็อกนี้ เราจะสำรวจคุณสมบัติของ L9110S โมดูลขับมอเตอร์ วิธีการเชื่อมต่อกับ Arduino และตัวอย่างโค้ดเพื่อให้คุณเริ่มต้นได้
คืออะไร L9110S?
โมดูล L9110S เป็นชิปขับมอเตอร์ 2 ช่องที่ออกแบบมาเพื่อควบคุมความเร็วและทิศทางของมอเตอร์ DC สองตัวหรือมอเตอร์สเต็ปเปอร์หนึ่งตัว มันทำงานด้วยช่วงแรงดัน 2.5V ถึง 12V ทำให้ใช้งานได้หลากหลายในแอปพลิเคชันต่างๆ L9110S เป็นที่รู้จักในเรื่องขนาดกะทัดรัด การใช้พลังงานต่ำ และการผนวกรวมกับไมโครคอนโทรลเลอร์อย่าง Arduino ได้ง่าย
ทำไมต้องเลือก L9110S?
- การออกแบบกะทัดรัด: ขนาดเล็กทำให้เหมาะกับโปรเจกต์ที่มีพื้นที่จำกัด
- ช่องคู่: ควบคุมมอเตอร์สองตัวแยกกัน ทำให้สามารถเคลื่อนไหวที่ซับซ้อนได้
- ใช้งานง่าย: อินเตอร์เฟซเรียบง่าย พร้อมป้ายกำกับชัดเจนสำหรับการเชื่อมต่อที่สะดวก
- คุ้มค่า: ราคาย่อมเยาโดยไม่ลดทอนฟังก์ชันการทำงาน
การเชื่อมต่อ L9110S กับ Arduino
การตั้งค่า L9110S กับ Arduino ทำได้ไม่ยาก ด้านล่างเป็นคู่มือทีละขั้นตอนสำหรับการเชื่อมต่อ:
- การเชื่อมต่อพลังงาน:
- เชื่อมต่อขา
VCCของ L9110S เข้ากับขา 5V บน Arduino - เชื่อมต่อขา
GNDของ L9110S เข้ากับขา GND บน Arduino - การเชื่อมต่อมอเตอร์:
- เชื่อมต่อมอเตอร์ตัวแรกกับขา
OUT1และOUT2pins. - หากใช้มอเตอร์ตัวที่สอง ให้เชื่อมต่อกับขา
OUT3และOUT4pins. -
ขาควบคุม:
- เชื่อมต่อขา
AIN1และAIN2เข้ากับขาดิจิทัลสองขาบน Arduino (เช่น ขา 2 และ 3) - หากใช้มอเตอร์ตัวที่สอง ให้เชื่อมต่อ
BIN1และBIN2กับขาดิจิทัลอีกสองขา (เช่น ขา 4 และ 5)
- เชื่อมต่อขา
ดูแผนผังด้านล่างเพื่อดูการแสดงภาพของการเชื่อมต่อ:
การเขียนโปรแกรมให้ Arduino
หลังจากตั้งค่าฮาร์ดแวร์ ขั้นตอนต่อไปคือการเขียนโปรแกรมให้ Arduino ควบคุมมอเตอร์ ด้านล่างเป็นตัวอย่างโค้ดที่แสดงการควบคุมทิศทางและความเร็วของมอเตอร์ DC โดยใช้โมดูลขับมอเตอร์ L9110S motor driver.
// Define motor control pins
const int AIN1 = 2;
const int AIN2 = 3;
// Setup function
void setup() {
// Initialize the motor control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
}
// Loop function
void loop() {
// Rotate motor forward
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
delay(2000); // Run for 2 seconds
// Stop the motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(1000); // Stop for 1 second
// Rotate motor backward
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
delay(2000); // Run for 2 seconds
// Stop the motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(1000); // Stop for 1 second
}
คำอธิบาย:
-
AIN1และAIN2ถูกใช้เพื่อควบคุมทิศทางของมอเตอร์ - ตั้งค่าให้
AIN1เป็น HIGH และAIN2เป็น LOW จะทำให้มอเตอร์หมุนไปข้างหน้า - ตั้งค่าให้
AIN1เป็น LOW และAIN2เป็น HIGH จะทำให้มอเตอร์หมุนถอยหลัง - การตั้งค่าทั้ง
AIN1และAIN2เป็น LOW จะหยุดมอเตอร์
การควบคุมความเร็วด้วย PWM
โมดูล L9110S รองรับ PWM (Pulse Width Modulation) สำหรับการควบคุมความเร็ว โดยการปรับหน้าที่ของสัญญาณ PWM คุณสามารถปรับความเร็วของมอเตอร์ได้ นี่คือวิธีการแก้ไขโค้ดก่อนหน้าให้รวมการควบคุมความเร็ว:
// Define motor control pins
const int AIN1 = 2;
const int AIN2 = 3;
const int PWM_PIN = 9; // PWM pin for speed control
// Setup function
void setup() {
// Initialize the motor control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWM_PIN, OUTPUT);
}
// Loop function
void loop() {
// Set speed to 150 out of 255
analogWrite(PWM_PIN, 150);
// Rotate motor forward
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
delay(2000); // Run for 2 seconds
// Stop the motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(1000); // Stop for 1 second
// Rotate motor backward
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
delay(2000); // Run for 2 seconds
// Stop the motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(1000); // Stop for 1 second
}
คำอธิบาย: ฟังก์ชัน analogWrite() ส่งสัญญาณ PWM ไปยังมอเตอร์ ทำให้คุณควบคุมความเร็วได้ ค่าสัญญาณมีช่วงตั้งแต่ 0 (หยุด) ถึง 255 (ความเร็วเต็ม)
การใช้งานของ L9110S กับ Arduino
การใช้งานร่วมกันระหว่างโมดูลขับมอเตอร์ L9110S และ Arduino เปิดโอกาสให้สร้างโปรเจกต์ได้หลากหลายประเภท:
- หุ่นยนต์: ควบคุมการเคลื่อนไหวของแขนหุ่นยนต์หรือหุ่นยนต์เคลื่อนที่ด้วยการควบคุมมอเตอร์อย่างแม่นยำ
- ระบบออโตเมชัน: ออโตเมชันงานต่างๆ เช่น เปิด/ปิดประตู ปรับวาล์ว หรือเคลื่อนย้ายชิ้นส่วนในสายประกอบ
- โปรเจกต์ DIY: สร้างโปรเจกต์อิเล็กทรอนิกส์ตามต้องการ เช่น สไลเดอร์กล้องมอเตอร์ ระบบรดน้ำอัตโนมัติ หรือยานยนต์รีโมทคอนโทรล
- เครื่องมือการสอน: สอนนักเรียนเกี่ยวกับการควบคุมมอเตอร์ อิเล็กทรอนิกส์ และการเขียนโปรแกรมผ่านการลงมือทำ
สรุป
โมดูลขับมอเตอร์ L9110S เป็นชิ้นส่วนที่หลากหลายและใช้งานง่ายสำหรับทุกคนที่ต้องการควบคุมมอเตอร์ด้วย Arduino ความสามารถแบบช่องคู่รวมกับความเรียบง่ายในการเดินสายและการเขียนโปรแกรม ทำให้เป็นตัวเลือกที่ยอดเยี่ยมทั้งสำหรับผู้เริ่มต้นและผู้ที่มีประสบการณ์ โดยการทำตามขั้นตอนที่อธิบายไว้ในบทความนี้ คุณสามารถผนวกรวมการควบคุมมอเตอร์เข้ากับโปรเจกต์ของคุณได้อย่างรวดเร็วและขยายฟังก์ชันการทำงานของระบบที่ใช้ Arduino
ทดลองปรับความเร็ว มุมหมุน และการประยุกต์ใช้งานต่างๆ เพื่อใช้ประโยชน์จากศักยภาพของโมดูลขับมอเตอร์ L9110S ให้เต็มที่ ขอให้สนุกกับการทดลอง!
