Un ไดรเวอร์มอเตอร์ เป็นวงจรที่ช่วยให้สามารถควบคุมมอเตอร์กระแสตรงได้ด้วยวิธีที่ง่ายมาก ตัวควบคุมเหล่านี้ช่วยให้คุณจัดการแรงดันไฟฟ้าและกระแสที่มอเตอร์จ่ายเพื่อควบคุมความเร็วในการหมุน นอกจากนี้ยังใช้เป็นวิธีการป้องกันเพื่อป้องกันไม่ให้อุปกรณ์อิเล็กทรอนิกส์ของมอเตอร์เสียหายจากการ จำกัด กระแสที่ไหลเวียน (การสับ)
ดังนั้นหากคุณกำลังจะสร้างโครงการ DIY ที่จะ รวมมอเตอร์กระแสตรงตั้งแต่หนึ่งตัวขึ้นไปไม่ว่าจะเป็นประเภทใดและโดยเฉพาะอย่างยิ่งสำหรับสเต็ปเปอร์มอเตอร์คุณควรใช้ตัวขับมอเตอร์เพื่อทำให้สิ่งต่างๆง่ายขึ้นสำหรับคุณ แม้ว่าจะมีวิธีการทำที่แตกต่างกัน แต่การใช้ทรานซิสเตอร์ แต่โมดูลที่มีไดรเวอร์มอเตอร์นั้นใช้งานได้จริงและตรงไปตรงมามากกว่า ในความเป็นจริงไดรเวอร์เหล่านี้ต้องอาศัยทรานซิสเตอร์ในการทำงาน ...
ทำไมต้องมีคนขับ?
El คนขับจำเป็นสำหรับการควบคุมมอเตอร์ อย่างที่ฉันเคยพูดไปแล้ว นอกจากนี้คุณต้องจำไว้ว่าบอร์ด Arduino และไมโครคอนโทรลเลอร์ไม่สามารถเปิดการเคลื่อนไหวของมอเตอร์ได้ ได้รับการออกแบบมาสำหรับสัญญาณดิจิตอล แต่จะทำงานได้ไม่ดีเมื่อต้องจ่ายพลังงานเพิ่มขึ้นเล็กน้อยเช่นเดียวกับที่มอเตอร์ประเภทนี้ต้องการ นั่นคือเหตุผลที่คุณต้องมีองค์ประกอบนี้ระหว่างบอร์ด Arduino และมอเตอร์
ประเภทไดรเวอร์
คุณต้องรู้ว่า มีไดรเวอร์หลายประเภท ขึ้นอยู่กับประเภทของเครื่องยนต์ที่ต้องการ สิ่งนี้เป็นสิ่งสำคัญที่ต้องรู้วิธีแยกความแตกต่างเพื่อให้ได้ไดรเวอร์ที่ถูกต้อง:
- ไดร์เวอร์สำหรับมอเตอร์แบบ unipolar: เป็นวิธีที่ง่ายที่สุดในการควบคุมเนื่องจากกระแสที่ไหลผ่านขดลวดจะไปในทิศทางเดียวกันเสมอ งานของคนขับก็ต้องรู้ว่าขดลวดใดที่ต้องเปิดใช้งานในแต่ละพัลส์ ตัวอย่างของคอนโทรลเลอร์ประเภทนี้จะเป็น ULN2003A
- ไดรเวอร์สำหรับมอเตอร์สองขั้ว: มอเตอร์เหล่านี้มีความซับซ้อนมากกว่าและไดรเวอร์ก็เช่นกันเช่น DRV8825 ในกรณีนี้สามารถเปิดใช้งานด้วยกระแสไฟฟ้าในทิศทางเดียวหรืออีกทิศทางหนึ่ง (เหนือ - ใต้และใต้ - เหนือ) เป็นตัวขับเคลื่อนที่กำหนดทิศทางในการเปลี่ยนขั้วของสนามแม่เหล็กที่ผลิตภายในมอเตอร์ วงจรที่รู้จักกันดีที่สุดสำหรับการกลับทิศทางเรียกว่า Punete H ทำให้เครื่องยนต์หมุนได้ทั้งสองทิศทาง H-bridge นั้นประกอบด้วยทรานซิสเตอร์หลายตัว
หลังได้รับความนิยมมากขึ้นในช่วงไม่กี่ปีที่ผ่านมาเนื่องจากรวมอยู่ในบางส่วนด้วย เครื่องพิมพ์ 3D เพื่อควบคุมการพิมพ์ด้วยหัว เป็นไปได้ว่าหากคุณตั้งใจจะติดตั้งเครื่องพิมพ์ 3 มิติหรือหากคุณมีอยู่แล้วคุณจะต้องใช้สิ่งเหล่านี้เพื่อให้สามารถควบคุมมอเตอร์หรือเปลี่ยนชิ้นส่วนนี้ได้หากได้รับความเสียหาย นอกจากนี้ยังใช้สำหรับหุ่นยนต์พล็อตเตอร์เครื่องพิมพ์ทั่วไปสแกนเนอร์ยานพาหนะอิเล็กทรอนิกส์และอื่น ๆ อีกมากมาย
DRV8825
มีไดรเวอร์หลายรุ่นในตลาด ตัวอย่างเช่นเขา DRV8825 เป็นรุ่นอัพเกรดของ A4988. ไดรเวอร์นี้ต้องการเอาต์พุตดิจิตอลสองตัวจากไมโครคอนโทรลเลอร์เท่านั้นเพื่อให้สามารถจัดการกับมอเตอร์ได้อย่างเหมาะสม ด้วยเหตุนี้คุณจึงสามารถควบคุมทิศทางและขั้นตอนของมอเตอร์ด้วยสัญญาณทั้งสองนี้ นั่นคืออนุญาตให้เหยียบหรือมอเตอร์หมุนทีละขั้นตอนแทนที่จะหมุนเร็วเหมือนมอเตอร์ทั่วไปอื่น ๆ
DRV8825 ช่วยให้สามารถทำงานกับแรงดันไฟฟ้าได้สูงกว่าที่ใช้โดย A4988 เนื่องจาก สามารถเข้าถึง 45v แทนที่จะเป็น 35v ของ A4988 นอกจากนี้ยังสามารถรองรับกระแสที่สูงขึ้นโดยเฉพาะ 2.5A ซึ่งมากกว่า A4988 ถึงครึ่งแอมป์ นอกจากนั้นไดรเวอร์ใหม่นี้ยังเพิ่มโหมด 1/32 microstepping ใหม่ (1/16 สำหรับ A4988) เพื่อให้สามารถเคลื่อนย้ายเพลามอเตอร์ได้อย่างแม่นยำยิ่งขึ้น
มิฉะนั้น มันค่อนข้างคล้ายกัน ตัวอย่างเช่นทั้งสองสามารถเข้าถึงอุณหภูมิในการทำงานสูงได้โดยไม่มีปัญหา ดังนั้นหากคุณใช้ฮีทซิงค์ขนาดเล็กร่วมกับพวกเขาจะดีกว่ามาก (หลายรุ่นรวมอยู่แล้ว) โดยเฉพาะอย่างยิ่งถ้าคุณจะใช้มันที่สูงกว่า 1A
หากการห่อหุ้มถึงอุณหภูมิสูงคุณควรปิดเครื่องอย่างระมัดระวัง จะเป็นการดีที่จะปรึกษา แผ่นข้อมูล ของรุ่นที่คุณซื้อและดูอุณหภูมิสูงสุดที่สามารถใช้งานได้ การเพิ่มเซนเซอร์ตรวจจับอุณหภูมิข้างคนขับเพื่อตรวจสอบอุณหภูมิและใช้วงจรที่ขัดขวางการทำงานหากอุณหภูมิถึงขีด จำกัด นั้นขอแนะนำอย่างยิ่ง ...
DRV8825 มี การป้องกันปัญหา ของกระแสเกินไฟฟ้าลัดวงจรแรงดันไฟฟ้าเกินและอุณหภูมิสูงเกินไป ดังนั้นจึงเป็นอุปกรณ์ที่เชื่อถือได้และทนทานมาก และทั้งหมดสำหรับ ราคาค่อนข้างต่ำ ในร้านค้าเฉพาะที่คุณจะพบส่วนประกอบนี้
ไมโครสเต็ปปิ้ง

