กลับไปหน้ารวมไฟล์
large-23-7-segment-display-module-with-spi-interface-a728fe.md

โปรเจกต์นี้คือ Masterclass ในการเชื่อมต่อจอแสดงผลอุตสาหกรรมและการออกแบบเพาเวอร์อิเล็กทรอนิกส์ ตัวจริงเสียงจริง! โมดูล SPI ขนาด 2.3 นิ้วตัวนี้คือ Modular Display Array สุดล้ำที่ออกแบบมาเพื่อแก้ปัญหาจุกจิกของโมดูล LED ขนาด 0.56 นิ้วแบบเดิมๆ ด้วยการอาศัย TPIC6B595 High-Current Shift Registers และ SPI Communication Interface ที่เสถียร โปรเจกต์นี้จะพาน้องไปขับ LED เซ็กเมนต์แรงดันสูงขนาดใหญ่ด้วยอัตรารีเฟรชระดับมิลลิวินาที ให้การแสดงผลระดับโปรสำหรับโรงงาน สนามกีฬา หรือนาฬิกาเรือนสวยที่ต้องดูดี

โปรเจกต์นี้เกิดตอนที่พี่อยากได้จอแสดงผล LED 7 เซ็กเมนต์หลายหลักแบบใหญ่ๆ แต่หาไปหามาก็เจอแต่บอร์ดที่ใช้ MAX7219 หรืออะไรเทือกๆ นั้น ขนาดตัวเลขสูงสุดแค่ 0.56″ น่ะแหละ หาไม่เจอของที่ต้องการ เลยตัดสินใจทำนาฬิกา 6 หลักขึ้นมาเอง (เป็นหนึ่งในโปรเจกต์แรกๆ ของพี่) และเพราะพี่มีจอ 2.3″ ใหญ่ๆ เหลืออยู่ เลยออกแบบจอแสดงผล 6 หลักอีกตัว แต่คราวนี้ใช้แค่อินเทอร์เฟซ SPI เผื่อจะได้ต่อกับไมโครคอนโทรลเลอร์ตัวไหนก็ได้ที่มี SPI พี่อยากควบคุมความสว่างของจอด้วย เลยทำโดยใช้พิน Output Enable ของ shift register ต่อกับพิน PWM บน Arduino

แบบสีแดง

รายละเอียดโปรเจกต์และภาพรวมโครงสร้างระบบไฟ

เพื่อลดต้นทุน พี่ตัดสินใจไม่ใช้ไดรเวอร์ภายนอกอย่าง MAX7219 แต่เลือกใช้ shift register ต่อเป็นสายโซ่ด้วย TPIC6B595 แทน เพราะเอาต์พุตแบบ open drain ของมันสามารถ sink กระแสได้สูงถึง 500mA (แบ่งกันระหว่างเอาต์พุตทั้ง 8) และรับแรงดันได้ถึง 50V – เหมาะมากสำหรับจอ LED ขนาดใหญ่ที่มีแรงดันฟอร์เวิร์ด 8.4V แผ่น PCB ต้องใช้ไฟเลี้ยง 12V เพราะจอแสดงผลใช้แรงดันสูงกว่า ดังนั้นเรกูเลเตอร์ 7805 จึงคอยจ่ายไฟ 5V ให้ shift register และบัฟเฟอร์อินพุต ซึ่งทำหน้าที่แปลงระดับลอจิกจาก 3.3V เป็น 5V ที่ shift register ต้องการ

