หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ Temperature Controlled Fan พร้อม LCD โดยใช้ Arduino

Arduino ควบคุมความเร็วของ Fan ตาม Temperature ของห้อง และแสดงผล Temperature บนหน้าจอ LCD

โปรเจกต์ Temperature Controlled Fan พร้อม LCD โดยใช้ Arduino

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

50,023 การดู
6 ถูกใจ

รายการอุปกรณ์และเครื่องมือ

1x Gravity: Analog LM35 Temperature Sensor For Arduino
-
1x Rotary Potentiometer, 10 kohm
-
1x Arduino UNO
-
1x DC Motor, Miniature
-
1x Alphanumeric LCD, 20 x 4
-
1x Breadboard, 270 Pin
-
}

แอปพลิเคชันและแพลตฟอร์ม

รายละเอียดและวิธีทำ

เครื่อง Temperature controller เป็นความต้องการหลักในทุกกระบวนการผลิต ไม่ว่าจะเป็นในอุตสาหกรรมเคมี หรืออุตสาหกรรมสิ่งทอ โดยจำเป็นต้องมี Temperature controller สำหรับกระบวนการต่างๆ ที่แตกต่างกัน ในระบบ Temperature controller ทางอุตสาหกรรมทั่วไปจะประกอบด้วย Temperature sensor, อุปกรณ์ตั้งค่าอุณหภูมิ, อุปกรณ์แสดงผล, อุปกรณ์ควบคุมอุณหภูมิ (เช่น Heater, Cooler, Compressor เป็นต้น) และอุปกรณ์ควบคุมหลักอย่าง Micro controller ระบบนี้สามารถอธิบายได้ดีขึ้นโดยใช้ Block diagram ตามที่แสดงด้านล่างนี้

อุณหภูมิที่ต้องการจะถูกตั้งค่าโดยใช้อุปกรณ์ตั้งค่าอุณหภูมิอย่าง Potentiometer ในขณะที่ Sensor จะตรวจวัดอุณหภูมิจริง อุปกรณ์ควบคุมอย่าง Micro controller จะรับค่าอุณหภูมิทั้งสองนี้เป็น Input และแสดงผลบนอุปกรณ์แสดงผล โดยจะทำการเปรียบเทียบอุณหภูมิจริงกับอุณหภูมิที่ตั้งค่าไว้ หากอุณหภูมิจริงสูงกว่าหรือต่ำกว่าค่าที่ตั้งไว้ มันจะส่งสัญญาณไปยังอุปกรณ์ควบคุมอุณหภูมิเพื่อเพิ่มหรือลดอุณหภูมิ เพื่อพยายามรักษาอุณหภูมิให้อยู่ในช่วงที่กำหนด ตัวอย่างเช่น หากอุปกรณ์ควบคุมอุณหภูมิคือ Cooler/Compressor และต้องการรักษาความเย็น ในระบบนี้เมื่อ Sensor ตรวจพบว่าอุณหภูมิจริงสูงเกินขีดจำกัดที่ตั้งไว้ การทำความเย็นจะถูกเพิ่มขึ้นผ่าน Cooler/Compressor และในทางกลับกัน นอกเหนือจากอุปกรณ์เหล่านี้ ระบบ Temperature controller ส่วนใหญ่มักจะมีตัวบ่งชี้ด้วยสายตา (เช่น หลอดไฟ, LED) สำหรับสถานะอุณหภูมิที่สูงหรือต่ำเกินไป และมี Sound alarm สำหรับการแจ้งเตือนด้วยเสียง

ดังนั้น ทั้งหมดนี้คือองค์ประกอบพื้นฐานของระบบ Temperature controller ซึ่งโปรเจกต์นี้เป็นการสาธิตการทำงานของระบบดังกล่าว โดยใช้ LM35 เป็น Temperature sensor และใช้ DC motor เป็นพัดลมทำหน้าที่เป็นอุปกรณ์ควบคุมอุณหภูมิ โดยใช้งานบอร์ด Arduino เป็นอุปกรณ์ควบคุมและใช้ ATMega328 เป็น Micro controller นอกจากนี้ยังใช้หน้าจอ 16x4 LCD เพื่อแสดงอุณหภูมิจริง, อุณหภูมิที่ตั้งไว้ รวมถึงข้อความและการแจ้งเตือนอื่นๆ อีกทั้งยังมี LED สำหรับการแสดงสถานะและ Speaker สำหรับส่งเสียงเตือน โดยคุณสมบัติบางประการของระบบมีดังนี้