ด้วยเทคนิคของ ขั้นตอน microstepping ต่ำกว่าขั้นตอนที่กำหนดสามารถทำได้ ของสเต็ปเปอร์มอเตอร์ที่คุณจะใช้ นั่นคือแบ่งเทิร์นออกเป็นส่วน ๆ เพื่อให้สามารถก้าวไปได้ช้าลงหรือแม่นยำมากขึ้น ในการทำเช่นนี้กระแสที่ใช้กับขดลวดแต่ละตัวจะแปรผันโดยการจำลองค่าอนาล็อกด้วยสัญญาณดิจิทัลที่มีอยู่ หากได้สัญญาณแอนะล็อกไซน์ที่สมบูรณ์แบบและอยู่นอกเฟสซึ่งกันและกัน90ºการหมุนที่ต้องการจะทำได้
แต่แน่นอนว่าคุณไม่สามารถรับสัญญาณอนาล็อกนั้นได้เพราะ เราทำงานกับสัญญาณดิจิทัล. นั่นคือเหตุผลที่สิ่งเหล่านี้ควรได้รับการปฏิบัติเพื่อพยายามจำลองสัญญาณแอนะล็อกผ่านการกระโดดเล็ก ๆ ในสัญญาณไฟฟ้า ความละเอียดของมอเตอร์จะขึ้นอยู่กับสิ่งนี้: 1/4, 1/8, 1/16, 1/32, ...
ในการเลือกความละเอียดที่คุณต้องการคุณต้องควบคุมพิน M0, M1 และ M2 ของโมดูล พินเชื่อมต่อกับกราวด์หรือ GND โดยตัวต้านทานแบบดึงขึ้นดังนั้นหากไม่มีการเชื่อมต่อพวกมันจะเป็น LOW หรือ 0 เสมอในการเปลี่ยนค่านี้คุณจะต้องบังคับให้มีค่าเป็น 1 หรือสูง ค่าของ M0, M1, M2 ตามลำดับสิ่งที่ต้องเป็นไปตามมติคือ:
- ขั้นตอนเต็ม: ต่ำต่ำต่ำ
- 1/2: สูงต่ำต่ำ
- 1/4: ต่ำสูงต่ำ
- 1/8: สูงสูงต่ำ
- 1/16: ต่ำต่ำสูง
- 1/32: ค่าอื่น ๆ ที่เป็นไปได้ทั้งหมด
pinout

