วันอาทิตย์ที่ 23 ตุลาคม พ.ศ. 2554

การวัดค่าแรงดันไฟฟ้ากระแสตรง

โดย สมชาย เบียนสูงเนิน          
              วัตถุประสงค์ของโปรแกรมนี้เพื่อให้เกิดความเข้าใจการทำงานของโมดูล ADC ที่อยู่ในตัวไมโครคอนโทรลเลอร์ เพราะโมดุล ADC ถูกนำไปประยุกต์ใช้ในหลากหลายงาน ขบวนการแปลงแอนะล็อกเป็นดิจิตอลจะเริ่มจากการสุ่มค่าแรงดันมาเก็บที่ส่วนของวงจร S/H จากนั้นนำแรงดันที่ได้ผ่านขบวนการแปลงของส่วนวงจร ADC แล้วจัดเก็บข้อมูลดิจิตอลตามรูปแบบที่กำหนด สรุปการตั้งค่าโมดุล ADC ได้ดังนี้ (รีจีสเตอร์ที่ระบุเป็นของไมโครคอนโทรลเลอร์ dsPIC30Fxxxx)
            1) เลือกขาพอร์ตให้ทำงานเป็นอินพุตแบบแอนะล็อก (ADPCFG)
            2) เลือกรูปแบบผลลัพธ์ (ADCON1bits.FORM)
            3) เลือกแหล่งกระตุ้นการเริ่มแปลงสัญญาณ (ADCON1bits.SSRC)
            4) เลือกรูปแบบการจัดลำดับการสุ่มของวงจร S/H  (ADCON1bits.SIMSAM)
            5) กำหนดเงื่อนไขการเริ่มสุ่มสัญญาณ  (ADCON1bits.ASAM)
            6) กำหนดจำนวนช่องของวงจร S/H (ADCON2bits.CHPS)
            7) กำหนดจำนวนการแปลงข้อมูลต่อการอินเตอร์รัฟ (ADCON2bits.SMPI)
            8) กำหนดเวลาในการแปลงข้อมูล (ADCON3bits.ADCS)
            9) กำหนดจำนวนอินพุตที่ต้องทำงานร่วมกับ S/H (ADPCFG)
            ข้อมูลการแปลงเก็บอยู่ที่ตัวพักข้อมูล ADCBUF มี 16 ตัว คือ ADCBUF0 ถึง ADCBUFF ซึ่งนำมาใช้ประโยชน์ในกรณีที่มีการอ่านค่าแรงดันหลาย ๆ ค่า โดยกำหนดจากการอินเตอร์รัฟ (ข้อ 7) สำหรับย้ายข้อมูลไปที่ตัวแปรสำหรับการคำนวณต่อไป สำหรับตัวอย่างโปรแกรมเป็นการอ่านแรงดัน 2 ช่อง ๆ ละ 5 ค่า โดยแรงดันทั้งสองช่องถูกสุ่มที่เวลาเดียวกันและมีระยะห่างการสุ่มเท่ากันตามรูปที่ 1 จากนั้นนำทั้ง 5 ค่าของแต่ละช่องสัญญาณหาค่าเฉลี่ย แล้วแสดงค่าแรงดันผ่านจอแสดงผล LCD ตามวงจรรูปที่ 2

รูปที่  1 เงื่อนไขการอ่านข้อมูลแรงดัน
รูปที่ 2 วงจรวัดค่าแรงดันไฟฟ้ากระแสตรง
     
            การออกแบบโปรแกรมสำหรับวัดค่าแรงดันไฟฟ้ากระแสตรงจะอ่านค่ามาทั้งหมด 5 ค่า โดยแต่ละค่าให้ห่างกัน 5 ms ดังนั้นต้องคำนวณหาค่า PR ของ Timer3 สำหรับไปกระตุ้นการทำงานของโมดูล ADC โดยทั่วไปโมดูล Timer จะมีความสามารถในการลดความถี่สำหรับ Timer หรือเรียกว่าการปรับอัตราปรีสเกลเลอร์ (Clock Prescale) เมื่อมีการปรับอัตราปรีสเกลเลอร์ สมการสำหรับคำนวณหาค่า PR คือ  
ปรับอัตราปรีสเกลเลอร์ท่ากับ 1 ความถี่หลักของระบบ(Fosc)มีค่า 4 MHz  และ PLL=8 เมื่อต้องการเวลา 0.005 วินาที คำนวณหาค่า PR ได้ดังนี้
รูปที่ 3 การทดสอบวงจรวัดค่าแรงดันไฟฟ้ากระแสตรง 2 ช่อง