อ่าน ADC ได้ตัวเลขแล้ว แปลงเป็นแรงดันได้เลยไหม

อ่าน ADC ได้ตัวเลขแล้ว แปลงเป็นแรงดันได้เลยไหม - Image 1
13/08/2025•Admin Team•
IoTSensorTutorial

พออยากรู้ว่าแบตของอุปกรณ์เหลือเท่าไร เรามักเริ่มจากเอาแรงดันมาให้บอร์ดอ่าน แล้วแปลงตัวเลขขึ้นหน้าจอเป็นเปอร์เซ็นต์ เพราะถ้าอ่านเซนเซอร์อื่นได้อยู่แล้ว เรื่องนี้ก็ดูเหมือนเพิ่มข้อมูลอีกช่องหนึ่งเท่านั้น

แต่ระหว่างแบตกับตัวเลขบนจอยังมีหลายชั้นครับ ตั้งแต่วงจรที่ลดแรงดันก่อนเข้าขา ADC การตั้งช่วงวัด ไปจนถึงวิธีแปลแรงดันเป็นระดับแบต ถ้ารวมทุกอย่างไว้ในสูตรเดียวโดยยังไม่ตรวจแต่ละส่วน ตัวเลขที่ดูละเอียดก็อาจไม่ได้ใกล้ค่าจริงเท่าที่คิด

บทนี้จึงจะค่อยๆ แยกทางเดินของค่าจากขาวัดไปถึงหน้าจอ โดยเน้นวิธีตรวจและความหมายของแต่ละขั้น ส่วนผลเทียบกับมิเตอร์ต้องเก็บจากบอร์ดและวงจรที่ใช้อยู่จริง พร้อมจดรุ่นชิปและการตั้งค่าของแต่ละรอบไว้ด้วย

ตรวจแรงดันก่อนต่อเข้าขาอ่าน

ADC มีขอบเขตแรงดันและข้อจำกัดทางไฟฟ้าที่ต้องดูตามชิปกับการตั้งค่า แรงดันที่บอร์ดรับผ่านช่องจ่ายไฟได้จึงไม่ได้เป็นคำตอบว่าขาวัดจะรับได้เท่ากัน ถ้าต้องวัดแหล่งจ่ายที่สูงกว่าช่วงอ่าน ก็ต้องออกแบบวงจรด้านหน้าก่อน

วงจรแบ่งแรงดันเป็นวิธีที่พบได้บ่อย โดยใช้ตัวต้านทานสองตัวทำให้แรงดันที่จุดกลางเป็นสัดส่วนกับแรงดันต้นทาง แต่ต้องคิดจากค่าสูงสุดที่แหล่งจ่ายอาจมี ไม่ใช้เฉพาะแรงดันที่วัดได้ในจังหวะที่แบตใกล้หมด เพราะเมื่อชาร์จเต็มหรือเปลี่ยนแหล่งจ่าย ขาวัดก็ยังต้องอยู่ในขอบเขตที่รองรับ

สำหรับวงจรอุดมคติที่ R1 อยู่ฝั่งแหล่งจ่ายและ R2 อยู่ฝั่งกราวด์ ความสัมพันธ์คือ Vadc = Vin × R2 / (R1 + R2) สูตรนี้ช่วยคำนวณอัตราส่วน แต่ของจริงยังมีค่าคลาดเคลื่อนของตัวต้านทาน อิมพีแดนซ์ และรายละเอียดอินพุตของ ADC ที่ต้องนำมาพิจารณา

เส้นทางแรงดันต้นทางผ่านวงจรอินพุตก่อนถึง ADC พร้อมสมการแบ่งแรงดันแบบอุดมคติ ไม่ใช่ค่าทดสอบ

ก่อนเริ่มอ่านด้วยโค้ด ลองตรวจการต่อ กราวด์ร่วม และแรงดันที่จุดเข้าขาด้วยมิเตอร์ก่อน การตรวจตรงนี้ช่วยแยกว่าวงจรให้แรงดันตามที่ออกแบบหรือยัง ถ้าจุดนี้ไม่ตรง การแก้สูตรแสดงผลท้ายโปรแกรมก็เพียงทำให้ผลดูตรงบางช่วงโดยยังมีสาเหตุเดิมอยู่

