[Arduino] แสดงตัวอักษรบน Dot Matrix MAX7219 8x8 4 ชุด
ปล. จุดที่ปรากฏบน LED Matrix ตัวที่ 2 จากซ้าย น่าจะเป็นปัญหาจากทางฮาร์ดแวร์เอง เวลาจ่ายไฟให้แถวที่ 7 ไฟแถว 8 ดังแสดงด้วย
วันนี้เราจะมาลองสร้างชุดโปรแกรมสำหรับแสดงผล ออกทาง LED Dot Matrix ขนาด 8x8 จำนวน 4 ชุด หรือ 256 pixel กันครับ
Output พวก LED ที่อยู่ในโลกของวงจรอิเล็กทรอนิกส์นั้น มีอยู่มากมายอยู่รอบตัวเราครับ เช่น LED, RGB Diode, 7-Segment และ Dot Matrix
หน้าตาของ LED Dot Matrix ที่มาพร้อม Driver MAX7219
ราคานั้น 100–250 บาท แล้วแต่ร้าน ถ้าเป็นบ้านหม้อ 250 บาท แต่ถ้าสั่งออนไลน์จากจีนราคา 100–180 บาทประมาณนี้ ซึ่งข้อดีของการซื้อแบบนี้เลย เราได้โมดูล และ ชิพเซท ที่พร้อมใช้งาน ไม่ต้องมาบักกรีเองเพื่อเชื่อมทั้ง 4 ตัวเข้าด้วยกัน ซึ่งมันค่อนข้างซับซ้อนมาก หากจะทำเอง
MAX7219 IC Driver
ข้อมูลเพิ่มเติม MAX7129 ถือเป็นพระเอกของงานนี้เลยครับ แต่เดิมนั้นถ้าผมเข้าใจไม่ผิดนะ (ขอรื้อฟื้นความหลังสมัยเรียนอิเล็กทรอนิกส์สักนิด) เขาใช้ในวงการ 7 Segment กรณีต่อหลายๆจุด หรือ บอร์ดไฟที่ต้องการตัวเลขหลายๆหลักเข้าด้วยกัน
โดยรายละเอียดว่าแต่ละขาของไอซีตัวนี้ทำงานยังไง ผมขอข้าม เพราะ ผมก็ลืมไปหมดแล้ว…ฮ่าาา
ติดตั้ง Library (สำหรับ Mac)
เปิด Arduino IDE จากนั้น เลือก Manage Libraries แล้วทำการอัพโหลดเข้าไป หรือ ง่ายกว่านั้น git clone
ไปที่ /Users/<your_user>/Documents/Arduino/libraries
LedControl
เลือกตัวไหนก็ได้ จากนั้นลองออกแบบ Dot Matrix bytes[] ด้วยโปรแกรม
Dot Matrix Editor
เป็นโปรแกรมช่วยออกแบบstatus 0 | 1
บน Dot matrix จำลองบนเวป แล้วทำการแปลง เป็น byte[] ให้เราไปใช้งานต่อ ถ้าไม่ใช้โปรแกรมช่วย เราต้องนั่ง point 0, 1 บน matrix เอง เช่น ตำแหน่ง [1, 1] = 1 จะเป็นการบอกสถานะไฟติด ที่ column 1 แถว 1 ประมาณนี้
Circuit
Example Code
Demo
จากตัวอย่างเป็นโปรเจคง่ายๆในการแสดงข้อความไปยัง dot matrix บนบอร์ด Arduino UNO R3 นอกจากนี้ยีงมี Library ของอีกค่ายที่ผมแนะนำ แต่มันยังมีบั๊กอยู่ ซึ่ง วิธีการ มีดังนี้
MD_MAX72XX = 2.6.0
MD_Parola = 2.6.4
เปิดไฟล์ MD_MAX72.h
และทำการแก้ ตามโค๊ดด้านล่าง [Ref]
/**
\def USE_PAROLA_HW
Set to 1 (default) to use the Parola hardware modules. The
software was originally designed to operate with this hardware type.
*/
#define USE_PAROLA_HW 0และ/**
\def USE_FC16_HW
Set to 1 to use FC16 hardware module kits.
FC16 modules are similar in format to the ICStation modules but are wired differently.
Modules are identified by a FC-16 designation on the PCB
*/
#define USE_FC16_HW 1
จากนั้นทดสอบโค๊ดง่ายๆ
รับค่าทาง Serial monitor
ขอให้สนุกกับการคราฟงานใหม่ๆครับ ~~