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 ด้วย หวังว่าน้องจะสนุกกับโปรเจคนี้ สู้งานนะน้อง!



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