การวัดค่าความต้านทานด้วยไมโครบิตและจำลองการทำงานด้วย AUTODESK Tinkercad#

Keywords: Circuit Simulation, Arduino Uno, AUTODESK Tinkercad Circuits Micro:bit, Resistance Measurement, Python Coding


▷ ซอฟต์แวร์ AUTODESK Tinkercad Circuits และบอร์ด Micro:bit#

ซอฟต์แวร์ Tinkercad Circuits เป็นซอฟต์แวร์ที่ใช้ในการฝึกออกแบบและต่อวงจรไฟฟ้า-อิเล็กทรอนิกส์ และจำลองการทำงานได้เสมือนจริง (Circuit Simulation & Virtual Circuit Prototyping) โดยใช้งานผ่านเว็บเบราว์เซอร์และผู้ใช้ไม่จำเป็นต่อติดตั้งซอฟต์แวร์ใด ๆ

บอร์ด Micro:bit เป็นบอร์ดไมโครคอนโทรลเลอร์ (Microcontroller Board) ที่สามารถนำมาใช้ในการเขียนโปรแกรม ซึ่งรองรับการเขียนโค้ดด้วยภาษาคอมพิวเตอร์ได้หลายภาษา

ซอฟต์แวร์ Tinkercad Circuits รองรับการใช้งานบอร์ดไมโครคอนโทรลเลอร์ Arduino Uno และบอร์ด Micro:bit ผู้ใช้สามารถนำมาต่อวงจรทดลองร่วมกับชิ้นส่วนไฟฟ้าและอิเล็กทรอนิกส์พื้นฐานประเภทต่าง ๆ ได้ รวมถึงเขียนโค้ด และจำลองการทำงานของวงจรโดยรวมแบบเสมือนจริงได้

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

 


การวัดค่าความต้านโดยใช้บอร์ดไมโครคอนโทรลเลอร์#

สมมุติว่า มีตัวต้านทานที่ไม่ทราบค่า และต้องการวัดค่าความต้านทานโดยใช้บอร์ดไมโครคอนโทรลเลอร์ ก็มีแนวทางดังนี้

  • ให้ใช้ตัวต้านทานที่ทราบค่าและเป็นตัวต้านทานที่มีค่าคงที่ และใช้เป็น"ตัวต้านทานอ้างอิง" (เรียกว่า ) มีเปอร์เซ็นต์ความคลาดเคลื่อนน้อย เช่น +/-1% นำมาต่ออนุกรมกับตัวต้านทานอีกตัวหนึ่งที่ไม่ทราบค่า (เรียกว่า )
  • เพื่อการสาธิต กำหนดให้ อยู่ในช่วงไม่เกิน และลือกค่าตัวต้านทานอ้างอิง เป็นต้น ซึ่งอัตราส่วนระหว่าง กับ และค่าความต้านทานสูงสุด ก็มีผลต่อความแม่นยำในการวัดค่าด้วยไมโครคอนโทรลเลอร์
  • ตัวต้านทาน และ นำมาต่ออนุกรม และใช้เป็นวงจรที่เรียกว่า "วงจรแบ่งแรงดัน" (Voltage Divider) โดยให้ อยู่ด้านบน (High-side) และ อยู่ด้านล่าง แล้วนำไปต่อกับแหล่งจ่ายแรงดันไฟฟ้าคงที่แบบ DC เช่น 3V (แต่ไม่เกิน 3.3V !!! ในกรณีที่จะนำไปต่อวงจรใช้งานร่วมกับบอร์ดไมโครบิต)
  • แรงดันไฟฟ้าที่ได้จากวงจรแบ่งแรงดัน ซึ่งได้จากจุดเชื่อมต่อระหว่างตัวต้านทานทั้งสอง จะถูกนำไปต่อเข้ากับขาของบอร์ดไมโครบิต เช่น PIN 1 เพื่อวัดระดับแรงดันไฟฟ้า มองว่าเป็นสัญญาณไฟฟ้าแบบแอนะล็อก (Analog Input Signal)
  • ภายในชิปไมโครคอนโทรลเลอร์ มีวงจรที่เรียกว่า ADC (Analog-to-Digital Converter) ทำหน้าที่แปลงระดับแรงดันไฟฟ้าอินพุตในช่วง 0 ~ 3.3V ให้เป็นค่าตัวเลข ได้ตัวเลขจำนวนเต็มอยู่ในช่วง 0 ~ 1023 (มีความละเอียดในการแปลงค่าตัวเลข 10 บิต)
  • เมื่ออ่านค่าตัวเลขและแปลงค่าตัวเลขให้เป็นแรงดันไฟฟ้าอินพุต ถัดไปก็จะสามารถคำนวณหาค่า ได้

