สารบัญ:

มอเตอร์ความเร็วตัวแปรควบคุมแบบอนุกรม: 6 ขั้นตอน
มอเตอร์ความเร็วตัวแปรควบคุมแบบอนุกรม: 6 ขั้นตอน

วีดีโอ: มอเตอร์ความเร็วตัวแปรควบคุมแบบอนุกรม: 6 ขั้นตอน

วีดีโอ: มอเตอร์ความเร็วตัวแปรควบคุมแบบอนุกรม: 6 ขั้นตอน
วีดีโอ: วิธีเลือใช้งาน โมดูลควบคุมความเร็ว มอเตอร์ (DC Motor Speed Controller) 2024, กรกฎาคม
Anonim
มอเตอร์ความเร็วตัวแปรควบคุมแบบอนุกรม
มอเตอร์ความเร็วตัวแปรควบคุมแบบอนุกรม

ควบคุมความเร็วของมอเตอร์ DC ขนาดเล็กโดยไม่มีอะไรนอกจากพอร์ตอนุกรมบนคอมพิวเตอร์ของคุณ MOSFET ตัวเดียว และซอฟต์แวร์เล็กน้อย (MOSFET และพอร์ตอนุกรมประกอบขึ้นเป็น "การควบคุมความเร็ว" คุณยังคงต้องการมอเตอร์และแหล่งจ่ายไฟที่เหมาะสมสำหรับมอเตอร์นั้น ในขณะที่พอร์ตอนุกรมสามารถให้แรงดันไฟฟ้าในการเปิดและปิดมอสเฟตได้ จ่ายกระแสไฟที่มอเตอร์ทั่วไปต้องการ)

ขั้นตอนที่ 1: ดูวงจร

ดูวงจร
ดูวงจร

เรากำลังจะทำการปรับความกว้างของพัลส์โดยใช้ MOSFET กำลัง N-channel ทั่วไปที่เชื่อมต่อกับพินข้อมูลการส่งข้อมูลจากพอร์ต rs232 ของคอมพิวเตอร์ เมื่อพอร์ตอนุกรมไม่ได้ใช้งาน พินจะอยู่ที่สถานะ "1" ซึ่งเมื่อถึงเวลาที่มันถูกแปลเป็น rs232 จะเหมือนกับ -12V (ขึ้นอยู่กับไดรเวอร์ มันอาจจะใกล้กับ -9V หรือ -5V) และ ทรานซิสเตอร์จะค่อนข้างปิด เมื่อเราส่งบิต "0" บนพอร์ตอนุกรม พิน rs232 จะไปที่ +12V หรือมากกว่านั้น ซึ่งก็เพียงพอแล้วที่จะเปิดมอสเฟตส่วนใหญ่ได้ดีทีเดียว

หากเราส่งเลขทวิ "0" เป็นจำนวนมากติดต่อกัน มอเตอร์จะอยู่ใกล้กับ ON เต็มที่และมอเตอร์จะทำงานอย่างรวดเร็ว ถ้าเราส่งบิต "1" เป็นส่วนใหญ่ มอเตอร์จะทำงานช้าลง

ขั้นตอนที่ 2: วางสาย

วางสาย
วางสาย

เนื่องจากมีส่วนประกอบเพียงชิ้นเดียวและมีการเชื่อมต่อเพียงไม่กี่รายการ คุณจึงเพิ่ม "รูปแบบอิสระ" ของสายได้

MOSFET มีความไวต่อไฟฟ้าสถิต ดังนั้นควรระมัดระวังเล็กน้อย แต่มีน้อยมากที่มีความสำคัญ

ขั้นตอนที่ 3: ตั้งค่าไฟล์ด้วยค่า PWM

ตั้งค่าไฟล์ด้วยค่า PWM
ตั้งค่าไฟล์ด้วยค่า PWM