SPI High-Current Display Framework ทำงานผ่านวงจรชีวิตแบบพิเศษที่เรียกว่า Buffered-Shift-Sink ระบบนี้สร้างขึ้นบนโมเดล Power-Logic Separation ที่เชื่อถือได้สูง:

  1. Open-Drain Power Sinking: ไอซีทั่วไปอย่าง MAX7219 มักสู้แรงดันฟอร์เวิร์ด 8.4V ของจอ 2.3" ไม่ไหว โปรเจกต์นี้ใช้ TPIC6B595 ซึ่งมีเอาต์พุตเป็นทรานซิสเตอร์ DMOS พิเศษที่สามารถ sink กระแสได้สูงถึง 500mA และรับแรงดันได้ถึง 50V ทำให้มันเป็น "ประตูสวิตช์ไฟ" ในอุดมคติสำหรับ LED ระดับอุตสาหกรรม
  2. Logic-Level Translation Shunt: เพื่อให้เข้ากันได้กับ MCU 3.3V (เช่น ESP32/Nano 33) ในขณะที่ยังคงความสมบูรณ์ของสัญญาณ 5V สำหรับ shift register ระบบนี้มี 74AHCT125 Quad Buffer เป็นตัวเชื่อมลอจิกความเร็วสูง ป้องกันข้อมูลเสียระหว่างการส่ง
  3. PWM Intensity Management: โดยการต่อพิน Output Enable (/OE) ของสายโซ่ shift register กับพิน PWM บน Arduino โปรเจกต์นี้สามารถควบคุมความสว่างระดับฮาร์ดแวร์ได้ โดยไม่เพิ่มโอเวอร์เฮดให้ซอฟต์แวร์

บอร์ดนี้เหมาะสำหรับนักอิเล็กทรอนิกส์มือสมัครเล่น และมี LED สว่างจ้าบนไลน์อินพุตข้อมูลเพื่อแสดงสถานะสัญญาณอินพุต ถ้าสัญญาณอินพุตมี duty cycle ต่ำมาก LED สถานะอาจไม่สว่าง นั่นคือเหตุผลที่ใช้ LED สว่างจ้า เหมาะสำหรับการทดสอบและพัฒนา และสำหรับใช้ในโปรเจกต์ชิ้นเดียวสำเร็จรูป มันใช้ไฟ 12 โวลต์ และมีเรกูเลเตอร์บนบอร์ดสำหรับไอซี เข้ากันได้กับอินพุตระดับลอจิก 3.3V และ 5V บนคอนเน็กเตอร์ข้อมูล

อินพุตข้อมูลและลายซิลค์สกรีนแสดงทิศทางข้อมูล

ฮาร์ดแวร์และดีไซน์ (Hardware Infrastructure & The Design Tier)

  • 2.3" Common-Anode Display Matrix: ตัวนี้คือ "Visual HUD" ของเราเลยจ้า หน้าจอใหญ่เบิ้มแบบนี้ (เทียบเท่า Kingbright SA23-11) แต่ละเซ็กเมนต์มี LED หลายตัวซ่อนอยู่ เลยต้องใช้ไฟเลี้ยง 12V เพื่อให้แสงสว่างเต็มที่และสม่ำเสมอ
  • LM7805 Voltage Regulator: ตัวนี้คือ "Logic Guardian" คอยแปลงไฟ 12V จากหน้าจอให้เป็น 5V สบายๆ สำหรับ IC ต่างๆ ทำให้โมดูลนี้ ใช้ไฟแหล่งเดียวได้สบายๆ
  • High-Contrast Diagnostic Mesh: บอร์ดนี้มี ไฟ LED อินดิเคเตอร์สว่างจ้า ติดอยู่บนสายข้อมูลเข้า ช่วยให้เราดีบั๊ก SPI stream ได้แบบเรียลไทม์—ถ้าเห็นไฟกระพริบ แสดงว่าข้อมูลกำลังวิ่งอยู่ สบายใจได้
  • Through-Hole Component Matrix: ออกแบบมาเพื่อ "Hobbyist Developer" โดยเฉพาะ บอร์ดใช้ชิ้นส่วนแบบรูเจาะ (through-hole) เพื่อให้ประกอบง่ายและทนกระแสสูง เหมาะมากสำหรับติดตั้งในแล็บแบบถาวร

บอร์ดยังออกแบบให้ใช้ชิ้นส่วนแบบรูเจาะเพื่อความสะดวกในการประกอบ และมีไดโอดป้องกันการต่อขั้วผิด (reverse polarity protection) พร้อมเอาต์พุต 5V สำหรับจ่ายไฟให้ Arduino หรืออุปกรณ์อื่นๆ การกินกระแสเมื่อเปิดทุกหลักและทุกเซ็กเมนต์จะอยู่ที่ประมาณ 700mA ดังนั้นต้องใช้แหล่งจ่ายไฟ 12V ที่ให้กระแสได้ 2A ขึ้นไป

