โครงงานเครื่องตรวจจับและแจ้งเตือนแก๊สไวไฟรั่วไหล
คุณสมบัติของเครื่องตรวจจับและแจ้งเตือนแก๊สไวไฟรั่วไหล
- สามารถตรวจจับแก๊สไวไฟได้ทุกชนิด
- สามารถเลือกระดับปริมาณแก๊สในอากาศเพื่อทำการแจ้งเตือนได้
- ใช้แรงดัน 5 VDC
- แสดงปริมาณแก๊สไวไฟเป็นเปอร์เซ็นต์ผ่านจอ LCD
การต่อวงจรสำหรับเครื่องตรวจจับและแจ้งเตือนแก๊สไวไฟรั่วไหล
รูปที่ 2 การต่อวงจรภายในเครื่องตรวจจับและแจ้งเตือนแก๊สไวไฟรั่วไหล
การต่อวงจรภายในเครื่องตรวจจับและแจ้งเตือนแก๊สไวไฟรั่วไหล
ส่วนประกอบหลังคือ บอรด์ STM32F4 ซึ่งใช้เป็นตัวประมวลผลกลางสำหรับเครื่องโดยคุณสมบัติของบอรด์นี้ สามารถประมวลผลที่ความเร็วสูงสุดถึง 184 Mhz มี ADC และ DAC ขนาด 12 bit ให้แรงดันไปเลี้ยงสูงสุดไม่เกิน 5VDC ทำงานจริงที่แรงดัน 3.3 VDC ส่วนต่อมาคือ POWER SUPPLY ขนาดแรงดันใช้งานที่ 5 VDC ซึ่งให้เป็นแหล่งจ่ายให้กับ ทั้งวงจร
ส่วนต่อมา คือ เซนเซอร์ตรวจจับแก๊สไวไฟเบอร์ MQ-2 มีคุณสมบัติในการตรวจจับแก๊สไวไฟทุกชนิดโดยให้สัญญาณ OUTPUT เป็นความต้านทานที่เปลี่ยนแปลงไปเมื่อปริมาณแก๊สไวไฟมีปริมาณเปลี่ยนแปลงเราจึงสามารถทำการวัดเทียบเพื่อหาเปอร์เซ็นต์ของแก๊สไวไฟในอากาศได้ ส่วนต่อมาคือ BUSSER หรือสำโพงขนาดเล็กมีหน้าที่สร้างสัญญาณเสียงเพื่อเตือนในกรณีที่ตรวจพบว่าแก๊สไวไฟในบริเวณนั้นมีปริมาณที่มากกว่าที่ได้ตั้งกำหนดค่าใว้ ต่อมาเป็น สวิตช์ขนาดเล็กแบบกดติดปล่อยดับ 2 ตัว เพื่อใช้ในการกำหนดค่าของเปอร์เซ็นต์ในการแจ้งเตือนว่าจะแจ้งเตือนเมื่อตรวจวัดแก๊สได้กี่เปอร์เซ็นต์ ส่วนสุดท้ายเป็นจอแสดงผลขนาด 16X2 ตัวอักษรเพื่อใช้ในการแสดงผลเปอร์เซ็นต์แก๊สที่สามารถตรวจวัดได้จากเซนเซอร์และเปอร์เซ็นต์ที่ทำการตั้งใว้เพื่อให้ทำการแจ้งเตือนออกทางลำโพงขนาดเล็ก
ส่วนประกอบวงจรประกอบไปด้วย
- บอร์ด STM32F401VG จำนวน 1 บอร์ด
- เซนเซอร์ตรวจวัดแก๊สไวไฟเบอร์ MQ-2 จำนวน 1 ตัว
- สำโพงขนาดเล็ก จำนวน 1 ตัว
- สวิตช์กดติดปล่อยตับ จำนวน 2 ตัว
- จอ LCD ขนาด 16X2 จำนวน 1 ตัว
- แหล่งจ่ายไฟขนาด +5 VDC จำนวน 1 ชุด
หลักการทำงาน
รูปที่ 2 หน้าจอ LCD เมื่อทำการเปิดเครื่อง
เมื่อเปิดเครื่องที่หน้าจอ LCD บรรทัดที่ 1 จะแสดงค่าของ เปอร์เซ็นต์ของแก๊สในบรรยากาศในพื้นที่นั้นๆ และในบรรทัดที่สองจะแสดงค่าเปอร์เซ็นต์แก๊สที่ผู้ปฏิบัติงานทำการตั้งค่าระดับเพื่อทำการแจ้งเตือน ดังแสดงในรูปที่ 2
รูปที่ 3 ทำการทดสอบโดยปล่อยแก๊สจากไฟแก๊สใส่หัวเซนเซอร์
เราทำการทดสอบโดยการใช้แก๊สไวไฟจากหัวไปแก๊สปล่อยเข้าไปที่หัวของเซนเซอร์เพื่อทำการทดสอบโดยเซนเซอร์นี้จะมีความต้านทานที่แปรผันกับปริมาณของแก๊สเราจึงใช้หลักการของ Voltage Divider มาทำการประยุกต์เพื่อทำการเทียบหาความต้านทานโดยเราส่งแรงดันที่ได้จาก Voltage Divider ไปเข้าที่ ADC ของไมโครคอลโทรลเลอร์และนำไปเข้าสมการที่ได้ทำการคำนวณใว้เพื่อหาค่าความต้านทานหลังจากนั้นเราจึงนำค่าความต้านทานมาเทียบกับปริมาณแก๊สเพื่อหาค่าของเปอร์เซ็นต์แก๊สภายในบรรยากาศ
รูปที่ 4 ผลที่ได้เมื่อทดลองปล่อยแก๊สจากไฟแก๊สใส่หัวเซนเซอร์
ผลที่ได้เมื่อทำการทดสอบ ค่าเปอร์เซ็นต์แก๊สพุ่งสูงเข้าใกล้ 100 เปอร์เซ็นต์ ดังแสดงในรูปที่ 4 เมื่อเราทำแก๊สไวไฟเข้าใกล้ๆ และค่าจะเริ่มลดลงเมื่อเราทำออกห่างมา
รูปที่ 5 ในสภาวะที่สวิตซ์ไม่ถูกกด
ในสภาวะปกติสวิตช์นั้นไม่ถูกกดทั้ง IN0 และ IN1 ค่า SET ALAM ในหน้าจอ LCD จะไม่มีการเปลี่ยนแปลงจะค้างค่าอยู่ที่ค่าเดิม
รูปที่ 6 ในสภาวะที่กดสวิตซ์ IN0
เมื่อทดลองกดสวิตซ์ IN0 สองครั้งจะได้ค่า SET ALAM เพิ่มขึ้นครั้งละ 10 เปอร์เซ็นต์ซึ้งจะได้ 20 เปอร์เซ็นต์
รูปที่ 7 ผลที่ได้จากการกด กดสวิตซ์ IN0
ที่หน้าจอ LCD จะแสดงผลที่หน้าจอ ในส่วนของ SET ALAM จะแสดงค่าเท่ากับ 20 เปอร์เซ็นต์
รูปที่ 8 ในสภาวะที่กดสวิตซ์ IN1
เมื่อทดลองกดสวิตซ์ IN1 หนึ่งครั้งจะได้ค่า SET ALAM ลดลงครั้งละ 10 เปอร์เซ็นต์ซึ้งจะได้ 10 เปอร์เซ็นต์
รูปที่ 9 ผลที่ได้จากการกด กดสวิตซ์ IN1
ที่หน้าจอ LCD จะแสดงผลที่หน้าจอ ในส่วนของ SET ALAM จะแสดงค่าเท่ากับ 10 เปอร์เซ็นต์
รูปที่ 10 ทดลองปล่อยแก๊สไปที่เซนเซอร์เมื่อ SET ALAM เท่ากับ 50
ผลที่ได้คือเมื่อค่า PECENS GAS มีค่ามากกว่าค่า SET ALAM ทำให้ลำโพงขนาดเล็กจะดังขึ้นเพื่อทำการแจ้งเตือนว่ามีแก๊สรั่วในปริมาณมากกว่าที่ได้กำหนดใว้ ดังรูปที่ 10 แต่ถ้า PECENS GAS มีค่าน้อยกว่าค่า SET ALAM ลำโพงจะไม่ดัง
ตัวอย่างในการติดตั้งใช้งาน
รูปที่ 11 ตัวอย่างการติดตั้ง
ควรทำการติดตั้งใว้ใกล้บริเวณที่อาจจะมีแก๊สรั่วไหลเช่นในห้องครัวตามบ้านเรือน หรือ ในโรงงานอุตสาหกรรมที่ใช้แก๊สในกระบวนการ ซึ่งความคิดตั้งใว้ เหนือบริเวณถังแก๊สเล็กน้อย เพื่อให้เซนเซอร์อยู่ใกล้กับถังแก๊สเพื่อทำการตรวจจับได้ดี แต่มีข้อแนะนำในการติดตั้งความจะใส่กล่องให้ดีเพื่อไม่ให้แก๊สไวไปถูกวงจรอิเล็กทรอนิกส์อาจจะทำให้เกิดประกายไปและนำไปสู่การระเบิดได้
โปรแกรม Simulink ที่สมบูรณ์ของโครงงานเครื่องตรวจจับและแจ้งเตือนแก๊สไวไฟรั่วไหล
รูปที่ 13 โปรแกรมภาพรวมจาก Simulink
อธิบายโปรแกรมหลัก
หมายเลข 1 เป็นการประกาศเพื่อกำหนด เลือกตัวคอมไพเลอร์ เบอร์ไมโครคอลโทรลเลอร์ที่จะทำการเขียน ความเร็วในการประมวลผมที่จะใช้ และ รูปแบบของการดาวน์โหลดโปรแกรมลงตัว ไมโครคอลโทรลเลอร์
หมายเลข 2, 3, 4 และ 5 เป็นการประการตัวแปรเพื่อจองพื้นที่หน่วยความจำภายในไมโครคอลโทรเลอร์เพื่อเก็บค่าต่างๆที่ใช้ในการแสดงผลออกทางหน้าจอ LCD
หมายเลข 6 และ 7 เป็น sub program ที่ทำงานเกี่ยวข้องกับการแสดงผลออกจากจอ LCD และ การนับขึ้นลงเพื่อนำค่าไปใช้ในการกำหนดเปอร์เซ็นต์ของแก๊สไวไฟเพื่อทำการแจ้งเตือน ซึ่งจะทำการแยกอธิบายอีกครั้ง
หมายเลข 8 เป็นการประกาศใช้ ADC ที่ขา PA1 เพื่อใช้ในการอ่านค่าสัญญาณจากเซนเซอร์
หมายเลข 9 เป็นการคูณค่า 3.3/4095 กับค่าที่ได้จากค่า ADC จากขา PA1 เพื่อแปลงค่าช่วง 0 – 4096 เป็นช่วงแรงดันจากเซนเซอร์ในช่วง 0 – 3.3 V
หมายเลข 10 เป็น MATHLAB function (PECENS GAS) ซึ่งใช้ในการคำนวณค่าเปอร์เซ็นต์ของแก๊สไวไฟในบรรยากาศซึ่งนำค่าแรงดันที่ได้จากเซนเซอร์ มาทำการคำนวณ
หมายเลข 11 เป็นการนำค่าที่คำนวณได้จาก MATHLAB function ไปเก็บใว้ในตัวแปลที่ประกาศใว้ก่อนหน้าและนำค่าไปแสดงผลที่จอ LCD ใน บรรทัดที่ 1
หมายเลข 12 เป็นค่าคงที่ที่ใช้ในการปรับเปอร์เซ็นต์ duty cycle ของ สัญญาณ PWM เพื่อ กำหนดเสียสัญญาณเตือนออกไปที่ลำโพงขนาดเล็ก
หมายเลข 13 เป็นการนำค่าคงที่ PWM มาคูณกับค่า ที่ได้จากการ เปรียบเทียบ หรือ comparator ซึ่งจะมีค่าเพียง 0 และ 1 ซึ่งจะทำให้สัญญาณที่ไปจ่ายให้ duty cycle ของ สัญญาณ PWM มีค่า แค่ 0 และ 50
หมายเลข 14 เป็นการประกาศใช้ PWM ที่ขา PA9 และรับค่าตัวแปรเป็น duty cycle ในช่วง 0-100 เปอร์เซ็นต์
หมายเลข 15 เป็นการคำค่าของตัวแปรที่ได้จาก sub program (COUNT) มาใช้ในการเปรียบเทียบกับค่าที่ได้จากการวัดด้วยเซนเซอร์
หมายเลข 16 เป็นตัวเปรียบเทียบค่าเปอร์เซ็นต์ที่คำนวณได้จากเซนเซอร์ และค่าเปอร์เซ็นต์ที่ได้จากการตั้งค่าจากปุ่มกด
รูปที่ 15 ภายใน Sub Program ของ LCD
อธิบาย Sub Program ของ LCD
หมายเลข 6.1 เป็นการประกาศเพื่อกำหนดขาของไมโครคอลโทรลเลอร์เพื่อที่จะทำการเชื่อมต่อกับจอ LCD ซึ่งในที่นี้เราจะใช้การเชื่อมต่อสื่อสารแบบ 4 bit ทางเดียว และกำหนดขาที่จะทำการสื่อสารเป็นขา PE7 – PE9 และ PE12 – PE15
หมายเลข 6.2 และ 6.4 เป็นการกำหนดค่าคงที่ในการแสดงผลให้แก่จอ LCD ซึ่งเป็นการกำหนดแถว บรรทัด แลจุดเริ่มต้นในการแสดงผล
หมายเลข 6.3 และ 6.5 เป็นการนำรูปแบบการแสดงผลข้อความที่จะแสดงผลที่เราได้ตั้งค่ากำหนดค่าใว้แล้วนั้นมาทำการส่งออกออกทางจอ LCD เพื่อแสดงผล ซึ่ง 6.3 จะเป็นบรรทัดที่ 1 และ 6.5 จะเป็นบรรทัดที่ 2
หมายเลข 6.6 และ 6.7 เป็นการนำค่าที่ได้เก็บใว้ในตัวแปรส่งไปแสดงผลที่จอ LCD
รูปที่ 17 ภายใน Sub Program ของ COUNT
อธิบาย Sub Program ของ COUNT
หมายเลข 7.1 เป็นการกำหนดขา DIGITAL INPUT ซึ่งรับสัญญาณจากสวิตซ์ ซึ่งใช้ ขา PD5 รับสัญญาณจาก สวิตซ์ตัวที่ 1 และ ขา PD6 รับสัญญาณจาก สวิตซ์ตัวที่ 2
หมายเลข 7.2 เป็น MATHLAB function (COUNT_FUNCTION) ใช้ในการนับขึ้นลงของสวิตซ์ซึ่งจะทำการอธิบายรายละเอียดอีกครั้ง
หมายเลข 7.3 เป็นการนำค่าที่ได้จาก MATHLAB function (COUNT_FUNCTION) ไปเก็บใว้ในตัวแปร cn1
หมายเลข 7.4 เป็นการนำค่าที่ได้จาก MATHLAB function (COUNT_FUNCTION) ไปเก็บใว้ในตัวแปร comparator
หมายเลข 7.5 นำค่าที่เก็บใว้ในตัวแปร cn1 มาใช้งาน
หมายเลข 7.6 นำค่าจากตัวแปร cn1 ที่ถูกส่งให้ไปแสดงผลที่จอ LCD
รูปที่ 18 MATHLAB FUNCTION (PECENS GAS)
อธิบาย โค๊ดจาก MATHLAB FUNCTION (PECENS GAS)
รูปที่ 19 MATHLAB FUNCTION (COMPARATOR)
อธิบาย โค๊ดจาก MATHLAB FUNCTION (COMPARATOR)
รูปที่ 20 MATHLAB FUNCTION (COUNT_FUNCTION)
อธิบาย โค๊ดจาก MATHLAB FUNCTION (COUNT_FUNCTION)