- โลกอนาล็อกพร้อมด้วยอุปกรณ์อิเล็กทรอนิกส์ดิจิทัล
- ADC คืออะไรและใช้อย่างไร?
- ความละเอียด (บิต) และช่องสัญญาณใน ADC
- แรงดันอ้างอิงสำหรับ ADC
- ตัวอย่าง
- ประเภท ADC และการทำงาน
- คำถามที่เกิดขึ้นโดยทั่วไปเกี่ยวกับ ADC
โลกอนาล็อกพร้อมด้วยอุปกรณ์อิเล็กทรอนิกส์ดิจิทัล
ไม่กี่ปีที่ผ่านมาอุปกรณ์อิเล็กทรอนิกส์ทั้งหมดที่เราใช้ในปัจจุบันเช่นโทรศัพท์คอมพิวเตอร์โทรทัศน์และอื่น ๆ เป็นแบบอะนาล็อก จากนั้นโทรศัพท์พื้นฐานก็ถูกแทนที่ด้วยโทรศัพท์มือถือสมัยใหม่อย่างช้าๆโทรทัศน์และจอภาพ CRT ถูกแทนที่ด้วยจอแสดงผล LED คอมพิวเตอร์ที่มีหลอดสุญญากาศได้รับการพัฒนาให้มีประสิทธิภาพมากขึ้นโดยมีไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์อยู่ภายในและอื่น ๆ..
ในยุคดิจิทัลทุกวันนี้เราทุกคนรายล้อมไปด้วยอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลขั้นสูงสิ่งนี้อาจหลอกให้เราคิดว่าทุกสิ่งทุกอย่างรอบตัวเราเป็นดิจิทัลซึ่งไม่เป็นความจริง โลกเป็นแบบอะนาล็อกมาโดยตลอดตัวอย่างเช่นทุกสิ่งที่มนุษย์เรารู้สึกและสัมผัสเช่นความเร็วอุณหภูมิความเร็วอากาศแสงแดดเสียง ฯลฯ เป็นสิ่งที่คล้ายคลึงกันในธรรมชาติ แต่อุปกรณ์อิเล็กทรอนิกส์ของเราซึ่งทำงานบนไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ไม่สามารถอ่าน / ตีความค่าอะนาล็อกเหล่านี้ได้โดยตรงเนื่องจากทำงานบน 0 และ 1 เท่านั้น ดังนั้นเราจึงต้องการบางสิ่งที่จะแปลงค่าอนาล็อกทั้งหมดเหล่านี้ให้เป็น 0 และ 1 เพื่อให้ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ของเราสามารถเข้าใจได้ สิ่งนี้เรียกสั้น ๆว่าตัวแปลงอนาล็อกเป็นดิจิตอลหรือ ADCในบทความนี้เราจะเรียนรู้ทุกอย่างที่เกี่ยวกับ ADC และวิธีการที่จะใช้พวกเขา
ADC คืออะไรและใช้อย่างไร?
ดังที่กล่าวไว้ก่อนหน้านี้ ADC ย่อมาจาก Analog to digital conversion และใช้เพื่อแปลงค่าอนาล็อกจากโลกแห่งความเป็นจริงให้เป็นค่าดิจิทัลเช่น 1 และ 0 แล้วค่าอะนาล็อกเหล่านี้คืออะไร? สิ่งเหล่านี้คือสิ่งที่เราเห็นในชีวิตประจำวันเช่นอุณหภูมิความเร็วความสว่าง ฯลฯ แต่เดี๋ยวก่อน !! ADC สามารถแปลงอุณหภูมิและความเร็วให้เป็นค่าดิจิตอลโดยตรงเช่น 0 และ 1 ได้หรือไม่?
ไม่ท้าทายไม่ได้ ADC สามารถแปลงค่าแรงดันไฟฟ้าแบบอะนาล็อกเป็นค่าดิจิตอลเท่านั้น เพื่อที่เคยพารามิเตอร์เราต้องการที่จะวัดก็ควรจะเปลี่ยนเป็นแรงดันไฟฟ้าครั้งแรก, การแปลงนี้สามารถทำได้ด้วยความช่วยเหลือของเซ็นเซอร์ตัวอย่างเช่นในการแปลงค่าอุณหภูมิเป็นแรงดันเราสามารถใช้เทอร์มิสเตอร์ในทำนองเดียวกันเพื่อแปลงความสว่างเป็นแรงดันไฟฟ้าเราสามารถใช้ LDR ได้ เมื่อแปลงเป็นแรงดันไฟฟ้าแล้วเราสามารถอ่านได้ด้วยความช่วยเหลือของ ADC
เพื่อที่จะทราบวิธีใช้ ADC ก่อนอื่นเราควรทำความคุ้นเคยกับคำศัพท์พื้นฐานบางอย่างเช่นความละเอียดช่องสัญญาณช่วงแรงดันอ้างอิงเป็นต้น
ความละเอียด (บิต) และช่องสัญญาณใน ADC
เมื่อคุณอ่านข้อกำหนดของไมโครคอนโทรลเลอร์หรือ ADC IC ใด ๆ รายละเอียดของ ADC จะได้รับโดยใช้ช่องเงื่อนไขและความละเอียด (บิต) ยกตัวอย่างเช่นArduino UNO ของ ATmega328 มี 8 ช่อง ADC ไม่ใช่ทุกพินบนไมโครคอนโทรลเลอร์ที่อ่านแรงดันอนาล็อกได้คำว่า 8-channel หมายความว่ามี 8 พินบนไมโครคอนโทรลเลอร์ ATmega328 นี้ซึ่งสามารถอ่านแรงดันอนาล็อกได้และแต่ละพินสามารถอ่านแรงดันไฟฟ้าด้วยความละเอียด 10 บิต สิ่งนี้จะแตกต่างกันไปสำหรับไมโครคอนโทรลเลอร์ประเภทต่างๆ
สมมติว่าช่วง ADC ของเราอยู่ระหว่าง 0V ถึง 5V และเรามี ADC 10 บิตซึ่งหมายความว่าแรงดันไฟฟ้าอินพุต 0-5 โวลต์ของเราจะถูกแบ่งออกเป็นค่าอนาล็อกแบบไม่ต่อเนื่อง 1024 ระดับ (2 10 = 1024) ความหมาย 1024 คือความละเอียดสำหรับ ADC 10 บิตในทำนองเดียวกันสำหรับความละเอียด ADC 8 บิตจะเป็น 512 (2 8) และสำหรับความละเอียด ADC 16 บิตจะเป็น 65,536 (2 16)
ด้วยสิ่งนี้หากแรงดันไฟฟ้าอินพุตจริงเป็น 0V ADC ของ MCU จะอ่านค่าเป็น 0 และถ้าเป็น 5V MCU จะอ่าน 1024 และถ้าอยู่ระหว่างเช่น 2.5V MCU จะอ่าน 512 เราสามารถใช้สูตรด้านล่าง เพื่อคำนวณค่าดิจิทัลที่ MCU จะอ่านตามความละเอียดของ ADC และแรงดันไฟฟ้าที่ใช้งาน
(ความละเอียด ADC / แรงดันไฟฟ้า) = (ค่าดิจิตอล ADC / ค่าแรงดันไฟฟ้าจริง)
แรงดันอ้างอิงสำหรับ ADC
คำศัพท์สำคัญอีกคำที่คุณควรคุ้นเคยคือแรงดันไฟฟ้าอ้างอิง ในระหว่างการแปลงการ ADC ค่าของแรงดันไฟฟ้าที่ไม่รู้จักถูกพบโดยเปรียบเทียบกับแรงดันไฟฟ้าที่รู้จักกันนี่คือแรงดันไฟฟ้าที่รู้จักกันจะเรียกว่าเป็นแรงดันอ้างอิงโดยปกติ MCU ทั้งหมดมีตัวเลือกในการตั้งค่าแรงดันอ้างอิงภายในซึ่งหมายความว่าคุณสามารถตั้งค่าแรงดันไฟฟ้านี้ภายในเป็นค่าที่มีอยู่โดยใช้ซอฟต์แวร์ (โปรแกรม) ในบอร์ด Arduino UNO แรงดันอ้างอิงจะถูกตั้งค่าเป็น 5V โดยค่าเริ่มต้นภายในหากผู้ใช้ที่ต้องการสามารถตั้งค่าแรงดันอ้างอิงนี้จากภายนอกผ่านพิน Vref ได้หลังจากทำการเปลี่ยนแปลงที่จำเป็นในซอฟต์แวร์แล้ว
โปรดจำไว้เสมอว่าค่าแรงดันไฟฟ้าอะนาล็อกที่วัดได้ควรน้อยกว่าค่าแรงดันอ้างอิงและค่าแรงดันอ้างอิงควรน้อยกว่าค่าแรงดันไฟฟ้าที่ใช้งานของไมโครคอนโทรลเลอร์เสมอ
ตัวอย่าง
เรากำลังยกตัวอย่าง ADC ซึ่งมีความละเอียด 3 บิตและแรงดันอ้างอิง 2V ดังนั้นจึงสามารถแมปแรงดันไฟฟ้าอะนาล็อก 0-2v กับ 8 (2 3) ระดับที่แตกต่างกันดังแสดงในภาพด้านล่าง
ดังนั้นหากแรงดันอนาล็อกเท่ากับ 0.25 ค่าดิจิทัลจะเป็น 1 ในทศนิยมและ 001 ในไบนารี ในทำนองเดียวกันถ้าแรงดันอนาล็อกเท่ากับ 0.5 ค่าดิจิทัลจะเป็น 2 ในทศนิยมและ 010 เป็นเลขฐานสอง
ไมโครคอนโทรลเลอร์บางตัวมี ADC ในตัวเช่น Arduino, MSP430, PIC16F877A แต่ไมโครคอนโทรลเลอร์บางตัวไม่มีเช่น 8051, Raspberry Pi เป็นต้นและเราต้องใช้ IC ตัวแปลงอนาล็อกเป็นดิจิตอลภายนอกบางตัวเช่น ADC0804, ADC0808
ด้านล่างนี้คุณสามารถดูตัวอย่างต่างๆของ ADC พร้อมไมโครคอนโทรลเลอร์ที่แตกต่างกัน:
- วิธีใช้ ADC ใน Arduino Uno
- การสอน Raspberry Pi ADC
- การเชื่อมต่อ ADC0808 กับไมโครคอนโทรลเลอร์ 8051
- 0-25V Digital Voltmeter โดยใช้ AVR Microcontroller
- วิธีใช้ ADC ใน STM32F103C8
- วิธีใช้ ADC ใน MSP430G2
ประเภท ADC และการทำงาน
มีหลายประเภทของ ADC มีคนใช้กันมากที่สุดมีแฟลช ADC, คู่ลาด ADC ประมาณต่อเนื่องและแบบ Dual ลาด ADC เพื่ออธิบายว่างานของ ADC แต่ละชิ้นและความแตกต่างระหว่างงานเหล่านี้จะอยู่นอกขอบเขตสำหรับบทความนี้อย่างไรเนื่องจากมีความซับซ้อนพอสมควร แต่เพื่อให้ทราบคร่าวๆ ADC มีตัวเก็บประจุภายในซึ่งจะถูกชาร์จโดยแรงดันไฟฟ้าแบบอะนาล็อกที่จะวัดได้ จากนั้นเราจะวัดค่าแรงดันไฟฟ้าโดยการปล่อยตัวเก็บประจุในช่วงเวลาหนึ่ง
คำถามที่เกิดขึ้นโดยทั่วไปเกี่ยวกับ ADC
วิธีวัดมากกว่า 5V โดยใช้ ADC ของฉัน?
ตามที่กล่าวไว้ก่อนหน้านี้โมดูล ADC ไม่สามารถวัดค่าแรงดันไฟฟ้าได้มากกว่าแรงดันไฟฟ้าที่ใช้งานของไมโครคอนโทรลเลอร์ นั่นคือไมโครคอนโทรลเลอร์ 5V สามารถวัดได้สูงสุด 5V ด้วยขา ADC หากคุณต้องการวัดอะไรมากกว่านั้นคุณต้องการวัด 0-12V จากนั้นคุณสามารถจับคู่ 0-12V เป็น 0-5V โดยใช้ตัวแบ่งที่มีศักยภาพหรือวงจรแบ่งแรงดันไฟฟ้า วงจรนี้จะใช้ตัวต้านทานคู่เพื่อแมปค่าสำหรับ MCU คุณสามารถทราบข้อมูลเพิ่มเติมเกี่ยวกับวงจรแบ่งแรงดันไฟฟ้าโดยใช้ลิงค์ สำหรับตัวอย่างข้างต้นของเราเราควรใช้ตัวต้านทาน 1K และตัวต้านทาน 720 โอห์มเป็นอนุกรมกับแหล่งจ่ายแรงดันและวัดแรงดันไฟฟ้าระหว่างตัวต้านทานตามที่กล่าวไว้ในลิงค์ด้านบน
จะแปลงค่าดิจิตอลจาก ADC เป็นค่าแรงดันไฟฟ้าจริงได้อย่างไร?
เมื่อใช้ตัวแปลง ADC เพื่อวัดแรงดันแอนะล็อกผลลัพธ์ที่ได้จาก MCU จะเป็นดิจิตอล ตัวอย่างเช่นในไมโครคอนโทรลเลอร์ 10 บิต 5V เมื่อแรงดันไฟฟ้าจริงที่จะวัดคือ 4V MCU จะอ่านเป็น 820 เราสามารถใช้สูตรที่กล่าวถึงข้างต้นเพื่อแปลง 820 เป็น 4V อีกครั้งเพื่อให้เราสามารถใช้ในของเราได้ การคำนวณ ให้ตรวจสอบเหมือนกัน
(ความละเอียด ADC / แรงดันไฟฟ้าที่ใช้งาน) = (ค่าดิจิตอล ADC / ค่าแรงดันไฟฟ้าจริง) ค่าแรงดันจริง = ค่าดิจิตอล ADC * (แรงดันไฟฟ้า / ความละเอียด ADC) = 820 * (5/1023) = 4.007 = ~ 4V
หวังว่าคุณจะมีความคิดที่ยุติธรรมเกี่ยวกับ ADC และวิธีใช้สำหรับแอปพลิเคชันของคุณ หากคุณมีปัญหาในการทำความเข้าใจแนวคิดโปรดโพสต์ความคิดเห็นของคุณด้านล่างหรือเขียนไว้ในฟอรัมของเรา