ข้อสังเกต

  • วงจรอิเล็กทรอนิกส์สำหรับการวัดค่าความต้านทานที่มีการใช้งานจริงนั้น มักมีฟังก์ชันการเลือกย่านวัดได้โดยอัตโนมัติ เช่น การปรับเลือกใช้ค่าของตัวต้านทานอ้างอิง ให้เหมาะสมกับช่วงหรือย่านการวัด และมีการใช้วงจรออปแอมป์ในภาคอินพุตสำหรับสัญญาณแอนะล็อก เช่น ทำหน้าที่เป็น Voltage Buffer เป็นต้น

รูปต่อไปนี้เป็นแผนผังการต่อวงจร ซึ่งใช้ตัวต้านทาน (ตัวต้านทานอ้างอิง) และ (สำหรับการตรวจสอบการวัดค่า) นำมาต่อเป็นวงจรแบ่งแรงดันไฟฟ้า โดยใช้แหล่งจ่ายไฟ DC ภายนอก ในตัวอย่างนี้เป็นแบตเตอรี่ 3V (สมมุติว่า แรงดันไฟฟ้าคงที่)

รูป: ตัวอย่างการต่อวงจรเพื่อวัดค่าความต้านทาน โดยใช้ซอฟต์แวร์ AUTODESK Tinkercad Circuits จำลองการทำงาน

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

รูป: การจำลองการทำงาน

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

จากสูตรการคำนวณ สามารถเขียนและจัดรูปใหม่ได้ดังนี้

ดังนั้นถ้าทราบค่า ก็สามารถนำไปคำนวณหาค่า ได้

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

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

รูป: การจำลองการทำงาน เมื่อใช้ตัวต้านทานปรับค่าได้

 


โค้ด Python สำหรับการวัดค่าความต้านทานด้วยบอร์ดไมโครบิต#

โค้ด Python ต่อไปนี้ เป็นตัวอย่างการเขียนโค้ดและใช้คำสั่งสำหรับบอร์ดไมโครบิต เพื่อวัดค่าแรงดันอินพุตที่ขา PIN 1 ซึ่งจะได้ค่าตัวเลขจำนวนเต็มเก็บค่าไว้ในตัวแปร analog_value แล้วนำไปคำนวณค่าแรงดันไฟฟ้าซึ่งมีหน่วยเป็นมิลลิโวลท์ เก็บค่าไว้ในตัวแปร Vout และนำไปคำนวณค่า ซึ่งจะได้ค่าเก็บไว้ในตัวแปร Rx

Vref = 3300
Vcc  = 3000
Rref = 1000

ohm_symbol = images.create_image("""
    . # # # .
    # . . . #
    # . . . #
    . # . # .
    # . . . #
""")

def on_button_pressed_a():
    # Read the analog value from Pin 0 (0 to 1023)
    analog_value = pins.analog_read_pin(AnalogPin.P1)

    # Convert the analog value to millivolts
    Vout = analog_value * Vref / 1023
    Rx = Rref * (Vcc/Vout - 1)
    # round a float to one decimal place 
    Rx = (Rx * 10 + 0.5) // 1 / 10
    # Display the millivolt value as text on the display
    basic.show_string( "R=" + str(Rx) )
    ohm_symbol.show_image(0)
    basic.pause(1000)
    basic.clear_screen()

# Event handler for button A press
input.on_button_pressed(Button.A, on_button_pressed_a)

การวัดค่าความต้านทานในแต่ละครั้ง จะเกิดขึ้นก็ต่อเมื่อ มีการกดปุ่ม Button A บนบอร์ดไมโครบิต และเมื่อได้ค่า มาแล้ว ก็จะแสดงเป็นตัวเลขบนแผง LED Matrix ขนาด 5 x 5 พิกเซล มีหน่วยเป็นโอห์มและเป็นเลขทศนิยมหนึ่งตำแหน่งหลังจุด Decimal Point

รูป: การต่อวงจรโดยใช้ตัวต้านทานปรับค่าได้สำหรับ และเขียนโค้ด Python สำหรับไมโครบิต

 


กล่าวสรุป#

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

 


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Created: 2024-10-02 | Last Updated: 2024-10-02