วิธีหนึ่งในการควบคุมมอเตอร์โดยไม่ต้องเขียนซอฟต์แวร์ใดๆ คือการเตรียมไฟล์บางไฟล์ที่มีไบต์ที่เหมาะสม (โดยมี 0 บิตมากหรือน้อย) และเพียงคัดลอกไฟล์เหล่านั้นไปยังพอร์ต COM ที่คุณเชื่อมต่อมอเตอร์ ฉันเตรียมไฟล์ไว้หลายไฟล์ (โดยใช้ emacs แต่อะไรก็ได้ที่เหมาะกับคุณ):

  • 0.pwm:: มีอักขระ NULL 5,000 ตัว (พื้นที่ควบคุมบนคีย์บอร์ดส่วนใหญ่)[br] ซึ่งใกล้เคียงกับ "ความเร็วเต็มที่" เท่าที่เราจะทำได้โดยใช้เทคนิคนี้
  • 1.pwm:: มีอักขระ control-A 5,000 ตัว (ascii 01) (หนึ่งบิต "1" ต่ออักขระ)
  • 3.pwm:: มีอักขระ control-C 5,000 ตัว (ascii 03) (สอง "1" บิตต่ออักขระ)
  • 7.pwm:: มีอักขระ control-G 5,000 ตัว (ascii 07) (สาม "1" บิตต่ออักขระ)
  • 15.pwm:: มีอักขระควบคุม 5,000 ตัว (ascii 15) (สี่ "1" บิตต่ออักขระ)
  • 31.pwm:: มีอักขระ control-_ 5,000 ตัว (ascii 31) (ห้า "1" บิตต่ออักขระ)
  • 63.pwm:: มี 5000 "?" อักขระ (ascii 63) (หก "1" บิตต่ออักขระ)
  • 127.pwm:: มีอักขระ DEL 5,000 ตัว (ascii 127) (เจ็ด "1" บิตต่ออักขระ)

(ตอนนี้ฉันวาดรูปแล้ว คุณจะสังเกตเห็นว่ารูปแบบบิตจริงนั้นไม่เหมาะ เนื่องจากอนุกรม rs232 ส่ง LSB ก่อน เราจึงต้องการเปลี่ยนเป็นเลขศูนย์แทน แบบฝึกหัดสำหรับนักเรียน!)

ขั้นตอนที่ 4: เล่นกับ DOS: กำหนดค่าพอร์ต COM ของคุณและคัดลอกไฟล์

เล่นกับ DOS: กำหนดค่าพอร์ต COM ของคุณและคัดลอกไฟล์
เล่นกับ DOS: กำหนดค่าพอร์ต COM ของคุณและคัดลอกไฟล์

9600 bps เป็นบิตเรตทั่วไป มันเข้ากันได้ดีกับ "ประมาณ" หนึ่งไบต์ต่อมิลลิวินาที ดังนั้นในกรณีนี้มันสอดคล้องกับความถี่ PWM ที่ 1000Hz ซึ่งฉันคิดว่าน่าจะใช้ได้สำหรับมอเตอร์ขนาดเล็ก คุณสามารถทดลองใช้อัตราบิตต่างๆ เพื่อดูว่าสิ่งต่าง ๆ ทำงานอย่างไร ซึ่งเป็นหนึ่งในข้อดีของวิธีนี้ สร้างหน้าต่าง DOS (หรือ "พรอมต์คำสั่ง") (สมมติว่าคุณใช้ระบบปฏิบัติการ Windows) และกำหนดค่าพอร์ต com ของคุณ เช่น:mode com1: 9600, n, 7, 1"ที่บอกให้คอมพอร์ตทำงานที่ 9600bps และส่ง 7 บิตในแต่ละอักขระ (เพื่อให้ตรงกับความยาวบิตที่แตกต่างกัน 7 บิตของเรา) "n" หมายถึงไม่มีความเท่าเทียมกัน ดังนั้นสิ่งเหล่านี้จะเป็นบิตข้อมูลเท่านั้น "1" หมายถึงจะมีหนึ่งบิต "หยุด" ซึ่งจะป้องกันไม่ให้เราหมุนมอเตอร์ไปจนสุดทาง (โอ้) ดังนั้นตอนนี้คุณสามารถเปิดมอเตอร์ด้วยคำสั่ง like:copy 0.pwm com1:เนื่องจากเราส่ง 5,000 ตัวอักษร ที่ประมาณ 1 ต่อมิลลิวินาที มอเตอร์ควรเปิดที่ความเร็วเกือบเต็มประมาณ 5 วินาที หากคุณต้องการน้อยกว่า 5 วินาที ให้สร้างไฟล์ที่สั้นลง ในทำนองเดียวกัน คุณสามารถทำได้:copy 127.pwm com1:to รันมอเตอร์ด้วยความเร็วต่ำสุดที่เป็นไปได้ ด้วยการตั้งค่าที่ฉันมี มอเตอร์จะไม่หมุนเลยเมื่อมีอะไร "ช้ากว่า" กว่า 31.pwm แต่ YMMV (ฉันบาง k ฉันมีมอเตอร์ 12V ที่ใช้พลังงานจากแบตเตอรี่ 5V) คำสั่ง COPY ให้คุณรวมไฟล์เข้าด้วยกัน ดังนั้นหากคุณต้องการให้มอเตอร์ของคุณเร่งความเร็วแล้วลดความเร็วลงอีกครั้ง คุณสามารถทำได้เช่น:copy 31.pwm+15 pwm+7.pwm+0.pwm+7.pwm+15.pwm+31.pwm com1:

