ชื่อโปรเจกต์: Word Clock ฉบับงบน้อย อะไหล่ไม่กี่ชิ้น
โปรเจกต์นี้พี่เล็งไว้นานแล้วตั้งแต่เห็นใน Project Hub แต่ตอนนั้นต้องใช้พวก shift registers แถมต้องต่อแหล่งจ่ายไฟแยก แถมการเดินสายไฟก็น่าปวดหัว พี่เลยพักไว้ก่อน จนกระทั่งไอ้เจ้า LED WS2812B (Addressable LEDs) มันออกมานี่แหละ ชีวิตง่ายขึ้นเยอะ! พี่สามารถลดขนาดโปรเจกต์ลงจนใช้ [Arduino](https://s.shopee.co.th/7fUgFAWSki) จ่ายไฟให้ LED ได้สบายๆ แถมเขียนโปรแกรมคุมไฟรายดวงได้เลยโดยไม่ต้องพึ่ง shift register ให้วุ่นวาย
งานนี้พี่เน้นประหยัด เพราะไม่มีอุปกรณ์หรูๆ อย่างเครื่อง 3D printer หรือเครื่องกัดปริ้นต์ (PCB) พี่เลยใช้ "กระดาษลัง" ทำแผงกั้นไฟซะเลย ส่วนตัว LED ก็แปะลงบนกระดาษลังเนี่ยแหละ ไม่ต้องใช้แผ่นปริ้นต์ หน้าปัดตัวอักษรพี่ก็ปริ้นต์ลงกระดาษธรรมดา (แต่ถ้าน้องอยากให้หล่อเท่กว่านี้ แนะนำให้ใช้กระดาษไขหรือพลาสติกโปร่งแสงนะ ไฟจะนวลมาก) วงจรก็ง่ายๆ เพราะโปรเจกต์นี้พี่ออกแบบให้ไฟติดพร้อมกันไม่เกิน 7 ดวง ซึ่ง Arduino Nano ตัวเดียวเอาอยู่แน่นอน สู้งานนะน้อง!
ขั้นตอนแรกคือปริ้นต์แบบหน้าปัดออกมาก่อน พี่เลือกขนาด 7x7 ซม. เพื่อให้ LED หนึ่งดวงส่องสว่างให้แต่ละคำได้แบบพอดีๆ

ขั้นตอนที่สอง ทำช่องกั้นแสงจากกระดาษลัง เพื่อไม่ให้แสงไฟมันฟุ้งไปทับคำข้างๆ

จัดวาง LED ลงบนกระดาษลังให้ตรงกับช่องกั้นที่เราเตรียมไว้

เชื่อมต่อสายไฟ LED เลยน้อง ดูตามตัวเลขที่พี่มาร์กไว้ใน Layout ด้านล่างนะ

ผังการต่อสายไฟ LED (ดูให้ดี ห้ามช็อตนะตัวนี้)

ส่วนตัวโค้ด (Sketch) พี่เขียนให้มันโชว์สีต่างกันเพื่อบอกว่าเป็นช่วง AM หรือ PM เวลาจะถูกตั้งค่าให้ตรงกับตอนที่เราเบิร์นโปรแกรมลงไปเพื่อให้โมดูล RTC เดินเวลาได้ถูกต้อง โค้ดนี้พี่ไม่ได้ย่อให้สั้นนะ เน้นเขียนแบบดิบๆ ให้น้องอ่านแล้วเข้าใจง่ายที่สุด จัดไปวัยรุ่น!
รายละเอียดทางเทคนิคเพิ่มเติม
นาฬิกาบอกเวลาด้วยตัวอักษรฉบับมินิมอล
โปรเจกต์ Word Clock นี้ตัดความยุ่งยากของนาฬิกาทั่วไปออก แล้วเปลี่ยนมาใช้การแสดงผลแบบตัวหนังสือเท่ๆ โดยใช้อุปกรณ์ให้น้อยชิ้นที่สุด
- Direct-Drive LED Matrix: แทนที่จะใช้ชิป Driver เยอะแยะ พี่ใช้แค่ Pins ของ Arduino ร่วมกับโมดูล MAX7219 (หรือสั่งตรงเข้า LED) เพื่อยิงไฟใส่คำเฉพาะอย่าง "IT IS," "TEN," "PAST," "SIX" ผ่านแผ่นฉลุที่เตรียมไว้
- RTC Precision: ใช้โมดูล DS3231 RTC เพื่อให้เวลาเดินเที่ยงตรงเป๊ะๆ โดยไม่ต้องต่ออินเทอร์เน็ตให้วุ่นวาย
ลอจิกของโค้ดที่มีประสิทธิภาพ
- Word-Mapping Algorithm: พี่ใช้ตาราง bit-masking จับคู่เวลาในแต่ละนาทีเข้ากับชุด LED ที่กำหนดไว้ ช่วยลดความซับซ้อนในการคำนวณหน้าจอใหม่ในทุกนาที ลื่นปรื๊ดแน่นอน!