ตรรกะทางเทคโนโลยีและอัลกอริทึม (Technological Logic and Execution Algorithms)

ระบบนี้มีความน่าเชื่อถือระดับโปรด้วย กลยุทธ์ Firmware และ PCB ดังนี้:

  1. Daisy-Chain Serial Logic: โมดูลออกแบบมาเพื่อ ขยายได้ไม่จำกัด ทุก shift register จะส่งข้อมูลต่อกันไปเรื่อยๆ หมายความว่าสามารถเชื่อมต่อบอร์ดหลายๆ แผ่นเพื่อสร้างกำแพงจอแสดงผล 12, 18, หรือ 24 หลักได้ โดยใช้ SPI แค่ 3 ขาเดิม
  2. Segment Resistor Calibration: ดีไซน์กำหนดให้ใช้ตัวต้านทาน (Resistor) 270 โอห์มสำหรับจอสีแดง และ 220 โอห์มสำหรับจอสีเขียว เพื่อชดเชยความต่างของแรงดันฟอร์เวิร์ด (forward voltage) ที่ต่างกัน และให้กระแสไหลผ่านแต่ละเซ็กเมนต์คงที่ที่ 20mA
  3. Reverse Polarity Interlock: บนเรลไฟเข้าจะมีไดโอดตัวเบิ้มคอยป้องกันไม่ให้ชิปพังยับถ้าต่อสายไฟผิดขั้ว—ฟีเจอร์สำคัญมากสำหรับการใช้งานจริงนอกสถานที่
  4. Hardware-to-Software Decoupling: จอแสดงผลนี้ขับเคลื่อนด้วยบิตสตรีมดิบๆ โปรเจกต์นี้จะแสดงให้เห็นวิธีเลี่ยงการใช้ไลบรารีตัวใหญ่ๆ โดยใช้คำสั่ง ShiftOut() ของ Arduino มาควบคุมการแมปจากเลขฐานสองไปเป็นเซ็กเมนต์ได้แบบ 100%

ข้อควรรู้ถ้าจะทำเอง (Things to Bear in Mind if Making Your Own)

จอแสดงผล 2.3" แบบ Common Anode ใดๆ ก็ใช้ได้ ตราบใดที่ขาต่อ (pinout) ตรงกับ Kingbright SA23-11GWA / EWA แต่ต้องระวังเรื่องจำนวนชิป LED ต่อเซ็กเมนต์ เพราะจะต้องเปลี่ยนค่าตัวต้านทานจำกัดกระแส (current limiting resistors) ตามไปด้วย ตัวอย่างที่ให้ไว้ข้างต้นเป็นสำหรับจอสีแดง Kingbright SA23-11EWA ตัวอย่างตัวที่ใช้แทนได้ เช่น Liteon LTS23805HRB นอกจากนี้ยังมีจอจีนราคาถูกจาก AliExpress และ eBay ซึ่งมักไม่มี datasheet ดังนั้นควรตรวจสอบให้แน่ใจว่าขาต่อตรงกันก่อนซื้อนะจ๊ะ สำหรับจอ LED สีเขียว (SA23-11GWA) มีแรงดันฟอร์เวิร์ดต่างออกไป ควรใช้ตัวต้านทานจำกัดกระแส 220 โอห์มสำหรับตัวเลข และ 470 โอห์มสำหรับจุดทศนิยม

สำหรับการปรับปรุงในเวอร์ชันถัดไป (หรือจะทำเองเลยก็ได้) คือการย้าย shift register ไปไว้ด้านหลังบอร์ด หลังจอ LED เพื่อให้บอร์ดแคบลง และย้ายไฟเลี้ยงกับไฟ LED สำหรับดีบั๊กไปไว้บนบอร์ดเล็กๆ แยกที่เสียบด้านหลัง เพื่อให้สามารถต่อบอร์ดแบบ Daisy-Chain ได้สะดวกขึ้น

ทำไมโปรเจคนี้ถึงสำคัญนักหนา