1. วัดและแสดงผลอุณหภูมิจริงได้อย่างแม่นยำด้วยความละเอียดทศนิยมสองตำแหน่ง

2. ช่วงการตั้งค่าอุณหภูมิอยู่ระหว่าง 0 – 100 °C

3. หน้าจอ LCD สำหรับแสดงข้อความและการแจ้งเตือน

4. การควบคุมความเร็วพัดลมแบบปรับค่าได้ (Variable fan speed control)

5. LED สีแดง (RED), เขียว (GREEN) และน้ำเงิน (BLUE) สำหรับแสดงสถานะอุณหภูมิต่ำหรือสูงเกินไป

6. สัญญาณเตือนเสียง (Audio alarm) สำหรับอุณหภูมิต่ำหรือสูงเกินไป

เรามาดูกันว่าระบบนี้ถูกสร้างขึ้นอย่างไร โดยเริ่มจาก Circuit diagram ตามด้วยคำอธิบายและการทำงานของวงจร

คำอธิบายวงจร (Circuit description):

1. Output ของ Sensor LM35 เชื่อมต่อกับพิน Analog input A0 ของบอร์ด Arduino โดยพิน Vcc (+) เชื่อมต่อกับ +5 V และพิน Gnd (-) เชื่อมต่อกับ Ground

2. Pot R1 เชื่อมต่อกับ Analog input ที่สองคือ A1 โดยขั้วคงที่ทั้งสองด้านเชื่อมต่อกับ Vcc และ Ground ในขณะที่ขั้วเลื่อนตรงกลางเชื่อมต่อกับพิน A1

3. พินข้อมูล D4, D5, D6 และ D7 ของ LCD เชื่อมต่อกับพิน Digital D5, D4, D3 และ D2 ตามลำดับ พิน En ของ LCD เชื่อมต่อกับพิน 11 และพิน Rs เชื่อมต่อกับพิน 12

4. พิน RW เชื่อมต่อกับ Ground

5. Pot ขนาด 10K เชื่อมต่อกับพินที่ 3 VEE ของ LCD เพื่อปรับความสว่างของหน้าจอ

6. ขั้ว LED+ และ LED- เชื่อมต่อกับ 5V และ Ground เพื่อเปิดไฟ Backlight ของ LCD

7. Speaker ขนาด 8Ω หนึ่งตัวเชื่อมต่อกับพิน Digital 10 ตามที่แสดงในแผนผัง

8. ขา Anode ของ LED สีแดง, เขียว และน้ำเงิน เชื่อมต่อกับพิน Digital 6, 7 และ 8 ผ่านตัวต้านทานจำกัดกระแส (Current limiting resistor) ขนาด 470Ω โดยที่ขา Cathode ของทั้งหมดถูกต่อรวมกันและเชื่อมต่อกับ Ground

9. พิน Analog output 9 ทำหน้าที่ขับ DC motor (พัดลม) ผ่าน Transistor MJE3055 โดยพิน 9 เชื่อมต่อกับขา Base ของ MJE3055 ผ่านตัวต้านทานจำกัดกระแส R2 และ Output ทางขา Collector จะไปขับ DC motor ตามที่แสดง

นี่คือภาพประกอบการจัดวางระบบ

การทำงานของวงจร (Circuit operation):

· Sensor LM35 ให้ Output ในช่วง 0 ถึง 1 V ที่อัตรา 10 mV/°C หมายความว่าเมื่ออุณหภูมิเปลี่ยนไป 1 °C แรงดัน Output จาก Sensor จะเพิ่มขึ้น 10 mV และในทางกลับกัน

· เนื่องจาก Output ของ Sensor เชื่อมต่อกับ Analog input ของ Arduino มันจะถูกแปลงเป็นค่า Digital ตั้งแต่ 0 ถึง 1023

· เนื่องจาก Output ของ Sensor LM35 จำกัดอยู่ที่ 0 – 1 V เท่านั้น และแรงดันอ้างอิงสำหรับ ADC ภายในคือ 5 V ดังนั้น Output ของ Sensor จึงถูกคูณด้วย 5 เพื่อให้ได้ช่วงการทำงานที่เต็มประสิทธิภาพ