El ไดรเวอร์ DRV8825 มีรูปแบบการเชื่อมต่อที่เรียบง่ายแม้ว่าการมีพินเพียงพออาจเป็นเรื่องยุ่งยากสำหรับผู้ที่มีความเชี่ยวชาญน้อย คุณสามารถเห็นได้ในภาพด้านบน แต่อย่าลืมวางตำแหน่งโมดูลอย่างถูกต้องเมื่อคุณมองไปที่หมุดเนื่องจากเป็นเรื่องปกติที่จะทำผิดพลาดและพลิกกลับด้านซึ่งส่งผลให้เกิดการเชื่อมต่อที่ไม่ดีและแม้กระทั่งความเสียหาย
โคโม คำแนะนำในการเชื่อมต่อไดรเวอร์ขอแนะนำให้ปรับแต่งและปรับเทียบอุปกรณ์อย่างเหมาะสมโดยทำตามขั้นตอนด้านล่างเพื่อการทำงานที่เหมาะสมและไม่ให้เกิดความเสียหาย:
- เชื่อมต่อไดรเวอร์กับแรงดันไฟฟ้า โดยไม่ต้องเชื่อมต่อมอเตอร์หรือ microstepping
- วัดด้วยมัลติมิเตอร์ ความตึงเครียด ที่มีอยู่ระหว่าง GND และโพเทนชิออมิเตอร์
- ปรับโพเทนชิออมิเตอร์ จนกว่าจะได้ค่าที่เหมาะสม
- ตอนนี้คุณสามารถ ปิดเครื่อง.
- ในขณะนี้ใช่คุณทำได้ เชื่อมต่อมอเตอร์. และเชื่อมต่อไฟฟ้ากับนักประดาน้ำอีกครั้ง.
- ด้วยการวัดมัลติมิเตอร์ ความเข้มระหว่างไดรเวอร์และมอเตอร์ ทีละขั้นตอนและคุณสามารถปรับโพเทนชิออมิเตอร์ได้ละเอียดขึ้น
- ปิดเครื่องอีกครั้งและ ตอนนี้คุณสามารถเชื่อมต่อกับ Arduino ได้แล้ว.
หากคุณไม่ได้จะใช้ microstepping คุณสามารถปรับความเข้มของตัวควบคุมได้ มากถึง 100% ของกระแสมอเตอร์ที่ได้รับการจัดอันดับ แต่ถ้าจะใช้ต้องลดขีด จำกัด นี้เพราะค่าที่จะหมุนเวียนจะสูงกว่าค่าที่วัดได้ ...
บูรณาการกับ Arduino