raw count ยังไม่ใช่มิลลิโวลต์

ตัวเลขดิบจาก ADC เป็นผลการแปลงตามการตั้งค่าที่เลือก ทั้งความละเอียดและ attenuation มีผลกับวิธีอ่าน ขณะเดียวกันชิปแต่ละรุ่นก็อาจรองรับวิธี calibration ต่างกัน จึงไม่ควรเอาสูตรของบอร์ดหนึ่งไปใช้กับอีกตระกูลโดยสมมติว่าช่วงอ่านเหมือนกันทั้งหมด

ใน ESP-IDF มี driver สำหรับ calibration เพื่อแปลงค่าดิบให้เป็นแรงดันตามวิธีที่ชิปรองรับ ส่วน framework หรือไลบรารีชั้นบนอาจมีคำสั่งช่วยอีกที เราควรตรวจว่าคำสั่งที่เรียกคืนหน่วยใด และใช้การตั้งค่าตรงกับตอนอ่านจริงหรือไม่ จะได้ไม่แปลงซ้ำหรือใช้อัตราส่วนผิด

เมื่อได้แรงดันที่ขาแล้ว จึงค่อยย้อนอัตราส่วนของวงจรแบ่งแรงดันกลับไปหาค่าต้นทาง เช่น ถ้าฟังก์ชันคืนมิลลิโวลต์ของขา ADC เราก็ยังต้องคำนวณแรงดันแบตจากอัตราส่วน ไม่ควรติดป้ายว่าแรงดันแบตให้ค่าที่เพิ่งอ่านออกมาตรงๆ

การแยกตัวแปรเป็น raw_count, adc_mv และ source_mv ช่วยให้ตามค่าระหว่างทางได้ง่ายกว่าการรวมเป็นตัวเลขเดียว ถ้าค่าผิด เราจะรู้ว่าควรเริ่มจากการอ่าน การแปลงหน่วย หรืออัตราส่วนวงจรครับ

เทียบกับมิเตอร์โดยเก็บเงื่อนไขให้ครบ

การลองวัดจุดเดียวแล้วบวกค่าชดเชยคงที่อาจทำให้ตรงที่จุดนั้น แต่ยังไม่บอกว่าช่วงอื่นตรงด้วยหรือไม่ ถ้าต้องการประเมินวิธีแปลง ควรมีจุดเทียบหลายระดับภายในช่วงที่ใช้งานจริง พร้อมจดว่ามิเตอร์วัดที่ต้นทางหรือที่ขา ADC

ตัวอย่างรายการที่จะเก็บมีแรงดันจากมิเตอร์ ค่าดิบ ค่าแรงดันหลัง calibration ค่าอัตราส่วนที่ใช้ และสถานะโหลดของบอร์ด ข้อมูลเหล่านี้เป็นช่องที่จะนำไปกรอกผลจริง ไม่ใช่ตารางตัวเลขตัวอย่างที่เราควรแต่งขึ้นเพื่อให้เหมือนทดสอบแล้ว

ขั้นแปลงค่าดิบ ADC เป็นแรงดันขาวัด แล้วย้อนอัตราส่วนไปต้นทาง แยกจากการประมาณระดับแบต

ถ้าค่าแกว่ง ลองดูว่าจังหวะอ่านสัมพันธ์กับการส่งวิทยุหรือโหลดที่เปลี่ยนอย่างไร การอ่านหลายครั้งแล้วเฉลี่ยอาจช่วยลดความแปรปรวนบางแบบ แต่ไม่ได้แก้ค่าที่คลาดเคลื่อนเป็นระบบ และไม่ทำให้วงจรที่เกินขอบเขตขาวัดกลับมาใช้งานได้ถูกต้อง

ควรตรวจข้อจำกัดร่วมกับอุปกรณ์ที่เปิดใช้ด้วย เช่น หน่วย ADC หรือขาบางชุดอาจมีเงื่อนไขเมื่อใช้งานพร้อม Wi-Fi ตามรุ่นชิป หากตัวอย่างทำงานเดี่ยวแต่มีปัญหาหลังรวมกับแอป ต้องกลับไปดูข้อกำหนดส่วนนี้ก่อนตั้งสมมติฐานว่าแบตมีอาการผิดปกติ