· เมื่ออุณหภูมิเพิ่มขึ้น Analog output จาก Sensor จะเพิ่มขึ้นจาก 0 เป็น 1 V และ Arduino จะสร้างค่า Digital ที่สอดคล้องกันตั้งแต่ 0 ถึง 1023

· ดังนั้นช่วง 0 ถึง 1 V จะถูกแบ่งออกเป็น 1024 ขั้น หมายความว่าแต่ละขั้นมีความละเอียด 1/1024 = 0.00097 = 0.97 mV

· เนื่องจาก Output ของ Sensor LM35 เปลี่ยนไป 10 mV ทุกๆ การเปลี่ยนแปลงอุณหภูมิ 1 °C ดังนั้นเมื่อค่า Analog เปลี่ยนไป 10 / 0.97 = 10.31 จะแสดงว่าอุณหภูมิเปลี่ยนไป 1 °C

· ดังนั้น Arduino จะอ่านค่าแรงดัน Analog จาก Sensor และนำค่าระหว่าง 0 ถึง 1023 มาหารด้วยตัวประกอบ 10.31 และแสดงผลค่านี้บน LCD เป็นอุณหภูมิปัจจุบัน

· Arduino รับค่าอุณหภูมิที่ตั้งไว้จาก Pot R1 เมื่อปรับค่า Pot แรงดัน Analog input จะเปลี่ยนจาก 0 ถึง 5V และ Output ที่สอดคล้องกันจะเปลี่ยนจาก 0 ถึง 1023 ซึ่งจะถูก Map ให้อยู่ในช่วง 0 ถึง 100 เพื่อกำหนดเป็นอุณหภูมิระหว่าง 0 – 100 °C

· ผู้ใช้สามารถตั้งค่าอุณหภูมิระหว่าง 0 °C ถึง 100 °C ได้โดยการปรับ Pot และจะแสดงผลเป็นอุณหภูมิที่ตั้งไว้ (Set temperature) บนหน้าจอ LCD

· ทั้งอุณหภูมิจริงและอุณหภูมิที่ตั้งไว้จะถูกส่งไปยัง PC ผ่าน Serial port และแสดงผลบน Serial monitor ของ Arduino IDE

· หากอุณหภูมิจริงที่ตรวจวัดโดย LM35 อยู่ในช่วง ±5 °C ของอุณหภูมิที่ตั้งไว้ (ค่าอ้างอิง) หน้าจอ LCD จะแสดงข้อความ “temperatureis within limit” และเปิด GREEN LED

· แต่ถ้าอุณหภูมิจริงสูงกว่าค่าที่ตั้งไว้เกิน 5 °C RED LED จะเปิดทำงานและความเร็วพัดลมจะเพิ่มขึ้นโดยการเพิ่ม Pulse width ที่พิน 9 โดย Speaker จะเริ่มส่งเสียงบี๊บ และแสดงข้อความบน LCD ว่า “overtemperature, fan speed increased

· ในทำนองเดียวกัน หากอุณหภูมิจริงต่ำกว่าค่าที่ตั้งไว้เกิน 5 °C BLUE LED จะเปิดทำงานและความเร็วพัดลมจะลดลง และ Speaker จะเริ่มส่งเสียงบี๊บพร้อมแสดงข้อความบน LCD ว่า “temperature down, fan speed decreased

· ดังนั้นความเร็วพัดลมจะเพิ่มขึ้นหรือลดลงโดยอัตโนมัติตามการเปลี่ยนแปลงของอุณหภูมิ

ซึ่งแสดงให้เห็นในการสาธิตผ่านวิดีโอนี้

โปรแกรมซอฟต์แวร์ (Software program):

เพื่อให้วงจรทั้งหมดทำงานได้ตามที่อธิบายไว้ โปรแกรมจะถูกดาวน์โหลดลงใน Arduino Micro controller ATMega328 โดยโปรแกรมถูกเขียนและ Compile ใน Arduino IDE จากนั้นจึงทำการ Upload ลงในบอร์ด Arduino

Code

🔒 ปลดล็อก Code

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

รหัสอ้างอิงโปรเจกต์: temperature-controlled-fan-with-lcd-using-arduino-ac0231
699 บาท
PromptPay QR Code