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

การสร้างอาร์เรย์อักขระไบนารี
จอแสดงผลมี 8 แถวและ 8 คอลัมน์ คุณต้องสร้าง "รูปภาพ" โดยใช้ข้อมูลไบต์ทางคณิตศาสตร์ดิบๆ
- เวกเตอร์หัวใจขนาดใหญ่: คุณสร้างอาร์เรย์ที่ประกอบด้วยข้อมูล 8 ไบต์
byte bigHeart[8] = {
B01100110, // Top curves
B11111111,
B11111111,
B11111111, // Widest middle block!
B01111110, // Starting to taper
B00111100,
B00011000,
B00000000 // The tiny bottom point!
};
- เวกเตอร์หัวใจขนาดเล็ก: คุณสร้างอาร์เรย์ที่เหมือนกันของหัวใจดวงเล็กๆ ที่หดตัวลง
- ลูปแอนิเมชัน (
LedControl.h): ลูป C++ ใช้lc.setRow()เพื่อส่งอาร์เรย์bigHeartอย่างรวดเร็วไปยังเมทริกซ์ มันเรียกใช้delay(300);จากนั้นเขียนทับทั้งหน้าจออย่างรุนแรงโดยใช้อาร์เรย์smallHeart! การสลับอย่างรวดเร็วอย่างไม่น่าเชื่อนี้สร้างภาพลวงตาทางกายภาพของการเต้นของชีพจรสีแดง!
โครงสร้างแบบ Cascade ของ MAX7219
เหตุผลที่โปรเจกต์นี้สามารถขยายขนาดได้ไม่จำกัดคือตรรกะแบบ Cascade
- MAX7219 ใช้สายไฟสามเส้น:
DIN (Data), CS (Select), CLK (Clock) - หากคุณต้องการหน้าจอที่ใหญ่ขึ้น คุณสามารถบัดกรีกริด 8x8 อันที่สองเข้ากับขาเอาต์พุตของกริดแรกได้โดยตรง!
- โปรโตคอล SPI จะ "ดัน" ไบต์โค้ดลงไปตามสายโดยอัตโนมัติ ทำให้คุณสามารถ daisy-chain อาร์เรย์ขนาดใหญ่ (เช่น บล็อก 32x8) ได้โดยไม่ต้องใช้สายไฟเพิ่มเติมจาก Arduino เลยแม้แต่เส้นเดียว!
ส่วนประกอบสำหรับ Matrix Valentine
- Arduino Uno/Nano (ฟอร์มแฟคเตอร์มาตรฐานก็เพียงพอแล้ว)
- 8x8 LED Matrix พร้อม MAX7219 Driver Backpack (อย่าซื้อ LED matrix เปล่าๆ ที่ไม่มีชิป เพราะการบัดกรีขาขนาน 16 ขาด้วยตนเองและเขียนโค้ด multiplexer ตั้งแต่เริ่มต้นนั้นทรมานอย่างยิ่ง!)
- แบตเตอรี่แพ็ค 5V ทั่วไป สำหรับการพกพา!