การเขียนโปรแกรมควบคุมหุ่นยนต์ด้วย Arrow Control (ตอนที่ 4) - การควบคุมรีเลย์



ในบทความครั้งนี้อาจไม่ใช่การควบคุมหุ่นยนต์โดยตรง แต่เป็นใช้งานโมดูลรีเลย์ที่สามารถนำไปประยุกต์ใช้ควบคุมอุปกรณ์ไฟบ้าน ซึ่งการที่จะควบคุมไฟฟ้า 110-220 VAC โดยอุปกรณ์ไมโครคอนโทลเลอร์ได้นั้น จะต้องมีอุปกรณ์สำหรับแยกวงจรไฟฟ้าแรงดันสูงและวงจรไฟฟ้าแรงดันต่ำ เพื่อทำให้เกิดความปลอดภัยกับผู้ใช้งานที่ควบคุมอยู่ในส่วนวงจรไฟฟ้าแรงดันต่ำ

อุปกรณ์ที่นิยมใช้กันก็คือ รีเลย์ (Relay) เป็นอุปกรณ์ที่ทำหน้าที่เป็นสวิทช์ ซึ่งควบคุมด้วนสนามแม่เหล็ก หลักการทำงานก็คือ ขดลวด (Coil) จะเหนี่ยวนำจากฝังไฟฟ้าแรงดันต่ำ แล้วไปสร้างสนามแม่เหล็กให้กับหน้าสัมผัส (Contact) ของฝังแรงดันสูงเปิดปิดไปมา

รีเลย์ฝั่งแรงดันสูงจะมีอยู่ 3 ขา ได้แก่
- C (Common) : ขาอ้างอิง
- NC (Normally Closed) : ขาเมื่อไม่มีกระไฟฟ้าจะเป็นวงจรปิด (ON)
- NO (Normally Open) : ขาเมื่อไม่มีกระไฟฟ้าจะเป็นวงจรเปิด (OFF)

การควบคุมรีเลย์จะมีอยู่ 2 เงื่อนไขคือ
1. ในสภาวะปกติ (ไม่มีกระแสไฟฟ้าจ่ายเข้าไปในฝั่งไฟฟ้าแรงดันต่ำ) : หน้าสัมผัส C จะชนกับ NC
2. ในสภาวะจ่ายไฟฟ้า (มีกระแสไฟฟ้าจ่ายเข้าไปในฝั่งไฟฟ้าแรงดันต่ำ) : หน้าสัมผัส C จะชนกับ NO

สำหรับรีเลย์ที่นำมาใช้กับอุปกรณ์ไมโครคอนโทลเลอร์จะนิยมใช้แบบโมดูล ซึ่งจะมีพอร์ตสำหรับเชื่อมต่อกับสายสัญญาณและอุปกรณ์ไฟฟ้าให้ง่ายขึ้น โดยทั่วไปรีเลย์สำหรับอุปกรณ์อิเล็กทรอนิกส์จะทำงานแบบ Active Low ซึ่งหมายถึงเมื่อจ่ายสัญญาณ 0 หรือ 0 V หรือต่อลง GND จะทำให้รีเลย์จะทำงาน แต่การที่จะบอกว่าอุปกรณ์ไฟฟ้า ON หรือ OFF ได้นั้นก็ขึ้นอยู่กับว่าอุปกรณ์ไฟฟ้าที่เรานำมาต่อกับโมดูลรีเลย์ต่อระหว่างขา C กับ NC หรือ NO

ถ้าอุปกรณ์ไฟฟ้าต่อกับขา C และ NC เมื่อไม่มีสัญญาณเข้าหรือสัญญาณเป็น 1 โมดูลรีเลย์จะ ON
ถ้าอุปกรณ์ไฟฟ้าต่อกับขา C และ NO เมื่อไม่มีสัญญาณเข้าหรือสัญญาณเป็น 1 โมดูลรีเลย์จะ OFF

สามารถสรุปได้จาตารางข้างล่าง


