เรียน-เล่น-โค้ด KidBright32iP กับ microBlock IDE EP8: ZX-RGB12C (Neopixel)

ทดลองใช้งาน LED 3 สีแบบ RGB โปรแกรมได้ 12 ดวงแบบแผ่นกลมกัน

คุณสมบัติ

  • ติดต่อกับ KidBright32iP ใช้สายเส้นเดียว
  • ใช้ไอซี WS2812 ติดตั้งไว้ 12 ดวง
  • เลือกสีได้ 16.7 ล้านสี 
  • ปรับความสว่างได้ 255 ระดับ
  • ต่อพ่วงเพิ่มจำนวนของการแสดงผลได้ไม่จำกัดจำนวน
  • ใช้ไฟในย่าน +3 ถึง +5V

การเพิ่ม Extension เพื่อใช้งาน ZX-RGB12C

  1. เปิดหน้าต่าง Extension

  1. ที่หน้าต่าง Extension ค้นหา Extension ชื่อ Neopixel แล้วกดติดตั้ง

ชุดคำสั่งภายในหัวข้อ Neopixel

ตำแหน่งขา IO (ESP32) เมื่อเทียบกับชื่อขาของ KidBright32iP

จากรูปเป็นวงจรของบอร์ด KidBright32iP ซึ่งมีไมโครคอนโทรลเลอร์หลักเป็น ESP32 ขาอินพุต/เอาต์พุตต่างๆ จะระบุเป็นชื่อตัวเลข เมื่อเทียบเคียงกับบอร์ด KidBright32iP ขาเหล่านี้จะมีชื่อต่างออกไป เช่นขา O2 จะเป็น IO หมายเลข 27 เป็นต้น โดยคำสั่งของ Neopixel จะอ้างอิงชื่อขาจากรูปแบบขา IO
ของ ESP32

ตัวอย่างที่ 34 ZX-RGB12C ติดเป็นสีรุ้ง

คำสั่งในหัวข้อ Neopixel มีคำสั่งชื่อ Rainbow ที่จะค่อยๆ เปลี่ยนสีของ LED ทั้งหมดตามเวลา เป็นตัวอย่างง่ายที่สุดที่ใช้ทดสอบการทำงานของ ZX-RGB12C

โมดูล ZX-RGB12C ขนาด 12 หลอดเลือกต่อเข้ากับบอร์ด KidBright32iP ที่พอร์ต O2 ซึ่งตรงกับ IO27 โดยใช้เลข 27 เพื่อกำหนดขาไปที่ตำแหน่งนี้

การทำงาน

เริ่มต้นคำสั่งด้วยคำสั่ง NeoPixel setup เพื่อกำหนดตำแหน่งขาที่เชื่อมต่อและกำหนดจำนวนหลอด LED ที่ต่อพ่วงอยู่ จากนั้นกำหนดความสว่างของ LED ไว้ที่ 20% ซึ่งมองแล้วไม่ทำให้ปวดตา จากนั้นวนลูป เรียกคำสั่ง rainbow เพื่อให้ ZX-RGB12C ทั้ง 12 ดวงค่อยๆ เปลี่ยนสีไปเรื่อยๆ

ตัวอย่างที่ 35 ให้ ZX-RGB12C ติดเป็นสีแดงสลับเขียว

การต่อสายสัญญาณยังเหมือนกับตัวอย่างที่ 34 แต่เลือกใช้คำสั่ง NeoPixel fill color ซึ่งจะส่งค่าสีเดียวกันไปยัง LED ทุกดวง โดย LED จะยังไม่เปลี่ยนสีจนกระทั่งเจอคำสั่ง NeoPixel show

การทำงาน

ตัวอย่างนี้วนลูปแสดงสีแดง 1 วินาทีแล้วสลับแสดงสีเขียว 1 วินาที

ตัวอย่างที่ 36 ZX-RGB12C ไล่ติดทีละดวงและไล่ดับทีละดวง

คำสั่ง Neopixel number set color จะกำหนดสีของ LED ได้ตามตำแหน่งที่ต้องการ โดยต้องใช้ร่วมกับ NeoPixel show ตัวอย่างนี้จะสั่งให้ติดเป็นสีน้ำเงิน แล้วสั่งให้ดับด้วยการส่งสีดำออกไป

การทำงาน

เนื่องจาก LED มี 12 ดวง ตัวอย่างนี้ใช้คำสั่ง count with เพื่อวนลูป 12 รอบ (0-11) เพื่อชี้ตำแหน่งของ LED จากนั้นสั่งให้ LED ติดไล่ลำดับไปเรื่อยๆ จนครบ 12 หลอดด้วยสีน้ำเงิน เมื่อครบแล้วเข้าสู่คำสั่ง count with อีกชุดเพื่อวนลูปแสดงสีด้วยสีดำเพื่อให้หลอดที่ติดอยู่เดิมทยอยดับ

ตัวอย่างที่ 37 ปรับความสว่างของ ZX-RGB12C

คำสั่ง NeoPixel set brightness จะระบุค่าความสว่างเป็นเปอร์เซ็นต์ 0-100 ตัวอย่างนี้จะไประดับความสว่างจากน้อยไปหามาก และย้อนจากมากมาหาน้อย เป็นเหมือนไฟวูปที่ ZX-RGB12C

การทำงาน

โค้ดหลักจะใช้คำสั่ง count with นับค่าจาก 0-100 โดยเพิ่มค่าทีละ 5 จากนั้นนำค่าที่นับส่งเป็นค่าเปอร์เซ็นต์ความสว่าง เลือกแสดงสีที่หน้าจอเป็นสีขาว เพิ่มความสว่างทุกๆ 0.05 วินาทีจนครบ 100% และเรียกคำสั่ง count with อีกชุดเพื่อลดค่าความสว่างลงจนเหลือ 0

ZX-RGB12C ยังสามารถประยุกต์ใช้งานได้อีกหลากหลาย ลองใช้ชุดคำสั่งที่มีตามตัวอย่างไปทดลองเพิ่มเติมดูนะครับ ตอนนี้ขอจบไว้เท่านี้ก่อนครับ

Facebook Comments Box