![]()
First week conclusion
วิธีการวัดปริมาณแบตเตอรี่โดยใช้การวัดความต่างศักย์ของแบตเตอรี่ตัวนั้นเปรียบเทียบกับ Discharge curve ของแบตเตอรี่ตัวนั้นเป็นวิธีที่เหมาะสมกับโครงงานนี้มากที่สุด เพราะว่าอุปกรณ์ที่เราใช้ในการเก็บค่าของความต่างศักย์ของแบตเตอรี่ซึ่งก็คือ AVR Butterfly Microcontroller ใช้การรับค่าข้อมูลเข้าสู่ Analog to Digital Converter (ADC) เป็นค่าศักย์ไฟฟ้าอยู่แล้ว นอกจากนี้ การใช้วิธีดังกล่าวข้างต้นในการวัดปริมาณแบตเตอรี่จะทำให้ไม่มีข้อจำกัดในการวัดแบตเตอรี่ที่ต่างชนิดกัน ซึ่งมี Discharge curve ต่างกัน เพียงแค่เราสามารถสร้างกราฟ Discharge curve ของแบตเตอรี่ชนิดนั้นๆเราก็สามารถออกแบบโปรแกรมที่สามารถใช้วัดปริมาณของแบตเตอรี่นั้นได้ทันที ดังนั้น ขั้นตอนการออกแบบการทดลองและวิธีการที่เกี่ยวข้องเกี่ยวกับการวัดปริมาณแบตเตอรี่ในสัปดาห์ที่ 2 จะอ้างอิงอยู่กับวิธีการวัดปริมาณแบตเตอรี่ด้วยวิธีดังกล่าวข้างต้นนี้
Second week experiment : Evaluate the precision and accuracy of ADC
Principle
เราทราบแล้วว่า ADC ของ ATmega169 ใช้ successive approximation ขนาด 10-bit ( ดังนั้นค่าของบิตที่เป็น Digital output จะมีค่าตั้งแต่ 0 = 0000000000 ถึง 1023 = 1111111111 ) เป็นเทคนิคในการแปลงสัญญาณ Analog เป็น Digital โดยที่ค่าต่ำสุดของศักย์ไฟฟ้าจะเท่ากับ Ground นั่นคือ 0 Volt และค่าความต่างศักย์สูงสุดที่รับได้จะขึ้นอยู่กับไฟเลี้ยงของบอร์ด ซึ่งมีค่าเท่ากับ 3 Volts หรือ 4.5 Volts ขึ้นอยู่กับว่าเราใช้แบตเตอรี่ชนิดใดเป็นแหล่งจ่ายพลังงาน ดังนั้น การที่เราจะทราบว่าบิต 1 บิตที่เพิ่มขึ้นจะเท่ากับศักย์ไฟฟ้าที่เพิ่มขึ้นเป็นเท่าไรนั้นเราจะต้องทราบด้วยว่าแหล่งจ่ายไฟให้บอร์ดมีศักย์ไฟฟ้าเป็นเท่าไร ยกตัวอย่างเช่นถ้าไฟเลี้ยงบอร์ดเป็น 3 Volts จะทำให้ 1 บิตที่เพิ่มขึ้นเท่ากับ 0.0029296875 Volts ที่เพิ่มขึ้น และถ้าไฟเลี้ยงบอร์ดเป็น 4.5 Volts จะทำให้ 1 บิตที่เพิ่มขึ้นเท่ากับ 0.00439453125 Volts ซึ่งจะมีความละเอียดน้อยกว่าความละเอียดที่เกิดขึ้นเมื่อใช้ไฟเลี้ยงบอร์ดขนาด 3 Volts
รูปแสดงถึงลักษณะของ ADC แบบ successive approximation ขนาด 10-bit
จะเห็นได้ว่าตามทฤษฎีดังกล่าว การเปลี่ยนแปลงระหว่างบิตที่ออกมาเป็นผลลัพธ์และความต่างศักย์ขาเข้าควรจะมีความสัมพันธ์แบบเชิงเส้น หรือแปรผันตามกัน ซึ่งจะทำให้มี accuracy สูงที่สุด เพื่อทดสอบประสิทธิภาพของ ADC ตามทฤษฎีดังกล่าว เราจะทำการทดลองอย่างง่ายๆขึ้นมา คือการทดลองเปลี่ยนค่าความต่างศักย์ที่เข้าสู่ ADC หลายๆค่า และดูผลลัพธ์ที่ได้ว่าเมื่อความต่างศักย์เปลี่ยนไป ค่าของบิตที่ออกมาเป็นผลลัพธ์เป็นอย่างไร และความสัมพันธ์ระหว่างค่าเหล่านั้นมีความเป็นเชิงเส้นมากน้อยเพียงใด นอกจากนี้การทดลองนี้จะทำทั้งหมด 3 ครั้งเพื่อหาค่าเฉลี่ย และดูว่าผลลัพธ์มีความเที่ยงตรง มากน้อยเพียงใดอีกด้วย
อุปกรณ์ที่ใช้ในการทดลองต่อไปนี้ประกอบด้วย
คุณสามารถคลิกที่รูปภาพใดๆเพื่อดูภาพขยายได้ : You can click on any picture to enlarge.
1.
Tektronix PS280 DC Power supply เป็นแหล่งจ่ายไฟกระแสตรงปรับค่าได้เพื่อใช้จำลองเป็นค่าความต่างศักย์ขาเข้าที่มาจากตัวแบตเตอรี่
2.
Digital Multi meter ของ Yugo เพื่อใช้อ่านค่าความต่างศักย์ที่เพิ่มขึ้นจากการปรับค่าของ DC Power supply
3.
AVR Butterfly Microcontroller
AVR จะต้องถูกเขียนโปรแกรมในการแปลงสัญญาณ Analog เป็น Digital และส่งค่าผลลัพธ์ออกมาเป็นบิตผลลัพธ์ในช่วงตั้งแต่ 0 ~ 1023 ผ่านทางพอร์ตอนุกรม RS232 ได้4.
คอมพิวเตอร์ที่มีพอร์ตอนุกรม RS232 เพื่อใช้รับค่าบิตผลลัพธ์จาก ADC
คอมพิวเตอร์ดังกล่าวจะต้องมีโปรแกรมรับค่าบิตผลลัพธ์จากพอร์ตอนุกรม RS232 มาแสดงผลที่ monitor ได้ ในที่นี้ใช้โปรแกรม HyperTerminal
Experiment procedure
ขั้นตอนการทดลองคือ ต่ออุปกรณ์ทั้งหมดดังรูป
ต่อมาคือ ปรับค่าความต่างศักย์ของ DC Power supply ไปที่ 0 Volt (และให้ค่า Current ของ DC Power supply อยู่ที่ค่าสูงสุด) โดยอ่านค่าความต่างศักย์ที่กำลังปรับอยู่จาก Digital Multi meter เพื่อให้ปรับค่าได้ถูกต้องและละเอียดมากขึ้น และอ่านค่าผลลัพธ์ที่ได้ที่ monitor ของคอมพิวเตอร์ แล้วจึงบันทึกผล
หลังจากนั้น ปรับค่าของ DC Power supply ให้เพิ่มขึ้นทีละ 0.2 Volts และอ่านค่าผลลัพธ์ที่ได้ที่ monitor ของคอมพิวเตอร์ แล้วจึงบันทึกผล ทำเช่นนี้เรื่อยไปจนบิตผลลัพธ์ถึง 1023 ซึ่งจะเพิ่มค่าความต่างศักย์ไปมากกว่านี้ไม่ได้เพราะอาจจะทำให้ AVR Butterfly เกิดความเสียหายได้
ภาพแสดงถึงผลลัพธ์ที่อ่านได้จาก ADC ผ่านทางพอร์ตอนุกรม RS232 โดยคอมพิวเตอร์
ผลลัพธ์ที่ได้ให้นำมาประมวลผลในลักษณะความสัมพันธ์ระหว่างค่าความต่างศักย์ที่เพิ่มขึ้นและจำนวนบิตที่เพิ่มขึ้นเพื่อดูแนวโน้มความสัมพันธ์ระหว่างข้อมูลที่ได้มาว่าอยู่ในลักษณะของฟังก์ชันแบบใด เปรียบเทียบกับความสัมพันธ์แบบค่าจริงที่ได้จากทฤษฎี
ภาพแสดงถึงการบันทึกข้อมูลที่อ่านได้ลงในโปรแกรมประมวลผลข้อมูล (ในที่นี้ใช้ Microsoft Office Excel 2003)
หลังจากนั้นทำการทดลองแบบเดียวกันอีก 2 ครั้งและนำข้อมูลจากทั้งสามการทดลองมาหาค่าเฉลี่ย ซึ่งจะทำให้ได้ลักษณะความสัมพันธ์ที่ตรงกับ ADC ของ AVR Butterfly มากที่สุด
รูปดังต่อไปนี้แสดงถึงขั้นตอนการทดลองและผลลัพธ์ที่เกิดขึ้น
รูปแสดงถึงการปรับค่าความต่างศักย์ของ DC Power Supply ก่อนเข้าสู่ ADC
รูปแสดงถึงบิตผลลัพธ์ที่แสดงออกมาที่ Computer ซึ่งแปรผันไปตามตามค่าความต่างศักย์
Input
VoltageOutput value from ACD (From experiment) Output value
from ACD
(Expected value)First
timeSecond
timeThird
timeAverage
value0 23 23 23 23 0 0.2 70 69 70 70 45 0.4 116 116 116 116 90 0.6 163 163 163 163 135 0.8 210 210 210 210 179 1 256 256 257 256 224 1.2 303 303 303 303 269 1.4 350 350 350 350 314 1.6 396 396 396 396 359 1.8 443 443 443 443 404 2 490 490 490 490 449 2.2 536 536 536 536 494 2.4 583 583 583 583 538 2.6 629 630 630 630 583 2.8 676 677 676 676 628 3 723 723 723 723 673 3.2 770 770 770 770 718 3.4 817 817 817 817 763 3.6 864 864 864 864 808 3.8 910 911 910 910 853 4 956 957 956 956 897 4.2 1001 1001 1002 1001 942 4.4 1023 1023 1023 1023 987 4.6 1023 1023 1023 1023 1023 ตารางแสดงถึงค่าบิตผลลัพธ์ที่ได้จาก ACD ที่ค่าศักย์ไฟฟ้าขาเข้าต่างๆกัน
กราฟความสัมพันธ์ระหว่างแรงดันไฟฟ้าขาเข้าและบิตผลลัพธ์
หมายเหตุ :
1. แรงดันไฟเลี้ยงของ ADC ในการทดลองมีค่าเท่ากับ 4.56 Volts ดังนั้น Output Bit ของ ADC จะมีค่าเทียบเท่ากับ 1023 เมื่อแรงดันไฟฟ้าขาเข้า ADC มีค่าเท่ากับ 4.56 Volts
2. การปัดค่าทศนิยมที่ได้จากการคำนวณใช้วิธี Rounding to the nearest one.
3. เนื่องจากค่า Average value เป็นการหาค่าเฉลี่ยจากผลลัพธ์ของทั้งสามการทดลอง ดังนั้นจึงอาจไม่เห็นกราฟของทั้งสามการทดลองเนื่องจากข้อมูลเหล่านี้มีค่าใกล้เคียงกับค่าเฉลี่ยมาก