โปรเจกต์ Programmable Controller สำหรับ Heat Pump
จัดการการทำงานของ Heat Pump ด้วย Controller ที่พัฒนาขึ้นจาก Arduino
จัดการการทำงานของ Heat Pump ด้วย Controller ที่พัฒนาขึ้นจาก Arduino
โปรเจกต์นี้เกี่ยวกับคอนโทรลเลอร์ที่จัดการการทำงานของ Heat Pump สำหรับทำความร้อนในถังน้ำขนาด 1 m3 จำนวน 2 ถัง เพื่อใช้ในระบบทำความร้อนส่วนกลาง โดยใช้พื้นฐานจาก Arduino Nano (ATmega328 @ 5V 16 MHz) พร้อมหน้าจอ 1602 2x16 LCD และ HD44780
แทนที่จะใช้ Sensor วัดอุณหภูมิของ Heat Pump ผมได้ใช้ Resistor ที่แมตช์กัน 2 ตัวเชื่อมต่อผ่าน Relay เพื่อจำลองสถานะ โดยตัวหนึ่งจะหลอกว่าถังน้ำเย็น (เพื่อให้ Heat Pump เริ่มทำงาน) และอีกตัวจะหลอกว่าถังน้ำร้อนแล้วเพื่อให้เครื่องหยุดทำงาน เมื่อจำเป็นต้องทำความร้อนให้ถังที่สอง คอนโทรลเลอร์จะจ่ายแรงดันไฟฟ้า 230V AC (ผ่าน Relay อิเล็กทรอนิกส์) ไปยัง Three-way Valve เพื่อเปลี่ยนทิศทางน้ำร้อนไปยังถังที่สอง
ถังน้ำจะถูกทำความร้อนเฉพาะช่วงค่าไฟฟ้าอัตราพิเศษตอนกลางคืน (Night Tariff) เท่านั้น (13.00-15.00, 22.00-06.00) โดยสัญญาณ (230V AC) ของช่วง Night Tariff จะส่งมายังคอนโทรลเลอร์จากเครื่องตั้งเวลาที่ทำงานสัมพันธ์กับมิเตอร์ไฟฟ้า เมื่อช่วง Night Tariff สิ้นสุดลงแต่ถังใดถังหนึ่งยังทำความร้อนไม่เสร็จ คอนโทรลเลอร์จะอนุญาตให้ทำความร้อนต่อไปจนถึงอุณหภูมิที่ตั้งไว้
ใช้เทอร์โมมิเตอร์ดิจิทัล Dallas ในการอ่านอุณหภูมิของถังน้ำ เพื่อชดเชยความผิดพลาดในการอ่านค่าอุณหภูมิที่เกิดจาก Drift ของตัว Sensor เอง ผมจึงใช้วิธีหาค่าเฉลี่ยจากการอ่านค่า 7 ครั้ง โดยอุณหภูมิเฉลี่ยจะถูกปัดเศษเป็นทศนิยมหนึ่งตำแหน่ง
ตัวคอนโทรลเลอร์สามารถตั้งค่าอุณหภูมิ ("Tu" ปรับได้ทีละ 1 องศาเซลเซียส) สำหรับทำความร้อนในถังได้ในช่วง 20 ถึง 60 องศาเซลเซียส ส่วนค่าความต่างในการทำความร้อน (Heating Delta) ตั้งค่าได้ในช่วง 0.3 ถึง 3.0 องศาเซลเซียส ("delta" ปรับได้ทีละ 0.1 องศาเซลเซียส) และค่า Offset สำหรับการอ่านอุณหภูมิของถังที่สอง ("offset2" ปรับได้ทีละ 0.1 องศาเซลเซียส) ในช่วง -3.0 ถึง 3.0 องศาเซลเซียส เพื่อชดเชยความแตกต่างของอุณหภูมิระหว่างถังทั้งสอง
ขึ้นอยู่กับอุณหภูมิภายนอก เราสามารถเลือกทำความร้อนเพียงถังเดียว หรือทั้งสองถัง (1 และ 2) ได้ ที่แผงด้านหน้าของคอนโทรลเลอร์จะมี Switch ติดตั้งไว้สำหรับอนุญาตการทำความร้อนในแต่ละถัง นอกจากนี้ยังมีปุ่มกด: SET - สำหรับเข้าเมนูตั้งค่าพารามิเตอร์ต่างๆ, ปุ่ม "-" และ "+" สำหรับเปลี่ยนการตั้งค่า นอกจากนี้ยังมี LED สำหรับแสดงสถานะการทำงาน: สีเหลือง - แสดงช่วง Night Tariff, สีแดง 2 ดวง - ถังที่หนึ่งหรือสองกำลังทำความร้อน, สีเขียว 2 ดวง - ถังที่หนึ่งหรือสองกำลังรอการทำความร้อน (T <= Tu - delta) ผมเลือกใช้ LED ที่มี Resistor ภายในสำหรับจำกัดกระแส ทำให้ไม่ต้องต่อ Resistor เพิ่มเติมในระบบ และสามารถเชื่อมต่อเข้ากับ Digital Outputs ของ Arduino Nano ได้โดยตรง
PL
โปรเจกต์นี้เกี่ยวกับคอนโทรลเลอร์ที่จัดการการทำงานของ Heat Pump สำหรับทำความร้อนในถังน้ำ 2 ถัง ขนาดถังละ 1 m3 สำหรับระบบทำความร้อนส่วนกลาง โดยใช้ Arduino Nano ATMEGA328 AVR 5V 16 MHz พร้อมหน้าจอ LCD 1602 2x16 และ HD44780
แทนที่จะใช้ Sensor วัดอุณหภูมิของ Heat Pump ผมใช้ Resistor ที่เลือกมาอย่างเหมาะสม 2 ตัว เชื่อมต่อด้วย Relay เพื่อจำลองให้ตัวหนึ่งเสมือนว่าถังน้ำเย็น (เพื่อให้ Heat Pump เริ่มทำงาน) และอีกตัวเสมือนว่าถังน้ำร้อนแล้ว ซึ่งจะทำให้เครื่องหยุดทำงาน เมื่อต้องการทำความร้อนถังที่สอง คอนโทรลเลอร์จะจ่ายแรงดัน 230V AC (ผ่าน Relay) ไปยัง Three-way Valve เพื่อเปลี่ยนทิศทางน้ำที่ได้รับความร้อนไปยังถังที่สอง
ถังน้ำจะได้รับความร้อนเฉพาะในช่วง Night Tariff (13.00-15.00; 22.00-06.00) เท่านั้น โดยสัญญาณ (230V AC) ของช่วง Night Tariff จะถูกส่งไปยังคอนโทรลเลอร์จากเครื่องตั้งเวลาที่ทำงานพร้อมกับมิเตอร์ไฟฟ้า เมื่อช่วง Night Tariff หมดเวลาลง หากถังใดยังทำความร้อนอยู่ คอนโทรลเลอร์จะปล่อยให้ทำความร้อนจนถึงอุณหภูมิที่กำหนด
สำหรับการอ่านอุณหภูมิของถังน้ำ จะใช้เทอร์โมมิเตอร์ดิจิทัล Dallas เพื่อลดข้อผิดพลาดจากการอ่านอุณหภูมิที่เกิดจาก Drift ของ Sensor เอง ผมจึงใช้การหาค่าเฉลี่ยจากการอ่าน 7 ครั้ง โดยอุณหภูมิเฉลี่ยจะถูกปัดเศษเป็นทศนิยมหนึ่งตำแหน่ง
คอนโทรลเลอร์ตั้งค่าอุณหภูมิได้ ("Tu" ทุกๆ 1 องศาเซลเซียส) ในช่วง 20 ถึง 60 องศาเซลเซียส ตั้งค่า Delta การทำความร้อนได้ในช่วง 0.3 ถึง 3.0 องศาเซลเซียส ("delta" ทุกๆ 0.1 องศาเซลเซียส) และตั้งค่า Offset ของการอ่านอุณหภูมิถังที่สอง ("offset2" ทุกๆ 0.1 องศาเซลเซียส) ในช่วง -3.0 ถึง 3.0 องศาเซลเซียส เพื่อลดความแตกต่างของอุณหภูมิของทั้งสองถัง
ขึ้นอยู่กับอุณหภูมิภายนอก สามารถเลือกทำความร้อนเพียงถังเดียว หรือทั้งสองถัง (1 และ 2) ได้ บนแผงควบคุมด้านหน้าจะมี Switch สำหรับอนุญาตการทำความร้อนถังน้ำ และมีปุ่มกด: SET - สำหรับเข้าเมนูตั้งค่าพารามิเตอร์, ปุ่ม "-" และ "+" สำหรับเปลี่ยนค่า มี LED แสดงสถานะการทำงาน: สีเหลือง - แจ้งเตือนช่วง Night Tariff, สีแดง 2 ดวง - ถังที่หนึ่งหรือสองกำลังทำความร้อน, สีเขียว 2 ดวง - ถังที่หนึ่งหรือสองรอการทำความร้อน (T <= Tu - delta) ผมใช้ LED แบบมี Resistor ภายในเพื่อจำกัดกระแส ทำให้ไม่ต้องต่อ Resistor เพิ่มในวงจร และสามารถเชื่อมต่อเข้ากับ Digital Outputs ของ Arduino Nano ได้โดยตรง


สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้