ตัวควบคุม PWM แรงดันต่ำบนไมโครคอนโทรลเลอร์พร้อมตัวบ่งชี้ ตัวควบคุมกำลังบนไมโครคอนโทรลเลอร์ ATtiny2313 - ตัวควบคุมกำลัง - แหล่งจ่ายไฟ
สวัสดีผู้อ่าน Muska ทุกคน!
ต้องขอบคุณเว็บไซต์ที่ยอดเยี่ยมนี้ ทำให้ฉันได้รับสิ่งที่มีประโยชน์และความรู้มากมาย และในการตอบสนอง ฉันจึงตัดสินใจเขียนรายงานฉบับแรกเกี่ยวกับอุปกรณ์ที่พัฒนาขึ้นใหม่ ในระหว่างการพัฒนาอุปกรณ์ ฉันพบปัญหาหลายประการและแก้ไขได้สำเร็จ บางทีคำอธิบายของโซลูชันบางอย่างอาจช่วยเพื่อนร่วมงานมือใหม่บางคนในความคิดสร้างสรรค์ของพวกเขาได้
ในการผลิตแผงวงจรพิมพ์ ฉันได้ซื้อสว่านขนาดเล็กและขาตั้งมาเพื่อเปลี่ยนสว่านให้เป็นเครื่องเจาะขนาดเล็ก ความจำเป็นในการดำเนินการนี้เกิดขึ้นหลังจากใช้สว่านหักขนาด 0.5-1 มม. จำนวนหนึ่งกับไขควงและเดรเมลของจีน แต่เมื่อปรากฎว่าเครื่องมือดังกล่าวเป็นไปไม่ได้หากไม่มีตัวควบคุมความเร็ว ผู้ควบคุมกฎตัดสินใจทำเองโดยได้รับความรู้ใหม่ไปพร้อมกัน
ฉันมีประสบการณ์วิทยุสมัครเล่นเพียงเล็กน้อย เมื่อตอนเป็นเด็ก โดยใช้หนังสือของ Borisov ฉันประกอบเครื่องรับและไฟเลี้ยวหลายตัวโดยใช้เครื่องมัลติไวเบรเตอร์ จากนั้นก็มีงานอดิเรกและกิจกรรมอื่นๆ ตามมา
และโดยบังเอิญ ฉันสังเกตเห็น Arduino ซึ่งเป็นโมเดลจำลองสถานีตรวจอากาศและหุ่นยนต์ที่มีชื่อเสียง และฉันต้องการทำให้ทุกสิ่งที่ฉันสามารถทำได้โดยอัตโนมัติ โดยใช้ไมโครคอนโทรลเลอร์ ขนาดของคอนโทรลเลอร์เรียงตามลำดับขนาดและความง่ายในการบูรณาการจากมากไปน้อย - Arduino UNO, Arduino Pro Mini จากนั้นเป็น ATMega328P จำนวนหนึ่ง และสำหรับอุปกรณ์ที่เล็กที่สุดและง่ายที่สุด ฉันซื้อ ATtiny85
ฉันซื้อ Tinkies มากว่าปีที่แล้วแล้ว พวกมันก็นั่งรอถึงตาของมัน
สั่งซื้อภาพหน้าจอ
(มีการสั่งหดด้วยความร้อนด้วยดังนั้นราคารวมจึงสูงกว่า)
เอ็มเคมาถึงตามปกติโดยใส่ถุงกันกระแทกเด็ก โดยมารวมกันเป็นกลุ่มในถุงพลาสติกแยก มันคงจะดีกว่านี้แน่นอนในกล่องแข็งหรือโฟม แต่ถึงอย่างนั้นก็ไม่มีอะไรงอและทุกอย่างทำงานได้
ตอนแรกฉันบัดกรีวงจรบนเขียงหั่นขนม แต่หลังจากอ่านเกี่ยวกับ LUT แล้วฉันก็รู้ว่าการประกอบทุกอย่างบนแผงวงจรพิมพ์ปกติค่อนข้างเป็นไปได้และสะดวกกว่ามาก
ฉันยังเริ่มรวบรวมเครื่องมือที่มีประโยชน์อย่างค่อยเป็นค่อยไป เช่น MD-3 microdrill พร้อมหัวจับคอลเล็ตและเครื่องเจาะรูขนาดเล็ก แน่นอนว่าเป็นไปได้ที่จะซื้อเฉพาะปลอกรัดและเลือกเครื่องยนต์จากที่ไหนสักแห่ง แต่ฉันตัดสินใจซื้อแบบสำเร็จรูปที่ร้านค้าในพื้นที่
เราพิมพ์การออกแบบด้วยเลเซอร์บนกระดาษภาพถ่าย Lomond ผิวมันสำหรับการพิมพ์อิงค์เจ็ท แต่การใส่กระดาษที่ไม่ได้ตั้งใจลงในเครื่องพิมพ์ใหม่นั้นน่ากลัว ฉันพบคำเตือนทางออนไลน์ว่ากระดาษอิงค์เจ็ทที่เคลือบมันอาจละลาย ติดเตา และทำให้เครื่องพิมพ์เสียหายได้ เพื่อให้แน่ใจว่าฉันทำการทดลอง - ฉันรีดหัวแร้งที่ให้ความร้อนถึง 200C บนพื้นผิวของกระดาษนี้ (ฉันไม่เคยพบอุณหภูมิที่แน่นอนของเตา แต่ประมาณนั้น) กระดาษบิดเบี้ยวเล็กน้อย แต่ไม่มีอะไรละลายหรือติดอยู่ - ซึ่งหมายความว่าสามารถใช้ในเครื่องพิมพ์ได้
ฉันรีดภาพวาดลงบนกระดานแล้วล้างกระดาษออก รูปแบบของตัวนำคุณภาพสูงมากและชั้นกระดาษมันที่ติดอยู่ยังคงอยู่บนกระดาน ผู้เขียนเทคโนโลยีแนะนำให้ถอดมันออกด้วยเทปพันสายไฟที่มีความเหนียวเล็กน้อย แต่ไม่ว่าฉันจะพยายามแค่ไหน ความเงาก็ไม่ถูกเอาออกเลย หรือตัวนำหลุดออกมาตามไปด้วย คำจารึกก็ถูกถ่ายโอนไปยังเทปไฟฟ้าทันที เมื่อต้องทนทุกข์ทรมานฉันก็เอาสว่านและเการะหว่างตัวนำเพื่อดึงความเงาเกือบทั้งหมดออก เรื่องนี้ละเอียดอ่อนและน่าเบื่อคุณต้องคิดอะไรบางอย่างขึ้นมา จากนั้นเมื่อสร้างกระดานที่สองและสามฉันมองหาวิธีที่จะกำจัดความมันเงาที่น่ารังเกียจ แต่การพิมพ์ทั้งบนหน้านิตยสารหรือบนกระดาษที่มีกาวในตัวไม่ได้ให้คุณภาพของการวาดภาพ เบลอหรือหลุด แต่ฉันรู้ว่าไม่จำเป็นต้องทำความสะอาดความมันของกระดาษภาพถ่ายให้เป็นศูนย์ - ก็เพียงพอแล้วที่จะเกาอย่างน้อยเล็กน้อยระหว่างรางเพื่อเข้าถึงสารละลายของทองแดงและในบางสถานที่ก็ถูกแกะสลักโดยไม่มีรอยขีดข่วนผ่าน ความมันวาว
ฉันตัดสินใจกัดทองแดงด้วยสารละลายไฮโดรเจนเปอร์ออกไซด์และกรดซิตริกซึ่งเป็นองค์ประกอบที่เข้าถึงได้มากที่สุด สามารถดูตัวเลือกทางเคมีที่เป็นไปได้สำหรับการกัดด้วยการคำนวณได้ที่นี่
ฉันเอาเปอร์ออกไซด์จากชุดปฐมพยาบาลซื้อมาเมื่อ 3 ปีที่แล้ว วันหมดอายุประมาณ 2 ปี ฉันคิดว่ามันหมดไปแล้วใช้งานไม่ได้เลย อย่างไรก็ตาม ฉันคิดผิด กระดานถูกแกะสลักอย่างรวดเร็ว - ในเวลาประมาณสามนาที นี่คือผลลัพธ์:
แทร็กหนึ่งได้รับความทุกข์ทรมานจากรอยขีดข่วนด้วยสว่าน แต่ได้รับการบูรณะโดยการกัดตะกั่วของตัวต้านทาน แถมรูเล็กๆจากการลองใช้เทปพันสายไฟ ฉันจำเป็นต้องได้ปากกามาร์กเกอร์ที่เหมาะสม แต่ในระหว่างนี้ ให้ทาวานิชทุกครั้งที่ทำได้
ฉันกระป๋องบอร์ดด้วยหัวแร้งโดยใช้เปีย บัดกรีชิ้นส่วน
ขาตั้งทองเหลืองทรงสูงที่ขันเกลียวเข้าหากันทั้งสองด้านของบอร์ดผ่านรูสำหรับติดตั้งเป็นสิ่งที่สะดวก คุณสามารถวางบอร์ดโดยไม่ต้องมีเคสทั้งสองด้านบนโต๊ะระหว่างการติดตั้งและแก้ไขจุดบกพร่องโดยไม่ต้องกลัวว่าจะบุบหรือลัดวงจร
ส่วนที่ต้องใช้แรงงานมากที่สุดคือการรวบรวมข้อมูลและประสานเอาต์พุต LED ที่ด้านตัวนำ ฉันตัดสินใจใช้ด้านบัดกรีเป็นด้านหน้า เพราะ... ความสูงของชิ้นส่วนนั้นเล็กกว่ามากและการส่งผ่านเพลาตัวต้านทานแบบแปรผันผ่านบอร์ดจะลดความยาวให้เหลือตามความยาวที่ต้องการ
ฉันไม่ได้บัดกรีตัวเก็บประจุ C2 ในแผนภาพที่เชื่อมต่อกับการรีเซ็ตเพราะว่า แม้ว่าจะเพิ่มความน่าเชื่อถือในการสตาร์ทอุปกรณ์ แต่ก็สามารถรบกวนการกระพริบของ MK ได้
ไมโครคอนโทรลเลอร์ถูกบัดกรีครั้งสุดท้าย หลังจากเชื่อมต่อบอร์ดเข้ากับแหล่งจ่ายไฟ และตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดไหม้ในทันที และตัวปรับเสถียรจะจ่ายไฟมาตรฐาน 5V ไม่มีอะไรเริ่มสูบบุหรี่ ดังนั้นเราจึงเชื่อมต่อโปรแกรมเมอร์เข้ากับพิน ICSP และอัปโหลดเฟิร์มแวร์ทดสอบ
เราจะเขียนเฟิร์มแวร์สำหรับอุปกรณ์ในสภาพแวดล้อมการเขียนโปรแกรม Arduino ซึ่งหลายคนคุ้นเคย หลังจากเพิ่มการรองรับไมโครคอนโทรลเลอร์ ATtiny แล้ว ดาวน์โหลดและแตกไฟล์ลงในโฟลเดอร์ Arduino/ฮาร์ดแวร์
แบบร่างการทดสอบ (ฉันไม่เห็นว่ามีประโยชน์ในการนำเสนอ) เพียงแค่อ่านสถานะของสัญญาณอินพุตและแสดงสัญญาณเหล่านั้นบนเอาต์พุตที่มีอยู่ด้วย LED ที่เชื่อมต่ออยู่ เพราะ เรามีช่องอินพุต 4 ช่อง แต่มีเพียง 2 ช่องเอาต์พุตเท่านั้น ดังนั้นเราจึงต้องตรวจสอบในหลายขั้นตอน
ทุกอย่างทำงานตามที่คาดไว้ ยกเว้นสิ่งหนึ่ง - ปุ่มที่เชื่อมต่อกับช่องเดียวกันโดยมีไฟ LED สีเขียวไม่สามารถอ่านได้ และไฟ LED ก็สว่างกว่าสีแดงอย่างเห็นได้ชัด การวัดโดยผู้ทดสอบแสดงให้เห็นว่าในสถานะ PB0 มีกระแสไฟมากกว่า 20mA ไหลผ่าน LED เป็นเอาต์พุต และมีกระแสไฟตกเพียง 2.1V เท่านั้น และในสถานะอินพุตที่มีการดึงขึ้นภายในที่ขา จะมีไฟเพียง 1.74V เมื่อปล่อยปุ่ม และ 0.6V เมื่อกดปุ่ม ไม่น่าแปลกใจที่อ่าน 0 อย่างต่อเนื่อง ไฟ LED สีเขียวแรงดันต่ำโดยไม่เรืองแสงแม้แต่จะระบายแรงดันไฟฟ้าที่ขาเมื่อกระแสไมโครแอมแปร์ไหล ตอนนี้เป็นที่ชัดเจนแล้วว่าเหตุใด LED 2 ดวงจึงเชื่อมต่อเป็นอนุกรมในบทความต้นฉบับ
แต่การใส่ LED ตัวที่สองเพื่อให้ส่องภายในกล่องอย่างโง่เขลาเหมือนบัลลาสต์ (และคุณไม่จำเป็นต้องมี 2 อันที่เหมือนกันบนแผงด้านหน้าด้วย) ดูเหมือนจะเป็นวิธีแก้ปัญหาที่ค่อนข้างคดเคี้ยว ฉันคิดว่าฉันจะเพิ่มแรงดันไฟฟ้าในวงจร LED ได้อย่างไรและจำลักษณะแรงดันไฟฟ้าปัจจุบันของซีเนอร์ไดโอดได้ หากเราเชื่อมต่อซีเนอร์ไดโอด 2V แบบอนุกรมโดยมี LED อยู่ตรงข้าม (เพื่อให้ทำงานได้ตามปกติบนสาขาย้อนกลับของคุณสมบัติแรงดันไฟฟ้าปัจจุบัน) เราก็จะได้สิ่งที่เราต้องการอย่างแน่นอน เมื่อไฟ LED สว่างขึ้นที่กระแส 10 mA ซีเนอร์ไดโอดจะทะลุผ่านและไม่รบกวนการไหลของกระแส แต่จะรักษาแรงดันไฟฟ้าที่ตกคร่อมให้คงที่ในระดับที่กำหนดเท่านั้น คุณเพียงแค่ต้องเปลี่ยนตัวต้านทาน จำกัด กระแสบนพื้นฐานที่คุณต้องระงับแรงดันไฟฟ้า Ures = 5V-2.1V-2.0V = 0.9V x 10mA เช่น R=90 โอห์ม และเมื่อขาถูกสลับไปที่อินพุตด้วยการดึงขึ้น - เนื่องจากความชันของกิ่งลักษณะ I-V จนกระทั่งการแยกทางแยก ซีเนอร์ไดโอดจึงเทียบเท่ากับตัวต้านทานความต้านทานสูงและจะลดลงประมาณ 2V อีกครั้ง เพิ่มแรงดันไฟที่ขา MK เมื่อปล่อยปุ่มเป็น 4V ซึ่งอ่านว่า TRUE แล้ว เมื่อคุณกดปุ่มขาจะถูกดึงไปที่ 5V โดยตัวต้านทานภายในที่มีความต้านทานประมาณ 40KOhm (ตามการคำนวณของฉัน) และไปที่กราวด์โดยตัวต้านทาน 5KOhm (ซึ่งจะข้ามวงจร LED) เช่น จะมีค่า 0.6V เท่ากันและถือเป็น FALSE
ฉันบัดกรีซีเนอร์ไดโอดแบบอนุกรมกับตัวต้านทานและปุ่มก็ทำงานได้ตามปกติ
ตอนนี้ถึงคราวที่ต้องตรวจสอบการทำงานของ PWM แล้วปัญหาก็เกิดขึ้นที่นี่เช่นกัน คำสั่ง Arduino มาตรฐาน AnalogWrite(leg, fill) ไม่ต้องการทำงาน ซึ่งหมายความว่ามีบางอย่างผิดปกติกับห้องสมุดวัยรุ่น การดูเอกสารข้อมูลใน MK และอินเทอร์เน็ตมีประโยชน์
มันน่าสนใจ:
- สามารถเอาต์พุตช่องสัญญาณ PWM 2 ช่อง (OC0A, OC0B) ไปยังพิน 5, 6 (PB0, PB1) โดยแต่ละช่องทำงานด้วยการตั้งค่าการเติมของตัวเอง (แต่ความถี่เดียวกัน) จากตัวจับเวลา 0
- ช่องสัญญาณ PWM ที่สามที่ทำงานจากตัวจับเวลา 1 สามารถส่งออกไปยังพิน 2, 3 (PB3, PB4) และสัญญาณ PWM โดยตรง (OC1B) สามารถส่งออกไปที่ขา 3 และเวอร์ชันผกผัน (/OC1B) สามารถส่งออกไปที่ ขา 2 แต่ผลลัพธ์จะไปที่ขาที่ 3 เท่านั้นหรือทั้งสองอย่างพร้อมกัน แต่เราต้องการ PWM ที่ขา 2 อย่างน้อยก็กลับด้าน (เรากลับด้านในซอฟต์แวร์) ดังนั้นเราจะต้องกำหนดค่าเอาต์พุตที่ขา 2 และ 3 และสัญญาณจะไม่ผ่านไปยังขา 3 เพียงเพราะว่าได้รับการประกาศว่าเป็น ป้อนข้อมูล.
เท่าที่ฉันเข้าใจในแพ็คเกจสนับสนุน ATtiny สำหรับ Arduino ช่องสัญญาณ PWM จากตัวจับเวลา 1 สามารถส่งออกไปที่ขา 3 เท่านั้น เห็นได้ชัดว่าเอาต์พุตของเวอร์ชันผกผันถือว่าไม่จำเป็น คุณจะต้องกำหนดค่าตัวจับเวลาและ PWM ด้วยตัวเอง (ดูโค้ดฟังก์ชัน PWM3_init) แทนที่จะใช้ AnalogWrite
ฉันยังสังเกตเห็นด้วยว่าเมื่อรีเซ็ต Timer 1 การทำงานของฟังก์ชัน millis() จะหยุดชะงัก - ปรากฎว่า Timer 1 ถูกใช้เป็นค่าเริ่มต้นสำหรับนาฬิกาภายใน แต่คุณสามารถรีเซ็ตเวลาเป็น Timer 0 ได้โดยใช้คำจำกัดความมาโครใน ไฟล์ Arduino\hardware\tiny\cores\tiny\core_build_options
/* ด้วยเหตุผลหลายประการ Timer 1 เป็นตัวเลือกที่ดีกว่าสำหรับตัวจับเวลาเป็นมิลลิวินาทีบนโปรเซสเซอร์ "85 */ #define TIMER_TO_USE_FOR_MILLIS 0
นี่คือสิ่งที่เราจะใช้ เนื่องจาก Timer 0 ในโปรเจ็กต์นี้ไม่มีค่าใช้จ่ายใดๆ ทั้งสิ้น
ยังมีคำถามเกิดขึ้นเกี่ยวกับช่วงการตั้งค่าความเร็วที่อ่านจากตัวต้านทานแบบปรับค่าได้ ผู้เขียนวงจรดั้งเดิมได้เพิ่มตัวต้านทานคงที่ 36K อนุกรมพร้อมกับตัวแปร 10K เพื่อให้โค้ด ADC พอดีกับช่วง 0-255 ในความเป็นจริงมันกลายเป็น 0-230 และค่าสูงสุดลอยตัว แต่ฉันต้องการให้ 0-255 ตรงกับการตั้งค่าเต็มสเกลด้วย PWM 8 บิต ในการทำเช่นนี้ฉันได้ลบแรงดันไฟฟ้าคงที่ออกแล้วแทนที่ด้วยจัมเปอร์ที่ +5V ADC เริ่มอ่านช่วงทั้งหมดและบิตที่มีนัยสำคัญน้อยที่สุด 4 บิตถูกยกเลิกโดยทางโปรแกรม และเหตุใดจึงต้องมีรายละเอียดเพิ่มเติม?
หลังจากทดสอบช่องอินพุต/เอาท์พุต เราจะโหลดเฟิร์มแวร์การต่อสู้ลงในไมโครคอนโทรลเลอร์ ซึ่งเขียนด้วยภาษา C ในสภาพแวดล้อม Arduino ตามซอร์สโค้ด BASIC ของผู้สร้างวงจรดั้งเดิม
ข้อความโปรแกรม
// Attiny85 ที่ 1MHz // อย่าลืมตั้งเวลา 0 สำหรับมิลลิวินาที ฯลฯ ! // Arduino\hardware\tiny\cores\tiny\core_build_options.h -> TIMER_TO_USE_FOR_MILLIS 0 #include
เราเชื่อมต่อตัวต้านทาน 5 วัตต์ 2.2 โอห์มแบบแบ่ง เพื่อป้องกันวงจรจากแรงดันไฟกระชากแบบเหนี่ยวนำที่ขอบท้ายของ PWM เราเชื่อมต่อไดโอด Schottky SS34 ขนานกับมอเตอร์ และเพื่อระงับสัญญาณรบกวนจากสวิตช์ที่คดเคี้ยว เราเชื่อมต่อตัวเก็บประจุ 100nF และเราเริ่มการทดสอบการควบคุมมอเตอร์สว่าน
เสียงหอนจนฟันของ PWM ที่ 4KHz (1MHz/256) สังเกตเห็นได้ชัดทันที เราเพิ่มการตั้งค่าตัวแบ่ง /4 - รู้สึกดีขึ้นทันทีแม้ว่าเสียงแหลมจะไม่หายไป แต่ด้วยเหตุผลบางอย่าง 1KHz จึงทนได้ง่ายกว่ามากแม้จะใช้งานเป็นเวลานานก็ตาม
ในโหมดแมนนวล ความเร็วของมอเตอร์ปกติจะถูกควบคุมตั้งแต่ 0-100% แต่ในวงจรป้อนกลับ ADC อัตโนมัติ มันจะอ่านค่า MAX เสมอและไม่มีอะไรทำงาน ระหว่างทางฉันสังเกตเห็นว่าบอร์ดส่งเสียงบี๊บดังแม้จะปิดมอเตอร์แล้วก็ตาม อะไรนะ?
เรานำผู้ทดสอบ ขุดออสซิลโลสโคปออกมา และเริ่มศึกษาสิ่งที่เราส่งออกและสิ่งที่เราได้รับ และเราก็อ้าปากค้าง ในการสับเปลี่ยน แทนที่จะเป็นคลื่นเบาๆ ของกระแสผ่านการเหนี่ยวนำ ที่จุดเริ่มต้นของพัลส์ PWM เราจะเห็นเข็มขนาดสิบโวลต์ ซึ่งหมายความว่ากระแสพัลส์หลายสิบแอมแปร์ไหลผ่านการสับเปลี่ยน! และถึงแม้จะดับเครื่องยนต์แล้วก็ตาม ไม่น่าแปลกใจที่บอร์ดดังขึ้น แต่อะไรจะทำให้วงจรสมบูรณ์โดยไม่มีเครื่องยนต์? ตัวเก็บประจุขนาดเล็ก 100nF! มันสามารถและจะระงับการรบกวนเมื่อเปลี่ยนขดลวด แต่สำหรับตอนนี้จะจัดให้มีการลัดวงจรระยะสั้นในแต่ละช่วง PWM! สรุป - ตัวเก็บประจุลดเสียงรบกวนเข้ากันไม่ได้กับการควบคุม PWM และการควบคุมโดยใช้ shunt ต้องถอดออก
จากนั้นฉันก็รู้ว่าไฟกระชากแรงดันสูงเหล่านี้ไปเกือบจะตรงไปยัง ADC ของ tinka (เนื่องจากมีเครื่องตรวจจับแอมพลิจูดตัวเก็บประจุที่ขาจะถูกชาร์จด้วยแรงดันไฟฟ้าสูงสุดในเข็มและเก็บไว้อย่างปลอดภัยเนื่องจาก การคายประจุทำได้โดยการรั่วของไดโอดเท่านั้น) ทิงก้าดูเหมือนจะยังไม่ตาย แต่ขาของเธอเป็นอะไรไปล่ะ? อุปกรณ์แสดงแรงดันคงที่ที่ขา 5.2V สูงกว่าแรงดันไฟจ่าย แต่ที่เหลือไปไหน? เราจำได้ว่า - ในการต่อสู้กับแรงดันไฟฟ้าเกิน เราได้ฝึกไดโอดบนแหล่งจ่ายไฟ "+" และ "-" เป็นพิเศษ ซึ่งจะทำให้กระแสไฟส่วนเกินไหลเข้าสู่แหล่งจ่ายไฟ แต่ไดโอดในตัวนั้นอ่อนแอและคุณไม่ควรพึ่งพามันมากนัก
เราถอดตัวเก็บประจุเจ้ากรรมออกวัดแรงดันไฟฟ้าด้วยเท้าของเรา - ใช้งานได้! ไมโครคอนโทรลเลอร์ที่เชื่อถือได้ผลิตโดย Atmel! เห็นได้ชัดว่าความจุของตัวเก็บประจุต่ำช่วยให้ประจุไฟฟ้าไหลผ่านได้เล็กน้อย
หากไม่มีตัวเก็บประจุ เข็มก็หายไป บอร์ดหยุดเล่นเพลง ดูเหมือนว่าขาจะวัดแอมพลิจูดของกระแสพัลส์ PWM จริงๆ เราเริ่มขั้นตอนการตั้งค่าและพยายามเจาะ ดูเหมือนทุกอย่างจะเป็นอย่างที่ควรจะเป็น - เมื่ออยู่ในโหลดจะเพิ่มความเร็ว เมื่อสว่านหลุดออกมาจะรีเซ็ต แต่ไม่เพียงเท่านั้น - หลาย ๆ ครั้งต่อนาทีมันจะเร่งความเร็วและลดความเร็วลงตามธรรมชาติโดยไม่มีภาระ ยังไม่ชัดเจนว่าทำไม เครื่องมือจึงไม่แสดงอะไรเลย ไม่ว่าขาจะไหม้ หรือความจุของสายไฟทำให้เกิดเข็มที่มองไม่เห็นเหมือนกับคอนเดอร์ หรือการรบกวนมาจากตัวสะสมตัวเดียวกัน
ที่นี่ฉันตัดสินใจที่จะจัดการกับปัญหาอย่างรุนแรง เพราะฉันสังเกตเห็นว่าไม่มีวงจรอื่นใดที่ใช้ตัวตรวจจับจุดสูงสุด ในทางตรงกันข้ามค่าอินทิกรัลของกระแสที่ส่งผ่านตัวกรอง RC จะถูกควบคุมทุกที่ และการวัดดังกล่าวไม่มีความไวต่อการรบกวนในรูปแบบของการปล่อยก๊าซเดี่ยวอย่างแม่นยำ เราแทนที่ไดโอดด้วยตัวต้านทาน - และเครื่องตรวจจับแอมพลิจูดจะเปลี่ยนเป็นฟิลเตอร์ความถี่ต่ำผ่าน
แรงดันไฟฟ้าที่เปลี่ยนโดย ADC ลดลงทันทีตามลำดับความสำคัญ - แรงดันไฟฟ้าที่มีประสิทธิภาพจะต่ำกว่าแอมพลิจูดมากในกรณีของสัญญาณในรูปแบบของคลื่นแบนโดยมีการหยุดชั่วคราวระหว่างกัน เราต้องจับแรงดันไฟฟ้าประมาณ 0.2 V แน่นอนว่าคุณสามารถเพิ่มความต้านทานของสับเปลี่ยนได้ แต่เราใช้ PWM เพื่อให้ความร้อนในบรรยากาศหรือไม่? และด้วยการเติมและโหลด PWM ขนาดใหญ่บนมอเตอร์ คุณจึงสามารถรับแรงดันไฟฟ้าเกินได้ ดังนั้นคุณจะต้องทำงานกับ U ที่ไม่ได้ใช้งานต่ำ
ดูเหมือนว่าการตอบสนองต่อการโหลดจะช้าลงเช่นกัน การเร่งความเร็วเริ่มต้นในเวลาประมาณครึ่งวินาที แต่ฉันไม่เห็นปัญหาใหญ่ในเรื่องนี้ - สว่านจะจัดแนวและผ่านทองแดงด้วยความเร็วต่ำ และไม่มีการเริ่มต้นที่ผิดพลาดอีกต่อไป คุณสามารถทำงานได้
แผนภาพอุปกรณ์สุดท้าย:
อุปกรณ์ถูกติดตั้งในตัวเครื่อง ซึ่งมีบทบาทในการติดตั้งระบบไฟฟ้าแบบปิดผนึก “กล่องรวมสัญญาณพลาสติก Tuso ที่ไม่มีซีล 120x80x50 มม., IP55 สีเทา 67052 Ruvinil Russia” ฉันต้องการหาอันที่เรียบกว่านี้ แต่ไม่พบอะไรที่เหมือนกับ 110*60*30 เพื่อไม่ให้มาลัยอยู่บนโต๊ะ ฉันจึงบิดตัวควบคุมที่มีแหล่งจ่ายไฟเป็นอันเดียว อิฐนั้นดูดีมาก แต่เราไม่สามารถพกพามันไปในกระเป๋าของเราได้ และถึงแม้ว่าหลังจากเจาะรูไปสองสามรู แต่ไม่มีความร้อนที่สังเกตเห็นได้ชัดเจนของสวิตช์คีย์ฟิลด์ การแบ่งส่วนและตัวกันโคลงเมื่อสัมผัส ฉันก็เจาะช่องระบายอากาศเล็กน้อยที่ผนังด้านล่างและด้านหลัง
ตั้งแต่นั้นมา เครื่องจักรที่มีตัวควบคุมได้มีส่วนร่วมในการสร้างบอร์ดเพิ่มอีก 2 แผง (คุณสามารถดูได้ว่าต้องใช้การเจาะเท่าใดตามคำว่า "AVR Fusebit Doctor" ฉันพอใจกับงานของมันมาก
ฉันต้องการทราบด้วยว่าดอกสว่านคาร์ไบด์จาก Ali มีก้านขนาด 3.2 มม. และคอลเล็ตมีเพียง 3.0 และ 3.5 - สว่านไม่พอดีกับอันหนึ่งและไม่ได้ยึดเข้ากับอีกอัน ฉันพันลวดทองแดงรอบสว่านแล้วสอดเข้าไปใน 3.5 มม. แต่มันก็ไม่สวย ถ้าใครเจอคอลเล็ต 3.2 เส้นผ่านศูนย์กลาง 6 มม. (ทุกจุดมีแต่เดรเมลเท่านั้นและกราวด์หางเหลือ 5 มม.) ช่วยบอกหน่อยค่ะ
เมื่อเปลี่ยนดอกสว่าน ต้องทำซ้ำขั้นตอนการตั้งค่าอีกครั้ง - เห็นได้ชัดว่ากระแสมอเตอร์ได้รับผลกระทบจากโมเมนต์ความเฉื่อยที่แตกต่างกันของสว่านธรรมดาแบบ "ผอม" และสว่านคาร์ไบด์ที่มีก้านหนาขึ้น แต่ทำได้รวดเร็วและไม่น่ารำคาญ ผู้ที่สนใจสามารถเพิ่มโปรไฟล์การเจาะบันทึกลงในเฟิร์มแวร์ได้ :)
ฉันพบคำแนะนำซ้ำแล้วซ้ำเล่าให้เจาะกระดานใต้ชั้นน้ำเพื่อไม่ให้หายใจเอาเศษแก้วเข้าไป ฉันไม่สามารถรับได้ การหักเหของแสงในน้ำรบกวนการวางตำแหน่งที่แม่นยำของสว่านเมื่ออยู่สูง และเกจวัดสายตาไม่อยู่ในแนวเดียวกัน และเมื่อเจาะลงไปในน้ำ ระลอกคลื่นก็เริ่มปรากฏขึ้นและมองไม่เห็นอะไรเลย จำเป็นต้องตั้งสว่านที่หยุดไว้แล้วเปิดใหม่หรือไม่? เป็นผลให้ฉันแค่วางชามน้ำไว้ข้างๆ และจุ่มกระดานเป็นระยะเพื่อให้เปียกและล้างขี้เลื่อยออกไป ในกรณีนี้ขี้เลื่อยชื้นและไม่บินโดยรวบรวมเป็นกรวยเหนือรู
และการพูดนอกเรื่องโคลงสั้น ๆ อีกครั้งเกี่ยวกับสิ่งตรึงตราขนาดเล็ก
ฉันตัดสินใจติดตั้งขั้วต่อสายไฟประเภท “DS-225, ปลั๊กไฟบนแผงควบคุม” ลงในอุปกรณ์ เพื่อยึดให้แน่น ต้องใช้สกรูและน็อตที่มีเกลียวขนาด 2.5 มม. ในตู้กับข้าวไม่มีอะไรเหมาะสม ฉันก็จำได้ว่าอีกส่วนหนึ่งต้องใช้สกรูขนาด 2 มม. ซึ่งหมายความว่าคุ้มค่าที่จะเติมชุดรัดของคุณเพื่อที่ครั้งต่อไปคุณจะได้ไม่ต้องบินไปอีกด้านหนึ่งของภูมิภาคเพื่อหาถั่ว ฉันไม่เคยเจออะไรที่เล็กกว่า M3 ในร้านฮาร์ดแวร์เลย ดังนั้นฉันจึงต้องหาร้านเฉพาะทาง
ร้านสะดวกซื้อแห่งแรกกลายเป็นร้านลูกโซ่
ข้างในดวงตาของฉันพลุ่งพล่านจากสิ่งที่มีประโยชน์ทุกประเภท แต่โชคไม่ดี - สกรูที่เล็กที่สุดมีความยาวเท่ากันเพียง M2.5 แต่ไม่มีน็อตและแหวนรองสำหรับพวกมัน! ฉันประทับใจกับการขายถั่วแยกกันในราคา 2 รูเบิลต่อชิ้นและการเททุกสิ่งที่ซื้อลงในถุงเสื้อยืดใบเดียว (ไม่มีถุงเล็กสำหรับขนาดที่แตกต่างกัน) ขอย้ำอีกครั้งว่าการซื้อขนาดต่างๆ ไว้จะมีราคาแพง
ร้านกรูอีกแห่งมาช่วยเหลือ -
ที่นี่มีทุกอย่างในสต็อก ตั้งแต่ M1.6 ที่มีช่องและหัวที่แตกต่างกัน ขายเป็นชิ้นและตามน้ำหนัก และในราคาที่ต่ำกว่าคู่แข่งรายก่อนๆ คุณเพียงแค่ต้องไปที่ร้านโกดังบนถนน Plekhanov ไม่เช่นนั้นฉันจะไปที่ร้านใกล้สถานีรถไฟใต้ดิน Perovo ก่อนและรู้สึกประหลาดใจมากกับราคาที่ประกาศ และปรากฎว่าพวกเขามีเพียงสแตนเลสและสำหรับตัวยึดธรรมดาคุณต้องไปที่เขตอุตสาหกรรมบนแถบถ่ายโอน
มีไทริสเตอร์คลาสสิกและวงจรควบคุม triac แบบคลาสสิกจำนวนมาก แต่ตัวควบคุมนี้ถูกสร้างขึ้นบนฐานองค์ประกอบที่ทันสมัยและนอกจากนี้ยังเป็นแบบอิงเฟสเช่น ไม่ส่งแรงดันไฟหลักครึ่งคลื่นทั้งหมด แต่เพียงบางส่วนเท่านั้นจึงจำกัดกำลังเนื่องจาก triac เปิดเฉพาะที่มุมเฟสที่ต้องการเท่านั้น
เมื่อเปิดวงจรเป็นครั้งแรก ไฟแสดงส่วนจะสว่างเป็นหมายเลข 0 การเปิดและปิดทำได้โดยการกดปุ่มไมโครสวิตช์สองปุ่มพร้อมกันค้างไว้ การปรับมากหรือน้อย - โดยกดแต่ละครั้งแยกกัน หากคุณไม่กดสวิตช์สลับใด ๆ หลังจากการกดครั้งสุดท้ายหลังจากสองชั่วโมงตัวควบคุมจะปิดเองตัวบ่งชี้จะยังคงกะพริบที่ระดับการทำงานสุดท้ายของการใช้พลังงานจนกว่าจะถึงตอนนั้น
เมื่ออุปกรณ์ถูกตัดการเชื่อมต่อจากเครือข่าย ระดับพลังงานเอาต์พุตสุดท้ายจะถูกจดจำ ซึ่งจะถูกตั้งค่าโดยอัตโนมัติในครั้งถัดไปที่เปิดเครื่อง การปรับจะดำเนินการในช่วงตั้งแต่ 0 ถึง 9 จากนั้นจาก A ถึง F นั่นคือมีขั้นตอนการปรับทั้งหมด 16 ขั้นตอน
หม้อน้ำในภาพด้านบนมีขนาดค่อนข้างใหญ่ การออกแบบช่วยให้มีตัวเลือกที่เล็กลง แต่ฉันไม่มีอย่างอื่นเลย เมื่อฉันเปิดอุปกรณ์เป็นครั้งแรก 0 กะพริบบนหน้าจอ วงจรไม่ตอบสนองต่อการกดปุ่ม ด้วยการแทนที่ตัวเก็บประจุของแหล่งจ่ายไฟด้วยค่าเล็กน้อยที่ 1,000 uF ปัญหาก็หายไป
รูปแบบแผงวงจรพิมพ์และเฟิร์มแวร์ไมโครคอนโทรลเลอร์อยู่ในไฟล์เก็บถาวรเดียวที่ลิงก์ด้านบน
วงจรนี้ใช้เพื่อควบคุมกำลังไฟฟ้าในโหลดได้อย่างราบรื่น วิธีการควบคุมจะขึ้นอยู่กับวิธีการควบคุมเฟสของไตรแอค สาระสำคัญอยู่ที่การข้ามส่วนหนึ่งของครึ่งวงจรของแรงดันไฟหลักสลับ กระแสที่เข้าสู่โหลดจะเป็นสัดส่วนกับอินทิกรัลของสัญญาณที่ได้รับ พื้นฐานของการออกแบบคือไมโครคอนโทรลเลอร์ PIC16F1823
อุปกรณ์รองรับการทำงานแบบแอคทีฟ (หลอดไส้ เครื่องทำความร้อน) และโหลดแบบเหนี่ยวนำ ไมโครคอนโทรลเลอร์ถูกโอเวอร์คล็อกจากออสซิลเลเตอร์ภายใน สัญญาณการซิงโครไนซ์กับเครือข่ายมาจากบริดจ์ตัวเรียงกระแสไปยังอินพุตของตัวเปรียบเทียบภายในของไมโครคอนโทรลเลอร์ผ่านตัวกรองบน R10, C5, R9, R8, C3 แรงดันอ้างอิงของตัวเปรียบเทียบมาจาก DAC ภายในของไมโครคอนโทรลเลอร์และมีค่าเท่ากับประมาณ 0.6 V ซึ่งตั้งค่าไว้เมื่อกำหนดค่า MK เพื่อกำจัดอิทธิพลของความจุ C6 ต่อการซิงโครไนซ์จึงใช้ไดโอด D6 ข้อบ่งชี้ทำบน E30561 ด้วยแคโทดทั่วไป
โครงสร้างอุปกรณ์ประกอบอยู่บนแผงวงจรพิมพ์สองแผ่น อันหนึ่งมีปุ่มตัวบ่งชี้และควบคุมและอีกอันคือ MK แหล่งจ่ายไฟและไตรแอค บอร์ดเชื่อมต่อโดยใช้สาย MGTF
ด้วยหม้อน้ำสำหรับ triac (HS-135-38) ดังรูป กำลังโหลดสูงสุดคือประมาณ 500 W. ดังนั้นจึงมีการสร้างที่นั่งบนแผงวงจรพิมพ์สำหรับหม้อน้ำนี้
เฟิร์มแวร์สำหรับ MK สร้างขึ้นในสภาพแวดล้อม MPLAB ในภาษา C สำหรับคอมไพเลอร์ HI-TECH PICC 9.83 คุณสามารถดาวน์โหลดแผงวงจรพิมพ์ เฟิร์มแวร์ และโปรเจ็กต์ MPLAB ได้จากลิงก์ด้านบน
การออกแบบได้รับการควบคุมโดยใช้ triac ประเภท BT138 ซึ่งควบคุมผ่านเอ็มเค จอแสดงผล LED ดิจิตอลแสดงจำนวนไทรแอกที่เปิดอยู่ในปัจจุบัน ส่วนลอจิคัลของวงจรได้รับพลังงานจากแหล่งจ่ายไฟซึ่งพื้นฐานคือตัวปรับแรงดันไฟฟ้า DA1 7805
วงจรนี้เหมาะอย่างยิ่งสำหรับการปรับกำลังเอาต์พุตแยกกันสำหรับโหลดสองแบบที่แตกต่างกัน เช่น เครื่องทำความร้อน โคมไฟ มอเตอร์ไฟฟ้า กำลังโหลดสูงสุดขึ้นอยู่กับประเภทของสวิตช์ที่สวิตช์ ในแผนภาพด้านล่าง ทรานซิสเตอร์ KT819 ทำหน้าที่เช่นนี้ แต่อาจมีตัวเลือกอื่น ขึ้นอยู่กับกำลังไฟที่ต้องการของโหลดทั้งสอง อุปกรณ์จะสร้างสัญญาณพัลส์ที่ส่งไปยังสวิตช์ไฟใดๆ
อุปกรณ์สร้างสัญญาณพัลส์โดยสามารถปรับความกว้างของพัลส์ได้ 256 องศาเท่ากัน ในการควบคุมวงจรจะใช้ความต้านทานแบบแปรผันซึ่งเชื่อมต่อกับพอร์ต RVZ และ RV4 ของ MK โดยทำงานร่วมกับ ADC ATtiny13 วัดค่าความต้านทานของตัวต้านทานแบบแปรผันและตั้งค่าความกว้างพัลส์ของสัญญาณพัลส์เอาท์พุตที่จะไปยังสวิตช์ที่ควบคุมการจ่ายไฟให้กับโหลดเฉพาะ นั่นคือโดยการหมุนตัวควบคุมความต้านทานแบบแปรผัน กำลังจะถูกปรับ การปรับนี้เมื่อเปรียบเทียบกับการปรับโดยใช้ปุ่ม "น้อยลง" และ "เพิ่มเติม" จะสะดวกกว่าในการใช้งานเนื่องจากมีประสิทธิภาพ มีขั้วต่อ ISP6 สำหรับตั้งโปรแกรมอุปกรณ์ เมื่อตั้งโปรแกรมเราจะตั้งค่าฟิวส์ตามค่าเริ่มต้นโดยทำงานกับเครื่องกำเนิดสัญญาณนาฬิกา RC ภายในที่ความถี่ 9.6 MHz คุณสามารถดาวน์โหลดไฟล์เก็บถาวรด้วยซอร์สโค้ดของเฟิร์มแวร์ได้จากลิงค์ด้านบน
การปรับความเร็วของมอเตอร์ไฟฟ้าในเทคโนโลยีอิเล็กทรอนิกส์สมัยใหม่นั้นทำได้โดยการเปลี่ยนแรงดันไฟฟ้าอย่างที่เคยทำมาก่อน แต่โดยการจ่ายพัลส์กระแสที่มีระยะเวลาต่างกันให้กับมอเตอร์ไฟฟ้า PWM ซึ่งเพิ่งได้รับความนิยมอย่างมาก ใช้เพื่อวัตถุประสงค์เหล่านี้ ( ปรับความกว้างพัลส์) หน่วยงานกำกับดูแล วงจรเป็นแบบสากล - ยังควบคุมความเร็วรอบเครื่องยนต์ ความสว่างของหลอดไฟ และกระแสไฟในเครื่องชาร์จด้วย
วงจรควบคุม PWM
แผนภาพด้านบนใช้งานได้ดีแนบมาด้วย
สามารถเพิ่มแรงดันไฟฟ้าได้ถึง 16 โวลต์โดยไม่ต้องเปลี่ยนวงจร วางทรานซิสเตอร์ตามกำลังโหลด
สามารถประกอบได้ ตัวควบคุมพีเอ็มดับเบิลยูและตามวงจรไฟฟ้านี้ด้วยทรานซิสเตอร์แบบไบโพลาร์ธรรมดา:
และหากจำเป็น แทนที่จะติดตั้งทรานซิสเตอร์คอมโพสิต KT827 ให้ติดตั้งเอฟเฟกต์สนาม IRFZ44N พร้อมตัวต้านทาน R1 - 47k Polevik ที่ไม่มีหม้อน้ำจะไม่ร้อนที่โหลดสูงสุด 7 แอมแปร์
การทำงานของตัวควบคุม PWM
ตัวจับเวลาบนชิป NE555 จะตรวจสอบแรงดันไฟฟ้าบนตัวเก็บประจุ C1 ซึ่งถูกถอดออกจากพิน THR ทันทีที่ถึงค่าสูงสุด ทรานซิสเตอร์ภายในจะเปิดขึ้น ซึ่งทำให้ขา DIS สั้นลงกราวด์ ในกรณีนี้ ศูนย์ตรรกะจะปรากฏที่เอาต์พุต OUT ตัวเก็บประจุเริ่มคายประจุผ่าน DIS และเมื่อแรงดันไฟฟ้าที่กลายเป็นศูนย์ระบบจะเปลี่ยนไปสู่สถานะตรงกันข้าม - ที่เอาต์พุต 1 ทรานซิสเตอร์จะปิด ตัวเก็บประจุเริ่มชาร์จอีกครั้งและทุกอย่างจะเกิดซ้ำอีกครั้ง
ประจุของตัวเก็บประจุ C1 เป็นไปตามเส้นทาง: “R2->ต้นแขน R1 ->D2” และการคายประจุตามเส้นทาง: D1 -> แขนท่อนล่าง R1 -> DIS เมื่อเราหมุนตัวต้านทานผันแปร R1 เราจะเปลี่ยนอัตราส่วนของความต้านทานของแขนส่วนบนและล่าง ซึ่งตามนั้นจะเปลี่ยนอัตราส่วนของความยาวพัลส์เป็นการหยุดชั่วคราว ความถี่ถูกกำหนดโดยตัวเก็บประจุ C1 เป็นหลักและขึ้นอยู่กับค่าความต้านทาน R1 เล็กน้อย ด้วยการเปลี่ยนอัตราส่วนความต้านทานประจุ/คายประจุ เราจะเปลี่ยนรอบการทำงาน ตัวต้านทาน R3 ช่วยให้แน่ใจว่าเอาต์พุตถูกดึงไปที่ระดับสูง - จึงมีเอาต์พุต open-collector ซึ่งไม่สามารถกำหนดระดับสูงได้อย่างอิสระ
คุณสามารถใช้ไดโอดตัวเก็บประจุที่มีค่าประมาณเดียวกันกับในแผนภาพ การเบี่ยงเบนภายในลำดับความสำคัญเดียวไม่ส่งผลกระทบอย่างมีนัยสำคัญต่อการทำงานของอุปกรณ์ ตัวอย่างเช่น ที่ 4.7 นาโนฟารัดที่ตั้งไว้ใน C1 ความถี่จะลดลงเหลือ 18 kHz แต่แทบจะไม่ได้ยินเลย
หากหลังจากประกอบวงจรแล้ว ทรานซิสเตอร์ควบคุมคีย์เกิดความร้อน เป็นไปได้มากว่าจะไม่เปิดอย่างสมบูรณ์ นั่นคือมีแรงดันไฟฟ้าตกคร่อมทรานซิสเตอร์มาก (เปิดบางส่วน) และกระแสไหลผ่าน ส่งผลให้มีการกระจายพลังงานจำนวนมากเพื่อให้ความร้อน ขอแนะนำให้ขนานวงจรที่เอาต์พุตกับตัวเก็บประจุขนาดใหญ่มิฉะนั้นจะร้องเพลงและควบคุมได้ไม่ดี เพื่อหลีกเลี่ยงการผิวปาก ให้เลือก C1 เสียงผิวปากมักจะมาจากมัน โดยทั่วไป ขอบเขตของการใช้งานนั้นกว้างมาก การใช้เป็นตัวควบคุมความสว่างสำหรับหลอดไฟ LED กำลังสูง แถบ LED และสปอตไลท์จะมีแนวโน้มที่ดีเป็นพิเศษ แต่จะเพิ่มเติมในครั้งต่อไป บทความนี้เขียนขึ้นโดยได้รับการสนับสนุนจาก ear, ur5rnp, stalker68
บ่อยครั้งที่จำเป็นต้องสามารถควบคุมกระแสที่ไหลผ่านหลอดไฟหรือองค์ประกอบความร้อนได้ เนื่องจากโหลดเป็นแบบต้านทาน วิธีแก้ปัญหาที่ง่ายที่สุดคือการประกอบตัวควบคุม PWM ขนาดเล็ก (จากภาษาอังกฤษ PWM - การมอดูเลตความกว้างพัลส์) เนื่องจากวงจรอย่างง่ายที่ใช้ตัวจับเวลา NE555 ไม่เป็นที่สนใจจึงตัดสินใจพัฒนาและประกอบวงจรของเราเองซึ่งค่อนข้างคล้ายกัน
วงจรแม้จะมีไมโครคอนโทรลเลอร์ PIC18LF2550 แต่ก็ทำซ้ำได้ง่ายมากและสามารถแบ่งออกเป็น 3 ส่วน:
เครื่องกำเนิดพีเอ็มดับเบิลยู
ไมโครคอนโทรลเลอร์จะสร้างพัลส์ที่ชัดเจนของรูปร่างและรอบการทำงานที่ต้องการ ซึ่งช่วยให้วงจรง่ายขึ้นอย่างมาก มีปุ่มสองปุ่มสำหรับเพิ่มและลดพลังงาน ไปที่พิน 3 และ 5 ของชิป PIC18LF2550 ไฟ LED จะกะพริบช้าลงหรือเร็วขึ้น ขึ้นอยู่กับความกว้างของพัลส์ ดังนั้นคุณจึงสามารถประเมินรอบการทำงานได้ด้วยสายตา หากไฟ LED สว่างเต็มที่ กำลังไฟจะเป็น 100% และหากดับลง รอบการทำงานจะเป็น 0%
แหล่งจ่ายไฟไมโครคอนโทรลเลอร์
โคลง MK คือ 3.3 โวลต์ดังนั้นขึ้นอยู่กับทรานซิสเตอร์เอาต์พุตคุณสามารถใช้แหล่งพลังงานได้ตั้งแต่ 3.7 ถึง 25 โวลต์ ความถี่ในการสลับคือ 32 kHz และระยะเวลาพัลส์แบ่งออกเป็น 256 ขั้นตอน รวมถึงการเปิดและปิดแบบเต็ม
โหลดสวิตช์
ไดรเวอร์สำหรับทรานซิสเตอร์ MOSFET คือ 2N3904 ปกติ พาวเวอร์ทรานซิสเตอร์นั้นอาจเป็น MOSFET N-channel ที่เหมาะสมก็ได้ โดยไม่จำเป็นต้องเหมือนกับในวงจร 80NF55L
คอนโทรลเลอร์ PWM 8 บิต 4 แชนเนลเวอร์ชันนี้ได้รับการออกแบบโดยใช้ไมโครคอนโทรลเลอร์ ATmega16 อุปกรณ์ประกอบด้วยอินเทอร์เฟซ RS232 สำหรับควบคุมจากคอมพิวเตอร์ อินเทอร์เฟซสำหรับแป้นพิมพ์ 12 ปุ่ม และช่องอะนาล็อก 10 บิต 4 ช่องสำหรับเชื่อมต่อโพเทนชิโอมิเตอร์ มีจอ LCD 4 บรรทัดเพื่อแสดงโหมดการทำงานและพารามิเตอร์ปัจจุบัน นอกจากนี้ ตัวควบคุม PWM ยังมี: เอาต์พุต 4 เอาต์พุตไปยัง LED สำหรับระบุโหมดการควบคุม (สามารถใช้เป็นเอาต์พุตเอนกประสงค์ได้), เอาต์พุตเอนกประสงค์ 3 เอาต์พุต
อุปกรณ์มีการตั้งค่าที่ยืดหยุ่นมาก ตัวอย่างเช่น สามารถควบคุมพารามิเตอร์การทำงานของช่องสัญญาณ PWM ได้โดยใช้คำสั่งจากคอมพิวเตอร์ โดยใช้การควบคุมแบบอะนาล็อก (โพเทนชิโอมิเตอร์) หรือใช้แป้นพิมพ์ (โดยมีอินเทอร์เฟซผู้ใช้แสดงบนตัวบ่งชี้ LCD) สามารถควบคุมตัวบ่งชี้ LCD ผ่านทาง RS232 ได้ การตั้งค่าและโหมดปัจจุบันสามารถแสดงในรูปแบบตัวเลขหรือกราฟิก
ลักษณะสำคัญของอุปกรณ์:
- PWM 4 แชนเนล, ความละเอียด 8 บิต, ความถี่ PWM - 31 kHz;
- อินเทอร์เฟซ RS232 สำหรับการควบคุมและการตรวจสอบจากพีซี
- การออกแบบวงจรอย่างง่ายที่มีองค์ประกอบภายนอกจำนวนน้อยที่สุด
- แป้นพิมพ์ 12 ปุ่ม;
- ความเป็นไปได้ของการปรับแบบอะนาล็อก
- มากถึง 7 สายเอาต์พุตเอนกประสงค์;
- จอ LCD 4 บรรทัด;
- การควบคุมจอแสดงผล LCD ผ่านทางอินเทอร์เฟซแบบอนุกรม
- เมนูที่กำหนดเอง
- การตั้งค่าที่ยืดหยุ่น
- การใช้ซอฟต์แวร์บัฟเฟอร์ FIFO เพื่อเร่งการทำงาน
เอาต์พุตวัตถุประสงค์ทั่วไป (รวมถึงไฟ LED แสดงสถานะ) ควบคุมจากคอมพิวเตอร์ (RS232) ผู้ใช้ยังสามารถอ่านประวัติการกดแป้นพิมพ์บนแป้นพิมพ์ได้ (การกดแป้น 32 ครั้งล่าสุดหรือทันทีหลังจากกดแป้น)
ด้วยการตั้งค่าที่ยืดหยุ่นดังกล่าว การเลือกการตั้งค่าที่เหมาะสมทำให้ตัวควบคุม PWM สามารถใช้งานได้หลากหลายและเป็นอุปกรณ์สแตนด์อโลน การออกแบบใช้ไมโครคอนโทรลเลอร์ ATmega16 ซึ่งเป็นจำนวนองค์ประกอบภายนอกขั้นต่ำ เนื่องจากไมโครคอนโทรลเลอร์ควบคุมและจัดการทั้งหมดเอง ผู้ใช้สามารถใช้เฉพาะส่วนประกอบที่จำเป็นเท่านั้น เช่น สามารถยกเว้นตัวบ่งชี้ LCD ได้หากไม่จำเป็น
แผนภาพลอจิกของอุปกรณ์
แผนผังของอุปกรณ์
วิธีแก้ปัญหาวงจรนั้นง่ายมาก ในการโอเวอร์คล็อกไมโครคอนโทรลเลอร์ ให้เลือกตัวสะท้อนเสียงควอทซ์ 8 MHz ประกอบแหล่งจ่ายไฟ +5.0 V บนตัวกันโคลงในตัว LM7805 ตัวเหนี่ยวนำ 10 μH และตัวเก็บประจุ 100 nF สร้างตัวกรองที่ป้องกันการแทรกซึมของการรบกวนเมื่อเปิดสวิตช์ วงจรอนาล็อก ตัวแปลงระดับตรรกะ MAX232 ใช้เพื่อใช้อินเทอร์เฟซแบบอนุกรม ไฟแสดงสถานะ LCD บนชิปเซ็ต Hitachi (HD44780) ที่มีความละเอียด 20x4 หรือ 40x2 ชุดควบคุมแบ็คไลท์ตัวบ่งชี้นั้นใช้กับทรานซิสเตอร์ MJE3055T (สามารถใช้อะนาล็อกที่ราคาถูกกว่าได้) เมทริกซ์แป้นพิมพ์ มาตรฐาน 4×3
หลังจากจ่ายไฟแล้ว ไมโครคอนโทรลเลอร์จะตั้งค่าพารามิเตอร์ที่บันทึกไว้ล่าสุดใน EEPROM: โหมดการควบคุมช่องสัญญาณ PWM (การควบคุมแบบอะนาล็อก, การควบคุมอินเทอร์เฟซแบบอนุกรม, การควบคุมด้วยคีย์บอร์ด), รูปแบบสำหรับการแสดงพารามิเตอร์บนตัวบ่งชี้ (การควบคุมอินเทอร์เฟซแบบอนุกรม, การแสดงค่า PWM, การแสดงแบบอะนาล็อก ค่า) รวมถึงสถานะของเส้นเอาท์พุตวัตถุประสงค์ทั่วไปและสถานะของไฟแบ็คไลท์ของจอแสดงผล
การสร้าง PWM จะปรากฏบนทั้งสี่ช่องสัญญาณเสมอหลังจากจ่ายไฟ ผู้ใช้สามารถกำหนดค่าพารามิเตอร์ทั้งหมดของตัวควบคุม PWM โดยใช้อินเทอร์เฟซแบบอนุกรม ส่งคำสั่งควบคุม จากนั้นบันทึกการตั้งค่าทั้งหมดที่ทำในหน่วยความจำ EEPROM ของไมโครคอนโทรลเลอร์ รายการคำสั่งและค่าทั้งหมดมีให้ในภาคผนวกด้านล่าง อินเทอร์เฟซแบบอนุกรมสามารถใช้เพื่อส่งค่าปัจจุบันของช่องควบคุมแบบอะนาล็อก (ตามคำขอ)
เมื่อใช้แรงดันไฟฟ้า ตัวบ่งชี้จะแสดงคำทักทาย (ผู้ใช้สามารถเปลี่ยนคำทักทายได้) จากนั้นตามการตั้งค่าปัจจุบัน จะแสดงพารามิเตอร์ปัจจุบันและค่าของเอาต์พุต PWM ค่าของช่องอะนาล็อก
สำหรับตัวอย่างการใช้งานจริงของอุปกรณ์และการควบคุม PWM ของอุปกรณ์ภายนอกต่างๆ ดังแผนภาพต่อไปนี้ ตัวอย่างนี้แสดงโซลูชันวงจรสำหรับเชื่อมต่อมอเตอร์พัดลม, LED ที่ทรงพลังในตระกูล และตัวแปลงแรงดันไฟฟ้าแบบ PWM บนเครื่องขยายสัญญาณการทำงาน LM358 เป็น 4 ช่องสัญญาณ PWM นอกจากนี้ LED ยังเชื่อมต่อเพื่อให้สามารถทดสอบสายเอาท์พุตเอนกประสงค์ได้
ตัวอย่างการใช้งานขั้นตอนเอาต์พุตของตัวควบคุม PWM