ขั้นตอนที่ 5: ควบคุมมอเตอร์จากโปรแกรม

ควบคุมมอเตอร์จากโปรแกรม
ควบคุมมอเตอร์จากโปรแกรม

หากคุณกำลังเขียนโปรแกรม คุณสามารถเปิด COM1 ได้: เป็นไฟล์และเขียนไปเหมือนกับเป็นไฟล์อื่นๆ ความสามารถในการจับเวลาช่วงเวลาที่มอเตอร์เปิดอยู่โดยการแสดงอักขระจำนวนหนึ่งออกมาดูเหมือนจะมีประโยชน์มาก อย่าลืมว่าระบบมักจะบัฟเฟอร์อักขระที่คุณส่งไปยังพอร์ตอนุกรม ดังนั้นเพียงเพราะการเรียก WRITE กลับไม่ได้หมายความว่ามอเตอร์ได้ทำสิ่งที่คุณบอกเสร็จแล้ว เนื่องจากเราไม่ได้ทำอะไร "แฟนซี" กับสัญญาณพอร์ต com คุณจึงไม่ควรต้องตรวจสอบตัวเลือกลับที่อาจสนับสนุน (แม้ว่าหากคุณสามารถทราบวิธีส่งลำดับ BREAK ไปยังพอร์ต com ได้ นั่นคือสถานะ "0" ที่ต่อเนื่องกัน และจะขับเคลื่อนมอเตอร์ไปจนสุดทาง มากกว่าการส่งอักขระ 0 ตัวต่อเนื่องกัน)

หากภาษาการเขียนโปรแกรมของคุณไม่อนุญาตให้คุณส่งออกไปยัง COM1: คุณอาจยังคงสามารถควบคุมมอเตอร์ได้โดยการ "เรียก" DOS เพื่อทำคำสั่งคัดลอก (ตกลงฉันดาวน์โหลด Visual Basic Express 2005 ของ Microsoft แล้ว (ซึ่งฟรี) และจัดการเพื่อผูกแถบเลื่อนแนวนอนกับความเร็วของมอเตอร์ควบคุมผ่านพอร์ตอนุกรม แนบ zip อาจมีมากกว่าที่จำเป็นในการทำซ้ำโปรแกรม ในระบบของคุณ แต่ฉันไม่ทราบแน่ชัดว่าต้องใช้บิตใด โปรแกรมมีทั้งแบบง่ายและทำให้เข้าใจยากขึ้น (ขออภัย) โดยเป็นแบบมัลติเธรด หนึ่งเธรดไม่ทำอะไรเลยนอกจากส่งออกไปยังพอร์ตอนุกรมและ เธรดหลักอ่านแถบเลื่อนและอัปเดตข้อมูลที่ใช้โดยเธรดซีเรียล)

ขั้นตอนที่ 6: ทดลอง

การทดลอง!
การทดลอง!

หากสิ่งต่าง ๆ ใช้งานได้จริง สิ่งนี้จะทำให้มีพื้นที่เหลือเฟือสำหรับการทดลอง

  • แก้ไขรูปแบบบิตของฉัน!
  • บิตเรตมีความสำคัญหรือไม่?
  • คุณต้องควบคุมความกว้างของพัลส์ "เปิด" และ "ปิด" หรือเพียงแค่ควบคุมอัตราส่วนเพียงพอหรือไม่
  • หากคุณเพียงต้องควบคุมอัตราส่วน คุณสามารถพิจารณาลำดับอักขระหลายตัวที่อัตราบิตที่สูงขึ้นเพื่อให้ได้ระดับความเร็วที่มากขึ้น เอาต์พุต 0 ตามด้วย 127 จะเปิดใช้งานประมาณครึ่งหนึ่ง
  • สิ่งนี้น่าจะใช้ได้กับหลอดไฟฉายหรี่แสงเช่นกัน

แนะนำ: