กลับไปหน้ารวมไฟล์
how-to-make-digital-temperature-measurement-device-52174a.md

Project Overview

"Precision Thermos" เนี่ย เป็นการลงลึกเบื้องต้นเกี่ยวกับ Analog Signal Conditioning แบบจัดเต็มเลยนะน้อง! แม้ว่าเซ็นเซอร์ดิจิทัลสมัยใหม่อย่าง DS18B20 จะใช้ง่ายกว่า แต่การใช้ NTC Thermistor แบบดิบๆ เนี่ยแหละ จะพาน้องไปเห็นฟิสิกส์ของเซมิคอนดักเตอร์ และการสร้างโมเดลทางคณิตศาสตร์เพื่อทำให้ข้อมูลอนาล็อกที่โค้งงอได้ กลายเป็นเส้นตรง! โปรเจคนี้จะแปลงค่าความต้านทานที่เปลี่ยนไป ให้กลายเป็นตัวเลขที่แม่นยำบนจอ LCD 16x2 แสดงให้เห็นสะพานเชื่อมระหว่าง "ความร้อน" ในโลกจริง กับ "ตรรกะ" ในโลกดิจิทัล

About Thermistors

เทอร์มิสเตอร์ (ตัวต้านทานอุณหภูมิ) คือตัวต้านทานที่ค่ามันขึ้นอยู่กับอุณหภูมินั่นเองจ้า มีสองประเภทหลักๆ คือ PTC (ค่าความต้านทานเพิ่มตามอุณหภูมิ) กับ NTC (ค่าความต้านทานลดตามอุณหภูมิ) เทอร์มิสเตอร์แม่นยำมาก (ประมาณ ±0.05°C ถึง ±1.5°C) แต่จะแม่นเฉพาะในช่วงอุณหภูมิจำกัดที่ห่างจากอุณหภูมิฐานไม่เกิน 50°C ประมาณนั้น ช่วงการทำงานทั่วไปของเทอร์มิสเตอร์ส่วนใหญ่อยู่ระหว่าง 0°C ถึง 100°C

Technical Deep-Dive

  • ฟิสิกส์ของ NTC Thermistor:
    • Negative Temperature Coefficient: ต่างจากตัวต้านทานทั่วไป NTC Thermistor ทำจากโลหะออกไซด์อัดแน่น (sintered metal oxides) ซึ่งค่าความต้านทานจะ ลดลง เมื่ออุณหภูมิเพิ่มขึ้น
    • วงจรแบ่งแรงดัน (Voltage Divider): Arduino วัดความต้านทานตรงๆ ไม่ได้ มันวัดได้แค่แรงดันเท่านั้น! วิธีวัดคือ Arduino จะวัดแรงดันที่จุดระหว่างเทอร์มิสเตอร์กับตัวต้านทานค่าคงที่ (known resistor) วงจรแบบนี้เรียกว่า Voltage Divider สูตรคือ: $V_{out} = V_{in} \times \frac{R_{fixed}}{R_{therm} + R_{fixed}}$ จากนั้นเราก็ย้ายสมการนี้เพื่อแก้หาค่า R2 ซึ่งก็คือค่าความต้านทานของเทอร์มิสเตอร์นั่นเอง
  • ทำให้เป็นเส้นตรงด้วย Steinhart-Hart:
    • การสร้างโมเดลแบบลอการิทึม: ความสัมพันธ์ระหว่างความต้านทานกับอุณหภูมินั้นไม่เป็นเส้นตรง (non-linear) เฟิร์มแวร์ของเราเลยใช้ สมการ Steinhart-Hart มาช่วย: $1/T = A + B\ln(R) + C(\ln(R))^3$ โดยที่ $T$ คืออุณหภูมิในหน่วยเคลวิน และ $A, B, C$ คือค่าสัมประสิทธิ์เฉพาะของรุ่นเทอร์มิสเตอร์ที่เราใช้ การคำนวณแบบนี้ช่วยให้ได้ความแม่นยำถึง ±0.1°C เลยทีเดียวในช่วงการทำงานปกติ
  • ADC Quantization & Precision:
    • ความละเอียด 10-bit: ATmega328P ใน Arduino Nano มี ADC 10-bit หมายความว่ามันจะแปลงแรงดันจากวงจรแบ่งแรงดันเป็นค่าตัวเลขระหว่าง 0 ถึง 1023 ที่อุณหภูมิห้อง ค่าแต่ละ "สเตป" นี่แทนอุณหภูมิไม่กี่ส่วนองศา แต่พอเทอร์มิสเตอร์ร้อนจัดหรือเย็นจัด ความละเอียดจะลดลง นี่เป็นเรื่องสำคัญที่ต้องคิดเวลาเราจะออกแบบโพรบสำหรับงานอุตสาหกรรมนะตัวนี้

