กลับไปหน้ารวมไฟล์
using-incandescent-filament-7-segment-displays-with-an-arduino-b036fe.md

เอาไฟลามินต์ (Numitron) มาเล่นกับ [Arduino](https://s.shopee.co.th/7fUgFAWSki) กันเถอะ

นอกจาก LED กับ [LCD](https://s.shopee.co.th/6AfsSPcAnb) ที่เราคุ้นเคยแล้ว ยังมีจอแสดงผลอีกแบบที่อาจจะไม่ค่อยได้เห็นในวงการ DIY สักเท่าไหร่ มันคือจอแบบใช้ไส้หลอด (Incandescent) ครับ งานนี้ไม่ใช่ Nixie Tube นะ แต่เป็น 7 หรือ 14 Segment ที่ใช้ไส้หลอดเหมือนหลอดไฟเล็กๆ แทนที่จะเป็น LED เลยสว่างจ้าอ่านง่ายแม้อยู่กลางแดด แม้จะดูเป็นเทคโนโลยีเก่าแต่ยังใช้กันในวงการการบินและยังผลิตอยู่เลยนะ บางทีก็เรียกมันว่า Numitron หรือ Digitron ส่วน Wamco เรียกมันว่า Direct View Technology พวกนี้กองทัพชอบใช้เพราะอ่านค่าได้แม้จะสวมแว่น Night Vision อยู่เลย ตัวอย่างที่พี่ใช้คือโมดูล Wamco KW-104S เป็นแบบ 7 Segment ไม่มีจุดทศนิยม สูง 0.3 นิ้ว

ทีนี้สเปคมันก็ขึ้นอยู่กับผู้ผลิตนะน้อง ต้องเช็ค Datasheet ของตัวเองให้ดี แต่โดยทั่วไปมันจะใช้ไฟ 5V กระแสประมาณ 15mA ส่วนของพี่ใช้ 4V กระแส 15mA ไอ้เจ้าไฟลามินต์เนี่ยมันมีคุณสมบัติจำกัดกระแสตัวเองอยู่แล้ว เลยไม่ต้องใช้ตัวต้านทาน Current Limiting หรอก จ่ายตรงจากชิปได้เลย เช่นใช้ Transistor Array อย่าง ULN2003 หรือ Power Shift Register อย่าง TPIC6B595 ที่พี่ใช้ในตัวอย่างนี้

สรุปง่ายๆ คือใช้มันเหมือน LED Display เลย แต่ตัดตัวต้านทานทิ้งไปซะ แนะนำให้ใช้แบบ Common Anode เพราะง่ายต่อการลดแรงดันให้จอผ่าน Regulator หรือแม้แต่ต่อไดโอดอนุกรมกับ Digit Common เล่นแบบไม่มัลติเพล็กซ์ดีที่สุดนะ ถึง Wamco จะบอกว่ามัลติเพล็กซ์ได้ แต่ต้องระวังเรื่อง Duty Cycle กับแรงดันเพื่อยืดอายุการใช้งาน มันค่อนข้างซับซ้อน ต้องอ่าน Datasheet ละเอียด เลยคิดว่าเล่นแบบไม่มัลติเพล็กซ์สบายใจกว่า

การหาซื้อนี่แหละตัวดี ผู้ผลิตมักไม่ขายตรงให้คนทั่วไปหรือผ่านร้านขายอะไหล่ทั่วไปหรอก แต่บางทีก็โผล่มาใน eBay นะ หรือจะหาจากอุปกรณ์เก่าแบบที่พี่ทำก็ได้ แต่จอใช้แล้วอาจจะหมดสภาพแล้ว ต้องถามคนขายให้แน่ใจว่าเขาทดสอบแล้ว

พี่จะแปะโค้ดตัวอย่างให้นะ มันจะนับเลข 0-9 บนจอสูงสุด 4 ตัวที่ต่อกับ TPIC6B595 แบบ Daisy Chain

ซูมดูแต่ละ Segment

ซูมดูอีกมุม

ลงลึกกันอีกนิด

Retro-Modern Interfacing

จอ 7 Segment แบบไส้หลอด (Numitron) ให้บรรยากาศวินเทจอุ่นๆ ที่ต่างจาก LED สมัยใหม่สุดๆ

  • ขับด้วยกำลังสูง: ไม่เหมือน LED นะ ไส้หลอดพวกนี้กินกระแสสูงกว่า (20-30mA ต่อ Segment) และต้องการแรงดัน DC คงที่ Arduino จ่ายตรงไม่ได้เด็ดขาด ไม่งั้นพินไหม้แน่นอน
  • ใช้ Transistor Buffer Array: โปรเจกต์นี้ใช้ NPN Transistor (เช่น PN2222) หรือ ULN2003 Darlington Array เป็นสวิตช์อิเล็กทรอนิกส์ Arduino ส่งสัญญาณกำลังต่ำไปเปิดปิดทรานซิสเตอร์ เพื่อให้มันจ่ายแรงดันสูงที่ไส้หลอดต้องการแทน

ลักษณะของจอ

  • แสงอุ่นนุ่มนวล: มันทำงานเหมือนหลอดไฟจิ๋ว เวลาเปิดปิดจะมีช่วง "ค่อยๆ สว่าง" และ "ค่อยๆ มอด" เล็กน้อย Firmware ต้องจัดการเรื่องนี้เพื่อป้องกันภาพซ้อน
  • ตรรกะการมัลติเพล็กซ์: Arduino จะสลับเปิดปิดแต่ละ Digit ด้วยความถี่สูงใน Loop เพื่อให้ภาพนิ่งและลดจำนวน Driver IC ที่ต้องใช้

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

title: "Using incandescent (filament) 7 segment displays with an Arduino"
description: "Here I describe how to use a little known display technology - incandescent displays typically used in aircraft avionics, these are sometimes obtained by hobbyists and are very easy to use."
author: "adrian-smith31"
category: "Screens & Displays"
tags:
  - "Lights"
  - "Planes"
  - "Clocks"
views: 4671
likes: 0
price: 699
difficulty: "Easy"
components:
  - "1x Shift register - TPIC6B595"
tools: []
apps:
  - "1x Arduino IDE 2.0 (beta)"
downloadableFiles:
  - "https://projects.arduinocontent.cc/6bc1f524-f3b1-4d67-8f3e-6716ae1fbccf.ino"
documentationLinks: []
passwordHash: "5cb2e5405c25a20520fad46c378193c4a9a13cd2daa99419235d6da68cf85810"
encryptedPayload: "U2FsdGVkX19nG/YVUNLiptjL/9XfriwYwV+GTZ/6061XsojW137qlaWY7FmWtVo43rCh7Czs0Y0qccQ8WqBCX0yUBfu02XtuVIFPYzzm1hs="
seoDescription: "Learn to use incandescent (filament) 7 segment displays with Arduino. A guide to aircraft avionics display technology for hobbyists."
videoLinks:
  - "https://youtu.be/HMxC70rAb0U"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/using-incandescent-filament-7-segment-displays-with-an-arduino-b036fe_cover.jpg"
lang: "th"