วันจันทร์ที่ 5 ตุลาคม พ.ศ. 2563

ตอนที่ 11 KidBright ต่อ Output ควบคุมพัดลมตามเวลาและอุณหภูมิผ่านรีเลย์

    เมื่อเรามีบอร์ดควบคุมอย่าง KidBright และมีรีเลย์พร้อมกับแหล่งจ่ายไฟภายนอกเราก็สามารถควบคุมการทำงานของอุปกรณ์ขนาดใหญ่ขึ้นได้ 

    บอกเสริมไว้ก่อนว่าโดยปกติแล้วบอร์ด KidBright ตั้งแต่เวอร์ชั่นแรกจนถึง1.4 มีความสามารถจ่ายไฟฟ้า 5V. และ 3.3V. แต่ตั้งแต่เวอร์ชัน 1.5 เป็นต้นไป KidBright เริ่มเปลี่ยนเป็น Low power board จ่ายไฟได้เฉพาะ 3.3V. เท่านั้น เวลาเลือกเซ็นเซอร์หรืออุปกรณ์ต่อพ่วงอื่น ๆ มาใช้ก็ต้องดูดี ๆ ว่าเป็นแบบ 5V.  หรือ 3.3V. นะจ๊ะ

    แต่ที่อยากเน้นสิ่งต้องพูดถึงในตอนนี้คือถ้าเราจะเอาบอร์ด KidBright ไปขับอุปกรณ์ภายนอกอื่น ๆ ล่ะ เราต้องระมัดระวังมาก ๆ นะ เดิมทีที่เคยเขียนไว้ในตอนเก่า ๆ คือการเอาบอร์ด KidBright ไปควบคุมการจ่ายไฟให้หลอดไฟแอลอีดีผ่านพอร์ต USB หรือการต่อตรงจาก OUT1 อันนี้สามารถทำได้เลยเพราะหลอดแอลอีดีกินกระแสกับแรงดันนิดเดียว ทีนี้พอเราอยากจะเอาบอร์ดไฟขับอุปกรณ์ตัวที่ใหญ่ขึ้น ภาระทางไฟฟ้าเยอะขึ้นเราคงไม่อยากให้บอร์ดเราทำงานหนักจนพังได้ จึงต้องต่ออุปกรณ์เหล่านั้นเข้ากับแหล่งจ่ายไฟภายนอกแล้วใช้แค่สัญญาณดิจิตอลจากพอร์ต OUT1 หรือ OUT2 ไปสั่งรีเลย์ให้เป็นสวิตช์สับการจ่ายไฟอีกที เรามาดูรูปรีเลย์กันก่อนนะ


    จากรูปเป็นโมดูลรีเลย์ที่ใช้ไฟเลี้ยง 5V. มี 4 channels คือมีช่องต่อควบคุมอุปกรณ์ไฟฟ้าได้ 4 ตัว สามารถรับแหล่งจ่ายไฟภายนอกและขับอุปกรณ์ได้ทั้งแบบ กระแสสลับ 220V. 10A. และ กระแสตรง 30V. 10A. การทำงานของรีเลย์โดยทั่วไปเมื่อมีการจ่ายไฟเข้าหรือก็คือเมื่อมีการส่งสัญญาณจากบอร์ดมาทีโมดูลแล้วปล่อยไฟให้รีเลย์ จะเป็นการสลับสวิตช์เชื่อมต่อระหว่าง  COM กับ NO และ COM กับ NC (ดูสีแดง) ดังรูป

    NC = Normally close (ปกติปิด) คือ เมื่อไม่ถูกกระตุ้น ขา NC กะ ขา COM จะเชื่อมต่อกัน NO = Normally open (ปกติเปิด) ก็คือ เมื่อไม่ถูกกระตุ้นขา NO นี้จะไม่ต่อกับขา COM เมื่อมีสัญญาณมากระตุ้นให้จ่ายไฟเข้าจะเกิดการเปลี่ยนสถานะของรีเลย์ ขา NC จะแยกจาก COM (เปิด) ในขณะที่ขา NO จะมาต่อเชื่อมกับ COM (ปิด) เราจึงใช้ประโยชน์ของขา NO กับ COM นี้เป็นเหมือนสวิตช์ทางไฟฟ้าเชื่อมต่อวงจรไฟที่จ่ายให้อุปกรณ์ภายนอก ต่อแบบด้านล่างนี้

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

    จากภาพโปรแกรมจะเขียนเป็นงาน (Task) 2 งานทำพร้อมกัน คำสั่ง Task เอามาจากแถมเมนู Advance ข้อดีของการใช้คำสั่งนี้คือบอร์ด KidBright จะทำงานพร้อมกันทั้ง Task 1 และ Task 2 ไม่ต้องรอให้ทำงานจนจบคำสั่งทีละบรรทัด โดยเฉพาะการแสดงผลบนจอแอลอีดีจะใช้เวลานานกว่าคำสั่งอื่นเลยให้ทำงานแยกไปเป็น Task 1 ซะ แล้ว Task 2 ให้สั่งการควบคุมรีเลย์อย่างเดียว

    ถ้าดูตามลำดับการทำงาน ใน Task 1 เมื่อเริ่มต้นโปรแกรมให้แสดงค่าวันกะเวลาและอุณหภูมิปัจจุบันด้วยคำสั่ง LED 16x8 Scroll ... เท่านั้น ส่วน Task 2  สั่งให้เก็บค่าชั่วโมงกับอุณหภูมิไว้ในตัวแปร hour และ Temperature แล้วใช้ if...do...เปรียบเทียบค่ากับเงื่อนไขโดยกำหนดว่าถ้าเวลาอยู่ในช่วง 8.00-17.00 น. และ อุณหภูมิสูงตั้งแต่ 20 องศาเซลเซียสเป็นต้นไป ให้ส่งสัญญาณ "1" (Write Output Status On) เพื่อให้พัดลมทำงาน ถ้านอกเงื่อนไขทั้งหมดให้ให้ส่งสัญญาณ "0" (Write Output Status Offพัดลมหยุดทำงาน ใส่ Delay ไว้นิดนึงจะได้ไม่กระชากไฟพัดลมมากนัก มาดูวิดีโอกัน (โต๊ะรกนิดหน่อยนะจ๊ะ...)


ออ ลืมบอกไป แหล่งจายภายนอกที่ใช้ในวิดีโอเป็น Switching Power Supply 12V. ซื้อได้ทั่วไปที่ร้านอมร หรือตามเว็ปก็ได้นะ ถ้ายังไม่อยากเล่นกับไฟ 220V. อันนี้ก็ปลอดภัยกว่าจ้ะ 

ครั้งหน้าพบกันใหม่นะจ๊ะ วันนี้เอาแค่นี้ก่อน ขอบคุณที่อ่านจนจบจ้า






 


 

ตอนที่ 11 KidBright ต่อ Output ควบคุมพัดลมตามเวลาและอุณหภูมิผ่านรีเลย์

     เมื่อเรามีบอร์ดควบคุมอย่าง KidBright และมีรีเลย์พร้อมกับแหล่งจ่ายไฟภายนอกเราก็สามารถควบคุมการทำงานของอุปกรณ์ขนาดใหญ่ขึ้นได้      บอกเสร...