การฝึกปรือทักษะเรื่อง การขับแรงดันสูงและการเลื่อนระดับสัญญาณดิจิตอล (High-Voltage Driving and Logic-Level Shifting) นี่แหละคืออาวุธคู่กายของ นักออกแบบ UI แบบอุตสาหกรรมและวิศวกรระบบไฟฟ้า ตัวจริงเลย มันสอนให้รู้วิธีเชื่อมโลกของ "ชิปไฟต่ำ" เข้ากับ "อุปกรณ์ไฟสูงที่ต้องเห็นชัด" ได้อย่างลงตัว อย่าคิดว่าแค่ทำนาฬิกาได้นะน้อง หลักการเดียวกันนี้เอาไปใช้กับ กระดานแสดงสถานะในสายการผลิต, กระดานคะแนนดิจิตอล, หรือ ป้ายบอกเวลารถเมล์ ได้ทั้งนั้น! การสร้างโปรเจคนี้ขึ้นมาได้ คือการพิสูจน์แล้วว่าน้องสามารถออกแบบและสร้าง "ทรัพย์สินทางภาพ" ระดับมืออาชีพ ที่ให้ความสำคัญกับ ประสิทธิภาพการใช้พลังงาน, ความสมบูรณ์ของสัญญาณ, และประสิทธิภาพการมองเห็นที่สูง ได้แล้ว

หมายเหตุทางเทคนิค: ต้องใช้แหล่งจ่ายไฟแบบควบคุมได้ 12V 2A เพื่อขับหลอดทั้ง 6 หลักให้สว่างเต็มที่ (กินกระแสสูงสุดประมาณ 700mA)

ภาพรวมและวิดีโอสาธิต

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

apps:
  - "1x Arduino IDE 2.0"
  - "1x KiCad (PCB Layout & EDA)"
author: "adrian-smith31"
category: "Screens & Displays"
components:
  - "6x 2.3\" Large 7-Segment Common-Anode Displays (Kingbright SA23-11/Equiv)"
  - "6x TPIC6B595 Power Shift Registers (Open-Drain Sink Hub)"
  - "1x 74AHCT125 Quad Level-Shifter (3.3V-to-5V Logic Bridge)"
  - "1x LM7805 Linear Voltage Regulator (Logic Rail Manager)"
  - "42x 270 Ohm Through-Hole Resistors (Segment Current Balancing)"
  - "9x 510 Ohm Through-Hole Resistors (Indicator/Indicator Mesh)"
  - "1x 10k Ohm Resistor (Pull-down Network)"
  - "1x Custom PCB (Structural & Signal Matrix)"
  - "1x Reverse Polarity Protection Diode"
description: "A large LED display PCB / module to that aims to provide a solution were a larger version of the MAX7219 modules or similar is required. The standard SPI interface is used and does not depend on any libraries making it universal."
difficulty: "Easy"
documentationLinks:
  - "https://youtu.be/eKuvKOkwBKw"
downloadableFiles: []
encryptedPayload: "U2FsdGVkX1/RkOVDxQ2alZwPkFMQ7ZFv7Ey19yo7ylv1j6p6Nm9tUFF0XdX+bg5iGLMU4kyssq9MGrCr+8Gs2YRtyP7qpxmSwuTx1Z+udxQ3qkxyA3UjT22lijjQfvgw"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/large-23-7-segment-display-module-with-spi-interface-a728fe_cover.jpg"
lang: "en"
likes: 0
passwordHash: "be8d3dd25530466545e9362e472d56f0927280492cf803fc7e846b33b90c2407"
price: 2450
seoDescription: "The official 2.3\" SPI Display Module guide. Learn to build a 6-digit high-current LED display using TPIC6B595 shift registers and level shifters for professional industrial UI."
tags:
  - "Lights"
  - "Displays"
  - "SPI"
  - "Shift Register"
  - "Industrial UI"
  - "High-Voltage LED"
title: "Large 2.3\" 7 segment display module with SPI interface"
tools:
  - "1x Logic-Grade Soldering Station"
videoLinks:
  - "https://www.youtube.com/embed/eKuvKOkwBKw"
views: 3197