EasyDim เป็นโมดูลหรี่ไฟ 220V ใช้ควบคุมความสว่างของหลอดไส้หรือขดลวดความร้อนที่ใช้ไฟฟ้ากระแสสลับ 220V (ไฟบ้าน) ออกแบบโดย บริษัท อาร์ทรอน ชอป จำกัด (www.artronshop.co.th) สามารถนำไปประยุกต์ใช้ในโครงงานที่ต้องการควบคุมอุณหภูมิ เช่น ตู้ฝักไข่อัตโนมัติโดยใช้หลอดไส้ให้ความร้อน ตู้อบผลไม้ กาต้มน้ำควบคุมอุณหภูมิ เป็นต้น โดยตัวโมดูลใช้เทคนิคที่เรียกว่า Zero Crossing Detector มาตรวจจับหาจุด 0V ของคลื่นไซน์ของไฟ 220V จากนั้นจึงหน่วงเวลาทริกไทรแอทเพื่อควบคุมมุมเฟสของสัญญาณเพื่อไปป้อนให้กับเครื่องใช้ไฟฟ้าต่อไป ขบวนการดังกล่าวถูกควบคุมและจัดการโดยไมโครคอนโทรลเลอร์ STM8 ที่อยู่บนบอร์ด EasyDim ผู้ใช้สามารถเขียนโปรแกรมสั่งงานผ่าน I2C เพื่อกำหนดความสว่าง/ความร้อน ได้ทันที ในด้านเครื่องมือที่ใช้ในการพัฒนา มีให้ไลบารี่ให้ในโปรแกรม ArduinoIDE ส่วนเสริมใน microBlockIDE และปลั๊กอินเสริมใน KidBrightIDE และ KBIDE การต่อวงจรใช้งานและการเขียนโปรแกรมของแต่ละเครื่องมือ มีรายละเอียดในเอกสารฉบับนี้แล้ว
ดูรายละเอียด/สั่งซื้อ EasyDim โมดูลหรีไฟ 220V
โมดูล EasyDim ประกอบด้วยจุดเชื่อมต่อ 3 จุด คือ (1) จุดจ่ายไฟเข้า 220V, (2) จุดต่อเครื่องใช้ไฟฟ้า และ (3) จุดต่อไมโครคอนโทรลเลอร์ แต่ละจุดมีตำแหน่งดังรูปที่ 1.1
รูปที่ 1 จุดเชื่อมต่อบนโมดูล EasyDim
ตัวอย่างการต่อวงจร EasyDim ควบคุมความสว่างของหลอดไส้ 220V แสดงดังรูปที่ 1.2
รูปที่ 2 วงจรต่อใช้งาน EasyDim
โมดูล EasyDim ใช้การเชื่อมต่อผ่าน I2C ซึ่งเป็นการเชื่อมต่อแบบอนุกรม ต่ออุปกรณ์หลาย ๆ ตัวบนสายเส้นเดียวกัน (SDA, SCL) โดยมีหมายเลขประจำตัว (Address) เป็นตัวอ้างอิงว่าจะคุยกับอุปกรณ์ตัวไหน โดยโมดูล EasyDim มีหมายเลขประจำตัวเป็น 0x10 เป็นค่าเริ่มต้น หากต้องการแก้ไขเนื่องจากจะใช้โมดูล EasyDim หลายโมดูลบนบัสเดียวกัน หรือหมายเลขชนกับอุปกรณ์อื่น สามารถเปลี่ยนหมายเลขของโมดูลได้โดยปรับ DIP สวิตช์ ดังตารางที่ 1
ตารางที่ 1 การปรับสวิตช์เพื่อเปลี่ยนหมายเลขประจำตัวอุปกรณ์ (Address)
รูปแบบสวิตช์ | หมายเลขประจำตัว | รูปแบบสวิตช์ | หมายเลขประจำตัว |
![]() |
0x10 | ![]() |
0x11 |
![]() |
0x12 | ![]() |
0x13 |
![]() |
0x14 | ![]() |
0x15 |
![]() |
0x16 | ![]() |
0x17 |
หลังจากปรับ DIP สวิตช์แล้ว ตอนเขียนโปรแกรมจำเป็นต้องกำหนดหมายเลขอุปกรณ์ที่ถูกต้องในโค้ดโปรแกรมด้วย
ตัวอย่างเลือกใช้บอร์ด Arduino Nano ให้ต่อสายดังนี้
รูปที่ 3 การต่อ EasyDim กับบอร์ด Arduino Nano
ดาวน์โหลดและติดตั้งโปรแกรม ArduinoIDE ให้เรียบร้อย จากนั้นติดตั้งไลบารี่ EasyDim-Arduino เพิ่ม โดยมีขั้นตอนการดาวน์โหลดดังนี้
1) เข้าไปที่ https://github.com/artronshop/EasyDim-Arduino
2) กดปุ่ม Code (1) แล้วเลือก Download ZIP (2)
3) เลือกที่เก็บไฟล์ไลบารี่ แล้วกดปุ่ม Save
4) ได้ไฟล์ EasyDim-Arduino-master.zip เป็นอันสิ้นสุดการดาวน์โหลดไลบารี่
เปิดโปรแกรม ArduinoIDE ขึ้นมา จากนั้นติดตั้งไลบารี่ EasyDim-Arduino ตามขั้นตอนดังนี้
1) กดเมนู Sketch > Include Library เลือก Add .ZIP Library
2) เลือกไฟล์ไลบารี่ที่ได้ดาวน์โหลดไว้ แล้วกด Open
3) หากติดตั้งสำเร็จ จะแสดงข้อความ Library added (ดังรูป)
ใช้โปรแกรมต่อไปนี้ทดสอบ
ผลที่ได้ หลอดไฟจะติดสว่าง 0%, 25%, 50%, 75% และ 100% ตามลำดับ
นอกจากการเขียนโปรแกรมสั่งงานด้วยภาษา C/C++ แล้ว ยังสามารถใช้โปรแกรม KBIDE ในการลากวางบล็อกเพื่อเขียนโค้ดได้ สามารถอ่านรายละเอียดได้ที่ การใช้งาน EasyDim กับบอร์ด ESP32
ต่อวงจรดังรูปต่อไปนี้
รูปที่ 4 การต่อ EasyDim กับบอร์ด IOXESP32
ติดตั้งโปรแกรม ArduinoIDE ดาวน์โหลดและติดตั้งไลบารี่ EasyDim-Arduino และใช้โค้ดโปรแกรมในหัวข้อ การใช้งาน EasyDim กับบอร์ด Arduino ในการทดสอบ
การใช้ EasyDim กับ ESP32 (หรือบอร์ด Arduino) สามารถใช้โปรแกรม KBIDE ซึ่งใช้การลากวางบล็อกในการเขียนโปรแกรม ให้ติดตั้งโปรแกรม KBIDE ให้เรียบร้อย เลือกบอร์ด ดาวน์โหลดไลบารี่ EasyDim-Arduino ตามขั้นตอนในหัวข้อ การใช้งาน EasyDim กับบอร์ด Arduino จากนั้นติดตั้งปลั๊กอิน EasyDim ตามขั้นตอนดังนี้
1) เปิดโปรแกรม KBIDE ขึ้นมา แล้วกดไปที่ File เลือก Open Plugin folder
2) หน้าต่างโฟลเดอร์ plugins จะแสดงขึ้นมา ให้แตกไฟล์ EasyDim-Arduino-master.zip มาไว้ในโฟลเดอร์นี้ จากนั้นเปลี่ยนชื่อโฟลเดอร์เป็น EasyDim
3) เข้าไปในโฟลเดอร์ EasyDim จะต้องมีไฟล์และโฟลเดอร์ดังรูป
4) ปิดโปรแกรม KBIDE แล้วเปิดใหม่ กดที่เมนู Plugins จะพบเมนู EasyDim แล้ว
ลากบล็อกมาต่อกันดังนี้
แล้วอัพโหลดโปรแกรม ผลที่ได้ หลอดไฟติด 50% และ 100% ตามลำดับ
หลักการทำงาน: ในบล็อก Loop ประกอบด้วยบล็อก EasyDim write … % ใช้กำหนดค่าให้ EasyDim ทำงาน โดยกำหนดได้ 0% ถึง 100%, บล็อกก delay ใช้หยุดโปรแกรมตามที่กำหนด จากโค้ดด้านบนจะเห็นได้ว่า มีการใช้บล็อกสั่งให้ EasyDim ทำงาน 50% แล้วหยุด 0.5 วินาที (500 mS) จากนั้นสั่งให้ EasyDim ทำงาน 100% แล้วหยุด 0.5 วินาที (500 mS) ผลที่ได้หลอดไฟจึงติด 50% และ 100% ตามลำดับ
ใช้สาย KB Chain (ต้องซื้อแยก) เชื่อมต่อระหว่างบอร์ด KidBright/OpenKB กับ EasyDim ดังรูปต่อไปนี้
รูปที่ 5 การต่อ EasyDim กับบอร์ด KidBright32i
การเขียนโปรแกรมใช้การลากบล็อกด้วยโปรแกรม KidBrightIDE, KBIDE หรือ microBlock IDE • การเขียนโปรแกรมด้วย KBIDE สามารถดูได้ที่ การใช้งาน EasyDim กับบอร์ด ESP32 ส่วนโปรแกรม microBlock IDE และ KidBrightIDE มีขั้นตอนดังนี้
ติดตั้งโปรแกรม microBlock IDE ให้เรียบร้อย จากนั้นเปิดโปรแกรมขึ้นมา สร้างโปรเจคใหม่ เลือกบอร์ด แล้วติดตั้งส่วนเสริม EasyDim ตามขั้นตอนดังนี้
1) กดปุ่ม Extension
2) ในช่องค้นหา ให้พิมพ์ EasyDim แล้วกดปุ่ม Install
3) เมื่อติดตั้งเสร็จแล้ว จะมีเครื่องหมายถูกต่อท้ายชื่อส่วนเสริม (ดังรูป) ให้กดปิดหน้าต่างไปได้เลย
4) ที่แถบด้านขวา จะมีเมนู EasyDim ให้ลากบล็อกออกมาใช้งานแล้ว
ลากบล็อกมาต่อกันดังนี้
แล้วอัพโหลดโปรแกรม ผลที่ได้ หลอดไฟติด 50% และ 100% ตามลำดับ
หลักการทำงาน: ในบล็อก Loop ประกอบด้วยบล็อก EasyDim write … % ใช้กำหนดค่าให้ EasyDim ทำงาน โดยกำหนดได้ 0% ถึง 100%, บล็อกก delay ใช้หยุดโปรแกรมตามที่กำหนด จากโค้ดด้านบนจะเห็นได้ว่า มีการใช้บล็อกสั่งให้ EasyDim ทำงาน 50% แล้วหยุด 0.5 วินาที (500 mS) จากนั้นสั่งให้ EasyDim ทำงาน 100% แล้วหยุด 0.5 วินาที (500 mS) ผลที่ได้หลอดไฟจึงติด 50% และ 100% ตามลำดับ
เข้าไปดาวน์โหลดไฟล์ปลั๊กอิน EasyDim ที่ https://store.kidbright.info/plugin/49/ ตามขั้นตอนดังนี้
1) เลื่อนลงมาด้านล่าง กดปุ่ม ดาวน์โหลดเวอร์ชั่นนี้ ของเวอร์ชั่นล่าสุด
2) เลือกที่เก็บไฟล์ แล้วกด Save
3) ได้ไฟล์ปลั๊กอินชื่อ EasyDim Plugin V1.0.0.zip
จากนั้นติดตั้งปลั๊กอิน EasyDim โดย
1) เปิดโปรแกรม KidBright IDE ขึ้นมา กด Plugins เลือก Install Plugins
2) เลือกไฟล์ปลั๊กอินที่ได้ดาวน์โหลดมา แล้วกดปุ่ม Open
3) รอติดตั้งปลั๊กอินซักครู่
4) เมื่อติดตั้งเสร็จแล้ว โปรแกรม KidBright IDE จะปิดและเปิดใหม่อัตโนมัติ กดที่เมนู Plugin > EasyDim จะเจอบล็อกใหม่แล้ว
ลากบล็อกมาต่อกันดังนี้
แล้วอัพโหลดโปรแกรม ผลที่ได้ หลอดไฟติด 50% และ 100% ตามลำดับ
หลักการทำงาน: ในบล็อก Loop ประกอบด้วยบล็อก EasyDim write … % ใช้กำหนดค่าให้ EasyDim ทำงาน โดยกำหนดได้ 0% ถึง 100%, บล็อกก delay ใช้หยุดโปรแกรมตามที่กำหนด จากโค้ดด้านบนจะเห็นได้ว่า มีการใช้บล็อกสั่งให้ EasyDim ทำงาน 50% แล้วหยุด 0.5 วินาที (500 mS) จากนั้นสั่งให้ EasyDim ทำงาน 100% แล้วหยุด 0.5 วินาที (500 mS) ผลที่ได้หลอดไฟจึงติด 50% และ 100% ตามลำดับ