ในบทช่วยสอนนี้เราจะเชื่อมต่อมอเตอร์กระแสตรงกับ Arduino UNOและควบคุมความเร็วโดยใช้แนวคิดPWM (Pulse Width Modulation) คุณสมบัตินี้เปิดใช้งานใน UNO เพื่อรับแรงดันไฟฟ้าแปรผันเหนือแรงดันไฟฟ้าคงที่ วิธีการของ PWM อธิบายไว้ที่นี่ พิจารณาวงจรง่ายๆดังแสดงในรูป
หากกดปุ่มถ้าเป็นไปตามรูปมอเตอร์จะเริ่มหมุนและจะเคลื่อนไหวจนกว่าจะกดปุ่ม การกดนี้เป็นไปอย่างต่อเนื่องและแสดงในรูปคลื่นลูกแรก หากในกรณีนี้ให้กดปุ่มพิจารณาเป็นเวลา 8ms และเปิดเป็นเวลา 2ms ในรอบ 10ms ในระหว่างกรณีนี้มอเตอร์จะไม่ได้รับแรงดันไฟฟ้าแบตเตอรี่ 9V ที่สมบูรณ์เนื่องจากกดปุ่มเพียง 8ms ดังนั้นแรงดันขั้ว RMS มอเตอร์จะอยู่ที่ประมาณ 7V เนื่องจากแรงดันไฟฟ้า RMS ที่ลดลงนี้มอเตอร์จะหมุน แต่ด้วยความเร็วที่ลดลง ตอนนี้เปิดเฉลี่ยในช่วง 10ms = เวลาเปิดเครื่อง / (เวลาเปิดเครื่อง + เวลาปิดเครื่อง) เรียกว่ารอบการทำงานและเท่ากับ 80% (8 / (8 + 2))
ในกรณีที่สองและสามปุ่มจะถูกกดใช้เวลาน้อยกว่าเมื่อเทียบกับกรณีแรก ด้วยเหตุนี้แรงดันไฟฟ้าขั้ว RMS ที่ขั้วมอเตอร์จึงลดลงไปอีก เนื่องจากแรงดันไฟฟ้าที่ลดลงความเร็วของมอเตอร์จึงลดลงไปอีก การลดลงของความเร็วในรอบการทำงานนี้จะเกิดขึ้นอย่างต่อเนื่องจนถึงจุดหนึ่งซึ่งแรงดันไฟฟ้าที่ขั้วมอเตอร์จะไม่เพียงพอที่จะหมุนมอเตอร์
ดังนั้นเราจึงสรุปได้ว่า PWM สามารถใช้เพื่อเปลี่ยนความเร็วมอเตอร์ได้
ก่อนที่จะดำเนินการต่อไปเราต้องหารือเกี่ยวกับ H-BRIDGE ตอนนี้วงจรนี้มีหน้าที่หลักสองประการประการแรกคือการ ขับเคลื่อนมอเตอร์กระแสตรงจากสัญญาณควบคุมพลังงานต่ำ และอีกประการหนึ่งคือการ เปลี่ยนทิศทางการหมุนของมอเตอร์กระแสตรง
รูปที่ 1
รูปที่ 2
เราทุกคนรู้ดีว่าสำหรับมอเตอร์กระแสตรงในการเปลี่ยนทิศทางการหมุนเราจำเป็นต้องเปลี่ยนขั้วของแรงดันไฟฟ้าของมอเตอร์ ดังนั้นในการเปลี่ยนขั้วเราใช้สะพาน H ตอนนี้ในรูปที่ 1 ด้านบนเรามีสวิตช์สี่ตัว ดังแสดงในรูปที่ 2 สำหรับมอเตอร์ที่หมุน A1 และ A2 จะปิด ด้วยเหตุนี้การไหลของกระแสผ่านยนต์จากขวาไปซ้ายตามที่แสดงใน 2 ครั้ง ส่วนหนึ่งของ figure3 สำหรับตอนนี้ให้พิจารณาว่ามอเตอร์หมุนตามทิศทางตามเข็มนาฬิกา ตอนนี้ถ้าสวิตช์ A1 และ A2 เปิดอยู่ B1 และ B2 จะปิด กระแสไฟฟ้าผ่านมอเตอร์ไหลจากซ้ายไปขวาดังแสดงใน 1 st ส่วนหนึ่งของรูปที่ 3 ทิศทางของการไหลของกระแสนี้ตรงข้ามกับทิศทางแรกดังนั้นเราจึงเห็นศักยภาพตรงกันข้ามที่ขั้วมอเตอร์กับทิศทางแรกดังนั้นมอเตอร์จึงหมุนนาฬิกาป้องกันอย่างชาญฉลาด นี่คือวิธีการทำงานของ H-BRIDGE อย่างไรก็ตามมอเตอร์กำลังต่ำสามารถขับเคลื่อนด้วย H-BRIDGE IC L293D
L293D เป็น H-BRIDGE IC ที่ออกแบบมาสำหรับการขับเคลื่อนมอเตอร์กระแสตรงที่ใช้พลังงานต่ำและแสดงในรูป IC นี้ประกอบด้วยสะพาน h สองตัวดังนั้นจึงสามารถขับเคลื่อนมอเตอร์กระแสตรงได้สองตัว ดังนั้นจึงสามารถใช้ IC นี้เพื่อขับเคลื่อนมอเตอร์ของหุ่นยนต์จากสัญญาณของไมโครคอนโทรลเลอร์
ตามที่กล่าวไว้ก่อนหน้านี้ IC มีความสามารถในการเปลี่ยนทิศทางการหมุนของมอเตอร์กระแสตรง ทำได้โดยการควบคุมระดับแรงดันไฟฟ้าที่ INPUT1 และ INPUT2
เปิดใช้งาน PIN |
ขาเข้า 1 |
ขาเข้า 2 |
ทิศทางมอเตอร์ |
สูง |
ต่ำ |
สูง |
เลี้ยวขวา |
สูง |
สูง |
ต่ำ |
เลี้ยวซ้าย |
สูง |
ต่ำ |
ต่ำ |
หยุด |
สูง |
สูง |
สูง |
หยุด |
ดังที่แสดงในรูปด้านบนสำหรับการหมุนตามเข็มนาฬิกา 2A ควรสูงและ 1A ควรต่ำ ในทำนองเดียวกันสำหรับ 1A ทวนเข็มนาฬิกาควรสูงและ 2A ควรต่ำ
ดังแสดงในรูป Arduino UNO มีช่องสัญญาณ 6PWM ดังนั้นเราจึงสามารถรับ PWM (แรงดันไฟฟ้าผันแปร) ที่หมุดหกตัวใดก็ได้ ในบทช่วยสอนนี้เราจะใช้ PIN3 เป็นเอาต์พุต PWM
ฮาร์ดแวร์: ARDUINO UNO, แหล่งจ่ายไฟ (5v), ตัวเก็บประจุ 100uF, LED, ปุ่ม (สองชิ้น), ตัวต้านทาน10KΩ (สองชิ้น)
ซอฟต์แวร์: arduino IDE (Arduino ทุกคืน)
แผนภูมิวงจรรวม
วงจรเชื่อมต่อในเขียงหั่นขนมตามแผนภาพวงจรที่แสดงด้านบน อย่างไรก็ตามสิ่งที่ต้องใส่ใจในระหว่างการเชื่อมต่อขั้ว LED แม้ว่าปุ่มจะแสดงเอฟเฟกต์การตีกลับในกรณีนี้ แต่ก็ไม่ได้ทำให้เกิดข้อผิดพลาดมากมายดังนั้นเราไม่จำเป็นต้องกังวลในครั้งนี้
PWM จาก UNO เป็นเรื่องง่ายในบางครั้งการตั้งค่าตัวควบคุม ATMEGA สำหรับสัญญาณ PWM ไม่ใช่เรื่องง่ายเราต้องกำหนดการลงทะเบียนและการตั้งค่าจำนวนมากเพื่อให้ได้สัญญาณที่ถูกต้องอย่างไรก็ตามใน ARDUINO เราไม่จำเป็นต้องจัดการกับสิ่งเหล่านั้นทั้งหมด
ตามค่าเริ่มต้นไฟล์ส่วนหัวและรีจิสเตอร์ทั้งหมดจะถูกกำหนดไว้ล่วงหน้าโดย ARDUINO IDE เราเพียงแค่ต้องเรียกมันว่ามันจะมีเอาต์พุต PWM ที่พินที่เหมาะสม
ตอนนี้เพื่อให้ได้เอาต์พุต PWM ที่พินที่เหมาะสมเราต้องทำงานสามสิ่ง
|
ก่อนอื่นเราต้องเลือกพินเอาต์พุต PWM จากหกพินหลังจากนั้นเราต้องตั้งค่าพินนั้นเป็นเอาต์พุต
ต่อไปเราต้องเปิดใช้งานคุณสมบัติ PWM ของ UNO โดยเรียกใช้ฟังก์ชัน“ analogWrite (pin, value)” ที่นี่ 'พิน' แสดงหมายเลขพินที่เราต้องการเอาต์พุต PWM ที่เราใส่ไว้เป็น '3' ดังนั้นที่ PIN3 เราจะได้รับเอาต์พุต PWM
ค่าคือรอบการทำงานของการเปิดเครื่องระหว่าง 0 (ปิดตลอดเวลา) ถึง 255 (เปิดตลอดเวลา) เราจะเพิ่มและลดจำนวนนี้ด้วยการกดปุ่ม
UNO มีความละเอียดสูงสุดที่“ 8” ซึ่งไม่สามารถไปได้ไกลกว่านี้ด้วยเหตุนี้จึงมีค่าตั้งแต่ 0-255 อย่างไรก็ตามเราสามารถลดความละเอียดของ PWM ได้โดยใช้คำสั่ง“ analogWriteResolution ()” โดยการป้อนค่าจาก 4-8 ในวงเล็บเราสามารถเปลี่ยนค่าจาก PWM สี่บิตเป็น PWM แปดบิตได้
สวิตช์คือการเปลี่ยนทิศทางการหมุนของมอเตอร์กระแสตรง