อะไรคือวิธีที่รวดเร็วและสง่างามในการสร้าง PWM โดยไม่ใช้ไมโครคอนโทรลเลอร์เพื่อควบคุมเซอร์โวมอเตอร์? ด้วยโพเทนชิออมิเตอร์หรือวิธีอื่น ๆ ในการควบคุมรอบการทำงานด้วยระยะเวลาการแก้ไข
- ขอโทษเกี่ยวกับความยุ่งเหยิงฉันต้องการควบคุมเซอร์โวงานอดิเรก
อะไรคือวิธีที่รวดเร็วและสง่างามในการสร้าง PWM โดยไม่ใช้ไมโครคอนโทรลเลอร์เพื่อควบคุมเซอร์โวมอเตอร์? ด้วยโพเทนชิออมิเตอร์หรือวิธีอื่น ๆ ในการควบคุมรอบการทำงานด้วยระยะเวลาการแก้ไข
คำตอบ:
ผมขอแนะนำให้ (หอบ!) 555 จับเวลาในโหมด คุณจะพบทุกสิ่งที่คุณต้องการในลิงค์ แต่ฉันคัดลอกมาที่นี่เพื่อคุณ!
โหมด Astable ช่วยให้คุณมีความถี่ PWM ผันแปรและอนุญาตให้ปรับรอบการทำงานได้เช่นกัน (สมการสูงและต่ำในลิงค์)
วงจร:
หมายเหตุ: ฉันจะเพิ่มฝาอิเล็กโทรไลต์ใน Vcc (ตะกั่วที่เป็นบวก) และ GND (ตะกั่วที่เป็นลบ) เพื่อลดผลกระทบของ dips ในแรงดันไฟฟ้าของแหล่งจ่ายไฟ
ความถี่ PWM:
การป้องกันสำหรับคำตอบของฉันเมื่อเทียบกับคนอื่น ๆ ในโพสต์นี้ คำตอบอื่น ๆ ส่วนใหญ่ต้องการรูปคลื่นระดับกลางเพื่อสร้างสัญญาณ PWM ที่แปรผันเช่นวิธีสามเหลี่ยมคลื่นทั่วไป / วิธีเปรียบเทียบ ฉันไม่เห็นจุดมากนักในการสร้างเครื่องกำเนิดคลื่นรูปสามเหลี่ยม (วงจรที่มีนัยสำคัญในตัวของมันเอง) เช่นเดียวกับขั้นตอนกลางในการแก้ปัญหาของคุณ
555 เป็นชิปแอนะล็อกที่ยอดเยี่ยมและทำในสิ่งที่คุณต้องการ ฉันหวังว่าผู้คนจะไม่เกลียดพวกเขามากนัก
วิธีการของ Ye Olde Phashioned ในการทำ PWM ด้วยวงจรควบคุมแบบอะนาล็อกคือการเปรียบเทียบสัญญาณควบคุมแบบอะนาล็อกกับคลื่นสามเหลี่ยม คุณสร้างเครื่องกำเนิดคลื่นสามเหลี่ยมที่ทำงานที่ความถี่ PWM ที่ต้องการ สิ่งนี้ถูกป้อนเข้ากับอินพุตลบของตัวเปรียบเทียบและสัญญาณควบคุมแบบอะนาล็อกไปยังอินพุตบวก ผลที่ได้คือเต็มสูงหรือเต็มต่ำ แต่รอบการทำงานเป็นสัดส่วนเชิงเส้นตรงกับสัญญาณควบคุม แอมป์เสียงระดับ D ชั้นต้นทำงานบนหลักการนี้เช่น
ในหลายกรณี PWM ไม่จำเป็นต้องเป็นเส้นตรงสุดดังนั้นคลื่นสามเหลี่ยมไม่จำเป็นต้องมีขอบตรงอย่างสมบูรณ์ ทำให้พวกเขาเป็นเลขชี้กำลังเพียงเล็กน้อยสามารถทำให้วงจรง่ายขึ้น
Mark Rages ชี้ให้เห็นว่าเมื่อคุณพูดว่า "servo motor" คุณอาจหมายถึงมอเตอร์อดิเรกที่ควบคุมตำแหน่งที่ใช้กับเครื่องบินจำลองและสิ่งที่คล้ายกัน คำตอบของฉันใช้กับการควบคุมมอเตอร์โดยสมมติว่าคุณมีแรงดันไฟฟ้าแบบอะนาล็อกตามสัดส่วนกับความยากในการขับเคลื่อนมอเตอร์ มันใช้ไม่ได้กับ "servos งานอดิเรก" เหล่านี้ สิ่งเหล่านั้นไม่ได้ถูกควบคุมโดย PWM ในแง่สามัญสำนึกของคำนั้น แต่ด้วยความกว้างของพัลส์ที่โดยทั่วไปแล้วจะต้องมีขนาดตั้งแต่ 1 ถึง 2 ms ทำซ้ำทุก ๆ 20 ถึง 50 มิลลิวินาทีหรือมากกว่านั้น หากคำถามนี้เกี่ยวกับเซอร์โวงานอดิเรกจริง ๆ ควรแก้ไขให้ชัดเจน
คลื่นสามเหลี่ยม เปรียบเทียบ เกณฑ์การควบคุม นั่นเป็นวิธีพื้นฐานในการทำ
หากคุณต้องการควบคุมเซอร์โวงานอดิเรกอย่างไรก็ตามนี่ไม่ใช่วิธีที่ดีที่สุด วัฏจักรหน้าที่แตกต่างกันไประหว่าง 5% ถึง 10% (ความกว้างพัลส์ 1ms ถึง 2ms ในระยะเวลา 20ms) ซึ่งสั้นและเป็นไปได้มากว่าคุณต้องการควบคุมด้วยความแม่นยำ บน 5V
เริ่มแรกสร้างคลื่นสี่เหลี่ยมที่ 50Hz วิธีที่ง่ายที่สุด:
เวลาเข้า
ในการรับความกว้างพัลส์ที่แตกต่างกันระหว่าง 1ms ถึง 2ms คุณต้องใช้ C = 100nF และ R = 10k
ฉันสามารถทำได้ด้วยสอง LM555 แต่ฉันต้องการส่วนประกอบภายนอกเพิ่มเติม
แก้ไข (เกี่ยวกับไมโครคอนโทรลเลอร์)
ฉันเห็นด้วยกับแลง (ดูความคิดเห็น) ว่าการยกเว้นไมโครคอนโทรลเลอร์เป็นสายตาสั้น (Olin กล่าวว่า "โง่") มีเวลาที่การพัฒนาไมโครคอนโทรลเลอร์มีความซับซ้อน แต่วันนี้มันไม่เป็นความจริงอีกต่อไป นอกจากนี้คุณยังสามารถมีอินเทอร์เฟซการเขียนโปรแกรมสำหรับยูโรสองสาม วิธีแก้ปัญหานั้นจะดูง่ายจนไม่มีวิธีแก้ปัญหาที่ไม่ใช่ตัวควบคุมที่สามารถแข่งขันได้: คุณใช้ATTiny5 (Olin ใช้ PIC10F220) ใน SOT23-6 เชื่อมต่อตัวเก็บประจุตัวแยกสัญญาณกับการเชื่อมต่อพลังงานและโพเทนมิเตอร์กับอินพุต ADC แค่นั้นแหละ! ส่วนประกอบ 3 (สาม) การแปลงการอ่าน ADC ไปยังเอาต์พุตความกว้างพัลส์นั้นง่ายมากจนเกือบไร้สาระแม้แต่สำหรับโปรแกรมเมอร์เริ่มต้น
เมื่อคุณเริ่มต้นใช้งานพวกเขาแล้วคุณจะพบว่าไมโครคอนโทรลเลอร์มักจะเสนอวิธีแก้ปัญหาที่ง่ายและยืดหยุ่นมากขึ้นกว่าไอซีอื่น ๆ หรือส่วนประกอบแยก
บันทึก
จากคำถามอื่นของคุณฉันเห็นว่าคุณทำใช้ไมโครคอนโทรลเลอร์ ทำไมคุณต้องการหลีกเลี่ยงพวกเขาที่นี่?
วิธีที่ง่ายที่สุดในการสร้างสัญญาณ PWM คือการป้อนคลื่นฟันเลื่อยหรือคลื่นสามเหลี่ยมลงในอินพุตหนึ่งของตัวเปรียบเทียบแบบอะนาล็อกและแรงดันไฟฟ้าควบคุมในอีกอันหนึ่ง หากไม่มีคลื่นสามเหลี่ยมบริสุทธิ์อันใดอันหนึ่งอาจประมาณหนึ่งคลื่นได้โดยการส่งคลื่นสี่เหลี่ยมผ่านตัวกรอง RC เพื่อให้เอาท์พุทของตัวกรองเหวี่ยงระหว่างประมาณ 1 / 4VDD และ 3 / 4VDD จากนั้นปรับแรงดันไฟฟ้าควบคุมไป เข้าไปในตัวเปรียบเทียบเพื่อให้แรงดันไฟฟ้าควบคุมที่ควรทำหน้าที่ 0.01% รอบการทำงานจะถูกแปลเป็นแรงดันไฟฟ้าต่ำสุดของคลื่นสี่เหลี่ยมที่กรองและแรงดันไฟฟ้าควบคุมที่ควรให้ค่ารอบการทำงาน 99.99% จะถูกแปลเป็นแรงดันสูงสุดของตัวกรอง คลื่นสี่เหลี่ยม สิ่งนี้จะให้ความกว้างของพัลส์ที่ไม่ได้เป็นสัดส่วนเชิงเส้นกับแอมพลิจูด แต่ใกล้พอสำหรับหลาย ๆ วัตถุประสงค์
ผมขอแนะนำให้ใช้แรงดันต่ำ (BiCMOS) การควบคุมแหล่งจ่ายไฟ IC เช่นUCC3803 ความถี่ในการทำงานสามารถตั้งค่าได้ง่ายด้วย R และ C ที่ง่ายและการควบคุมรอบการทำงานทำได้ง่ายด้วยโพเทนชิออมิเตอร์ มันจะทำงานบนราง 5V
UCC3803 สามารถใช้งานร่วมกับพินกับชุดควบคุม PWM ของ UCx84x ได้ หากคุณต้องการทำ PWM อย่างง่ายคุณสามารถใช้วงจรข้างต้นโดยไม่ใช้ R1, 2N2222 และ ISENSE 5k ปรับหม้อ (เพียงผูกขา 3 กับพื้น) คุณยังสามารถละเว้นตัวต้านทาน 4.7k สองตัวในซีรีส์ที่มีแอมป์ปรับข้อผิดพลาดและไปที่ Vref และ Gnd โดยตรงหรือใช้ตัวแบ่งแรงดันไฟฟ้าที่ชัดเจนหากไม่จำเป็นต้องทำการปรับ (คุณไม่ได้ระบุหากคุณต้องการเปลี่ยนรอบการทำงานอย่างง่ายดาย)
IC มีความสามารถในการขับขี่ประมาณ 1A ของกระแสไฟฟ้า (ถ้าเซอร์โวมอเตอร์ของคุณมีอินพุต PWM นี่เป็นจุดที่สงสัย)