I Love You! - หัวใจเต้น - จอแสดงผล 8x8 พร้อม MAX7219
ตรรกะไบนารีของ Grid: จอแสดงผล 8x8 หัวใจเต้น
การเชื่อมต่อ LED 64 ดวงแยกกันเข้ากับ Arduino Uno นั้นเป็นไปไม่ได้ในทางกายภาพ เพราะมีพินเพียง 14 พินเท่านั้น! โปรเจกต์ หัวใจเต้นบนจอแสดงผล 8x8 MAX7219 นำเสนอความมหัศจรรย์ของ "Multiplexing" เชิงอัลกอริทึมที่บริสุทธิ์ โดยการส่งมอบงานหนักให้กับชิป MAX7219 ในตำนาน โปรแกรมเมอร์สามารถสร้างสัญลักษณ์ภาพขนาดใหญ่ที่ซับซ้อนได้ผ่านการสร้าง C++ Hexadecimal array โดยใช้สาย SPI เพียง 3 เส้น!

การสร้าง Binary Character Array
จอแสดงผลมี 8 แถวและ 8 คอลัมน์ คุณต้องสร้าง "รูปภาพ" โดยใช้ raw mathematical bytes
- Giant Heart Vector: คุณสร้าง array ที่ประกอบด้วยข้อมูล 8 bytes
byte bigHeart[8] = {
B01100110, // ส่วนโค้งด้านบน
B11111111,
B11111111,
B11111111, // บล็อกกลางที่กว้างที่สุด!
B01111110, // เริ่มเรียวลง
B00111100,
B00011000,
B00000000 // จุดเล็กๆ ด้านล่างสุด!
};
- Small Heart Vector: คุณสร้าง array ที่เหมือนกันของรูปหัวใจขนาดเล็กที่ย่อส่วนลง
- Animation Loop (
LedControl.h): ลูป C++ ใช้lc.setRow()เพื่อส่งbigHeartarray ไปยัง matrix อย่างรวดเร็ว จากนั้นเรียกใช้delay(300);และเขียนทับทั้งหน้าจออย่างรุนแรงด้วยsmallHeartarray! การสลับที่รวดเร็วอย่างไม่น่าเชื่อนี้สร้างภาพลวงตาทางกายภาพของจังหวะการเต้นของหัวใจสีแดง!
โครงสร้าง MAX7219 Cascade
เหตุผลที่โปรเจกต์นี้สามารถขยายขนาดได้ไม่จำกัดคือตรรกะแบบ Cascade
- MAX7219 ใช้สายไฟสามเส้น:
DIN (Data), CS (Select), CLK (Clock) - หากคุณต้องการหน้าจอที่ใหญ่ขึ้น คุณสามารถบัดกรี 8x8 grid ตัวที่สองเข้ากับพินเอาต์พุตของ grid ตัวแรกได้โดยตรง!
- โปรโตคอล SPI จะ "ดัน" byte code ลงไปในระบบโดยอัตโนมัติ ทำให้คุณสามารถเชื่อมต่อ arrays ขนาดใหญ่ (เช่น บล็อก 32x8) ได้โดยไม่ต้องใช้สายไฟเพิ่มเติมแม้แต่เส้นเดียวจาก Arduino!
ส่วนประกอบสำหรับ Matrix Valentine
- Arduino Uno/Nano (ฟอร์มแฟกเตอร์มาตรฐานเพียงพอแล้ว)
- 8x8 LED Matrix พร้อม MAX7219 Driver Backpack (อย่าซื้อ LED matrix เปล่าๆ ที่ไม่มีชิป เพราะการบัดกรีพินขนาน 16 พินด้วยตนเองและเขียนโค้ด multiplexer ตั้งแต่เริ่มต้นนั้นทรมานอย่างยิ่ง!)
- Generic 5V Battery Pack เพื่อการพกพา!