Engineering & Implementation

  • การเชื่อมต่อกับ LCD (Parallel vs. I2C):
    • โปรเจคนี้ใช้ไลบรารีมาตรฐาน LiquidCrystal ในการขับจอ 16x2 และใช้ โพเทนชิโอมิเตอร์ 10k ในการปรับค่าแรงดันที่ขา V0 (คอนทราสต์) เพื่อให้อ่านค่าได้ชัดเจนในสภาพแสงแวดล้อมต่างๆ
  • Thermal Mass & Stability:
    • ความผิดพลาดจาก Self-Heating: หนึ่งในความท้าทายทางวิศวกรรมที่สำคัญคือ "Self-Heating" หรือปรากฏการณ์ที่กระแสไฟฟ้าที่ไหลผ่านตัวเทอร์มิสเตอร์ทำให้มันร้อนขึ้นเอง ส่งผลให้ค่าที่อ่านได้ผิดเพี้ยนไป เฟิร์มแวร์ของเราจัดการเรื่องนี้โดยใช้วงจรแบ่งแรงดันที่ใช้กระแสต่ำ และใช้วิธีอ่านค่าเป็นช่วงๆ แทนที่จะอ่านแบบต่อเนื่อง
  • Signal Stabilization:
    • เพื่อป้องกันไม่ให้ค่าบนจอ "กระโดด" โค้ดของเราใช้ Running Average Filter ด้วยการอ่านตัวอย่างค่าอย่างรวดเร็ว 10 ครั้ง แล้วหาค่าเฉลี่ย ระบบจะช่วยกรองสัญญาณรบกวนทางไฟฟ้าจากสายจัมเปอร์และการเปลี่ยนแปลงของแหล่งจ่ายไฟให้เรียบขึ้น สู้งานนะน้อง!

สาธิตโปรเจค

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

คลิปสาธิต
หน้าจอแสดงผล
อุณหภูมิปกติ
อุณหภูมิพุ่งเมื่อจุดไม้ขีดใกล้ๆ

สรุป

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


นิติวิทยาศาสตร์ความร้อน: เอาชนะโลกที่ไม่เป็นเส้นตรงด้วยตรรกะลอการิทึม

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "shashwatraj98765"
category: "Environmental Sensing"
components:
  - "1x Arduino Nano R3 (Processing Core)"
  - "1x 10k Ohm NTC Thermistor"
  - "1x 16x2 Alphanumeric LCD (HD44780)"
  - "1x 10k Ohm Precision Resistor (R-Fixed)"
  - "1x 10k Ohm Potentiometer (LCD Contrast)"
  - "1x Solderless Breadboard"
  - "1x Jumper Wire Set"
description: "A high-accuracy digital temperature measurement system using NTC thermistors and the Steinhart-Hart equation to provide real-time atmospheric data on an LCD interface."
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/88c7c975-e5a4-4232-8d77-cc9130d0ea98.ino"
  - "https://projects.arduinocontent.cc/88c7c975-e5a4-4232-8d77-cc9130d0ea98.ino"
encryptedPayload: "U2FsdGVkX1+J1+JPcK878RwxKK/xTj6ll8vEo+Djp4QPiPNMOYeCEozUgqD7Q8RxZG5xJ/OxDwsWeVXubo4NKSt/KysjJWfdxUgbEegIjjw="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/how-to-make-digital-temperature-measurement-device-52174a_cover.jpg"
lang: "en"
likes: 1
passwordHash: "9017e8eac4b12b50db5dccc2eb4995f99288f2ca5cd3fc0dafe83503bbe94f93"
price: 435
seoDescription: "Build a digital temperature measurement device or digital thermometer using a thermistor and arduino with this step-by-step tutorial."
tags:
  - "environmental sensing"
  - "home automation"
  - "smart appliances"
  - "arduino"
  - "data collection"
  - "internet of things"
title: "มาสร้างเครื่องวัดอุณหภูมิดิจิทัลสุดตึงกันเถอะ วัยรุ่น!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/aGWHjVtEEiQ"
views: 3779