กลับไปหน้ารวมไฟล์
arduino-32x8-led-matrix-max7219.md

การเรียงลำดับ SPI ขนาดใหญ่: 32x8 LED Matrix

เมทริกซ์ 8x8 เดี่ยว ๆ นั้นเรียบง่าย แต่การเชื่อมต่อเมทริกซ์สี่ตัวเข้าด้วยกันเป็นป้ายประกาศเลื่อน 32 คอลัมน์ขนาดใหญ่ที่ต่อเนื่องกันนั้น ต้องอาศัยการจัดการนาฬิกาฮาร์ดแวร์ของ SPI (Serial Peripheral Interface) อย่างเข้มงวด จอแสดงผลข้อมูล 32x8 LED Matrix ด้วย Arduino นี้ใช้ไลบรารี <MD_MAX72xx.h> เพื่อดำเนินการเลื่อนไบต์แบบเรียงลำดับผ่านชิป MAX7219 สี่ตัว ทำให้สามารถเลื่อนข้อความขนาดใหญ่ได้อย่างราบรื่นโดยเฉพาะสำหรับตัวนับผู้ติดตาม YouTube หรือตัวแสดงราคา Bitcoin!

1306_oled_retro_game_display_1772681532057.png

การกำหนดค่าฮาร์ดแวร์ Matrix (MD_Parola)

ไลบรารีมาตรฐานจะใช้งานไม่ได้เลย หากบล็อกฮาร์ดแวร์ทั่วไปจากจีนมีการต่อสายภายในที่แตกต่างกัน!

  1. กับดักสถาปัตยกรรม: โมดูล Matrix เหล่านี้มีดีไซน์ PCB ที่แตกต่างกันถึง 4 แบบ (FC-16, PAROLA, GENERIC) หากคุณเลือกผิด ข้อความจะถูกสะท้อนกลับด้าน คว่ำลง และเลื่อนไปด้านหลังอย่างรุนแรง!
  2. คุณต้องระบุ Hardware Type ที่แน่นอนในเอนจิน MD_Parola ที่น่าทึ่งนี้!
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW // The most common generic red board!
#define MAX_DEVICES 4 // Tell the Uno it has 4 chips to traverse!
#define CS_PIN 10
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

อัลกอริทึมการเลื่อนข้อความแบบ Non-Blocking

คุณไม่สามารถใช้ delay() ครอบฟังก์ชัน display() ทั่วไปได้ มิฉะนั้น Arduino Uno จะค้างสนิท และคุณจะไม่สามารถอัปเดตข้อมูลข้อความจาก Internet ได้!

  • ไลบรารี MD_Parola ใช้การจับเวลาแบบ Non-Blocking ที่เข้มข้น!
  • ฟังก์ชัน myDisplay.displayAnimate() ถูกใส่ไว้ใน loop() อย่างอิสระ
  • ทุกมิลลิวินาที โค้ด C++ จะถามว่า: ถึงเวลาที่จะเลื่อนพิกเซลไปทางซ้ายหนึ่งคอลัมน์แล้วหรือยัง?
  • หากใช่ มันจะเลื่อนไปยัง Device 2, Device 3 ซึ่งโปรแกรมเมอร์ไม่ต้องรับรู้ถึงรายละเอียด!
  • การป้อนข้อมูล: คุณสามารถเรียกใช้ myDisplay.displayText("HELLO WORLD!", PA_CENTER, 100, 1000, PA_SCROLL_LEFT, PA_SCROLL_LEFT); และบล็อกข้อความขนาดใหญ่จะเลื่อนจากขวาไปซ้ายได้อย่างสวยงาม!

ข้อกำหนดสำหรับแบนเนอร์ขนาดใหญ่

  • Arduino Uno/Nano (ฟังก์ชันการทำงานมาตรฐาน)
  • บล็อกจอแสดงผล 32x8 (4-In-1) MAX7219 Dot Matrix (ห้ามต่อบล็อก 8x8 สี่บล็อกแยกกันด้วยสาย jumper ที่หลวม ควรซื้อ PCB ขนาดใหญ่ที่เป็นชิ้นเดียวซึ่งมี 4 เมทริกซ์บัดกรีอยู่แล้ว มิฉะนั้นสัญญาณนาฬิกา SPI จะเสื่อมสภาพลง!)
  • แหล่งจ่ายไฟภายนอก 5V 3-Amp (หาก LED สีแดง 256 ดวงสว่างจ้าพร้อมกันทั้งหมดในเวลาเดียวกัน อาจทำให้พอร์ต USB มาตรฐานเสียหายอย่างรุนแรงได้!)

ข้อมูล Frontmatter ดั้งเดิม

title: "Arduino 32x8 LED Matrix Info Display"
description: "Monolithic multiplexing synchronization! Daisy-chain four consecutive MAX7219 driver ICs across an enormous SPI serial bus, rendering completely seamless horizontal scrolling ASCII typography across a massive 256-LED array."
category: "Screens & Displays"
difficulty: "Advanced"