ในการใช้ไดรเวอร์ DRV8825 กับ Arduino การเชื่อมต่อค่อนข้างง่าย ดังที่คุณเห็นที่ด้านบนในแผนผังอิเล็กทรอนิกส์จาก Fritzing:
- VMOT: เชื่อมต่อกับพลังงานสูงสุด 45v
- GND: กราวด์ (มอเตอร์)
- SLP: ที่ 5v
- RST: ที่ 5v
- GND: ถึงพื้น (ตรรกะ)
- STP: ถึง Arduino pin 3
- DIR: ถึง Arduino pin 2
- A1, A2, B1, B2: ไปยัง stepper (มอเตอร์)
เมื่อเชื่อมต่อและปรับแต่งอย่างถูกต้องแล้วรหัสสำหรับการควบคุมก็ตรงไปตรงมาเช่นกัน ตัวอย่างเช่นในการควบคุมสเต็ปเปอร์มอเตอร์คุณสามารถใช้สิ่งต่อไปนี้ รหัสใน Arduino IDE:
const int dirPin = 2;
const int stepPin = 3;
const int steps = 200;
int stepDelay;
void setup() {
// Configura los pines como salida
pinMode(dirPin, OUTPUT);
pinMode(stepPin, OUTPUT);
}
void loop() {
//Se pone una dirección y velocidad
digitalWrite(dirPin, HIGH);
stepDelay = 250;
// Se gira 200 pulsos para hacer vuelta completa del eje
for (int x = 0; x < 200; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepDelay);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepDelay);
}
delay(1000);
//Ahora se cambia la dirección de giro y se aumenta la velocidad
digitalWrite(dirPin, LOW);
stepDelay = 150;
//Se hacen dos vueltas completas
for (int x = 0; x < 400; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepDelay);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepDelay);
}
delay(1000);
}
ฉันแนะนำให้คุณลองใช้ตัวอย่างโค้ดที่คุณจะพบในตัวอย่างที่มาพร้อมกับ Arduino IDE และลองแก้ไขค่าเพื่อเรียนรู้ว่ามันมีผลต่อมอเตอร์อย่างไร
ไปยัง ข้อมูลเพิ่มเติม เกี่ยวกับสเต็ปเปอร์มอเตอร์การควบคุมและการเขียนโปรแกรม Arduino ฉันขอแนะนำ ดาวน์โหลดหลักสูตรการเขียนโปรแกรมของเราได้ฟรี.