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 ฉันขอแนะนำ ดาวน์โหลดหลักสูตรการเขียนโปรแกรมของเราได้ฟรี.
สวัสดีฉันกำลังสร้าง CNC แบบโฮมเมดด้วย drv8825 คำถามของฉันคือถ้าฉันสามารถใส่มอเตอร์ nema 23 2.8a ได้เนื่องจากราคาค่อนข้างถูกกว่า 2.5a ฉันจะมีปัญหาหรือไม่? ขอขอบคุณ
สวัสดีพระเยซู
ขอบคุณที่อ่านเรา สำหรับข้อสงสัยของคุณให้จับตาดูไดรเวอร์ที่คุณกำลังจะใช้เพื่อให้เข้ากันได้กับเครื่องยนต์เหล่านั้น กรณีของ DRV8825 สูงสุด 2.5A มองไปเห็น TB6600 ขึ้นได้ถึง 3.5A ถ้าจำไม่ผิด ...
ทักทาย!
Salaudos ค่าของตัวเก็บประจุไฟฟ้าที่อยู่ในแหล่งจ่ายไฟของมอเตอร์คืออะไร ขอบคุณ.