ต่อไปจะยกตัวอย่างการประยุกต์ใช้งาน เป็นการควบคุมรีเลย์ด้วยสวิทช์ โดยรายการอุปกรณ์มีดังนี้
- บอร์ด Arduino Uno x 1
- สวิทช์ Tact x 1
- ตัวต้านทาน 220 โอห์ม x 1
- ตัวต้านทาน 10k โอห์ม x 1
- ชุดหลอดไฟพร้อมสาย x 1
- โฟโต้บอร์ด x 1
- สายเชื่อมต่อจำนวนตามเหมาะสม

ก่อนอื่นต่อวงจรตามแผนภาพข้างล่าง โดยออกแบบให้สวิทช์ทำงานแบบ Active Low



สำหรับตัวอย่างแรก กำหนดให้มีสวิทช์ 1 ตัวสำหรับควบคุมหลอดไฟ โดยกดปุ่มค้างไว้เพื่อให้หลอดไฟสว่าง ถ้าปล่อยแล้วหลอดไฟจะดับ สามารถเขียนโปรแกรมด้วยซอฟต์แวร์ Arrow Control ได้ดังนี้

หลักการทำงานโปรแกรมก็คือ เมื่อกดสวิทช์ Tact ขาอนาล็อก A0 จะต่อลง GND นั้นก็คือการส่งสัญญาณ 0 เข้าไป ตามเงื่อนไขทางแยกด้านบน ก็จะกำหนดให้ขาอนาล็อก A1 เขียนสัญญาณ 0 ออกมาที่โมดูลรีเลย์ ซึ่งจะไปควบคุมให้หลอดไฟสว่างนั่นเอง
แต่ถ้าปล่อยสวิทช์ Tact ขาอนาล็อก A0 จะต่อกับ Vcc หรือ 5V นั้นก็คือการส่งสัญญาณ 1 เข้าไป ตามเงื่อนไขทางแยกด้านล่าง ก็จะกำหนดให้ขาอนาล็อก A1 เขียนสัญญาณ 1 ออกมาที่โมดูลรีเลย์ ซึ่งจะไปควบคุมให้หลอดไฟดับลง

สำหรับตัวอย่าง 2 กำหนดให้มีสวิทช์ 1 ตัวสำหรับควบคุมหลอดไฟ ถ้าหลอดไฟดับอยู่ เมื่อกดสวิทช์จะทำให้หลอดไฟสว่าง แต่ถ้าหลอดไฟสว่างเมื่อกดสวิทช์จะทำให้หลอดไฟดับ เราสามารถเขียนโปรแกรมด้วยซอฟต์แวร์ Arrow Control ได้ดังนี้

หลักการทำงานคือ กำหนดให้เริ่มต้นทุกครั้งรีเลย์จะไม่ทำงานนั้นก็คือขา A1 จะส่งสัญญาณ 1 ให้รีเลย์ และกำหนดเพิ่มเติมให้ตัวแปร X เท่ากับ 1 หลังจากนั้นค่อยมาตรวจสอบว่ามีการกดสวิทช์หรือไม่ ถ้ากดก็จะไปเส้นทางด้านบนเพื่อตรวจสอบตัวแปร X

ถ้า X มีค่าเป็น 1 นั้นหมายถึงรีเลย์ OFF ดังนั้นขา A1 ก็จะส่งสัญญาณ 0 และกำหนดตัวแปร X เท่ากับ 0 เพื่อให้รีเลย์ ON
ถ้า X มีค่าเป็น 0 นั้นหมายถึงรีเลย์ ON ดังนั้นขา A1 ก็จะส่งสัญญาณ 1 และกำหนดตัวแปร X เท่ากับ 1 เพื่อให้รีเลย์ OFF
และทั้ง 2 กรณีข้างต้นก็จะหน่วงเวลาประมาณ 0.3 วินาที สำหรับเวลาที่นิ้วไปกดค้างไว้

ส่วนในกรณีที่ไม่กดสวิทช์ ระบบก็จะไม่เปลี่ยนการทำงานหรือค้างค่าเดิมไว้

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

ฝากติดตามงานของเราในตอนต่อๆไปด้วยครับ

หมายเหตุ บทความนี้ลงพร้อมกันที่ 3DRobot.Club
Share on Google Plus

Kasidit

    Facebook
    Blogger

0 comments:

Post a Comment

Powered by Blogger.