แรงดันกับเปอร์เซ็นต์ตอบคนละคำถาม

แรงดันที่วัดได้บอกสภาพไฟในขณะนั้น แต่เปอร์เซ็นต์แบตพยายามบอกปริมาณที่ยังใช้ได้ ซึ่งขึ้นกับชนิดแบต ลักษณะโหลด อุณหภูมิ และวิธีประเมินด้วย การแบ่งช่วงแรงดันต่ำสุดถึงสูงสุดเป็นเส้นตรงจึงอาจเป็นเพียงค่าประมาณหยาบ ไม่ใช่คุณสมบัติที่ใช้แทนกันได้กับแบตทุกชนิด

ถ้างานเริ่มต้นเพียงต้องแจ้งว่าแรงดันต่ำกว่าระดับที่ระบบทำงานได้ตามข้อกำหนด การแสดงแรงดันพร้อมสถานะที่กำหนดจากการทดสอบอาจอธิบายได้ตรงกว่า ส่วนงานที่ต้องการติดตามความจุจริงก็ค่อยพิจารณาวิธีประเมินหรือวงจรวัดแบตที่เหมาะสมต่อไป

ในข้อมูลที่ส่งขึ้นเว็บควรเก็บแรงดันจริงแยกจากเปอร์เซ็นต์ที่คำนวณ พร้อมรุ่นของวิธีแปลง หากเปลี่ยนสูตรภายหลัง เราจะยังมีข้อมูลต้นทางให้ย้อนประเมินได้ แทนการเหลือเพียงเปอร์เซ็นต์ที่ไม่รู้ว่าคำนวณจากอะไร

อย่าลืมว่าวงจรวัดก็ใช้พลังงาน

ตัวต้านทานแบ่งแรงดันมีทางให้กระแสไหลอยู่ด้วย จึงเป็นส่วนหนึ่งของพลังงานที่ต้องนับในอุปกรณ์ใช้แบต หากปรับค่าเพื่อให้ใช้ไฟน้อยลง ก็ต้องตรวจว่าวงจรด้านหน้ากับการอ่านของ ADC ยังเหมาะกัน ไม่เลือกจากความประหยัดเพียงอย่างเดียว

หากออกแบบให้เปิดวงจรวัดเฉพาะบางช่วง ก็ต้องดูเวลาที่แรงดันนิ่งหลังเปิดและผลต่อจังหวะอ่านด้วย ข้อนี้เชื่อมกลับไปยังการทดสอบครบเส้นทาง เพราะการเปลี่ยนวิธีจ่ายไฟให้วงจรวัดอาจทำให้วิธีอ่านที่เคยตรงในสภาพเปิดค้างต้องปรับตาม

สรุป

ก่อนแปลง ADC เป็นเปอร์เซ็นต์แบต ควรทำให้แต่ละขั้นอธิบายได้ก่อน ตั้งแต่วงจรที่เข้าขาวัด การแปลงค่าดิบเป็นแรงดัน ไปจนถึงการย้อนอัตราส่วนและเทียบกับมิเตอร์ เมื่อเก็บแรงดันต้นทางแยกจากค่าประมาณระดับแบตไว้ เราจะตรวจความคลาดเคลื่อนได้ง่ายขึ้น และไม่ให้ตัวเลขบนหน้าจอบอกความมั่นใจเกินหลักฐานที่มีครับ

Command Eng Logo
CMD yourNgineers
เลขประจำตัวผู้เสียภาษี0805564000814
บทความ
ติดต่อบริษัท คอมมานด์ เอ็นจ์ จำกัด
81/36 เพอร์เฟค พาร์คบางนาตำบลบางเสาธง อำเภอบางเสาธงจังหวัดสมุทรปราการ 10570
team@commandeng.in.th+66 89 393 5191
Facebook Page | Command EngLine | Command Eng Official
© Copyright 2022-2026 Command Eng Co., Ltd.v1.0.4 · 0d556ab · 2026-11-03 15:23