5 Pins, 32 LEDs, 2 LED Drivers [TLC5940]
ในโลกของนักประดิษฐ์และวิศวกรระบบสมองกลฝังตัว ปัญหาหนึ่งที่พบบ่อยคือ "PWM pins ไม่พอ" เมื่อพยายามควบคุม LED จำนวนมาก หรือ Servo motors หลายตัวพร้อมกัน วันนี้ เราจะมาทำความรู้จักกับ TLC5940 ซึ่งเป็นโซลูชันระดับมืออาชีพที่จะยกระดับโปรเจกต์ Arduino ของคุณไปอีกขั้น
บทความนี้ออกแบบมาให้เป็นคู่มือทีละขั้นตอนสำหรับผู้เริ่มต้น หรือที่ผมเรียกว่า arduiNOOBS เพื่อให้เข้าใจการทำงานเชิงลึกและนำไปใช้งานจริงได้อย่างรวดเร็ว
ทำความรู้จักกับ TLC5940: หัวใจสำคัญของการควบคุม LED
TLC5940 ไม่ใช่แค่ IC ขยาย pin ทั่วไป แต่เป็น 16-Channel LED Driver ที่อัดแน่นด้วยความสามารถขั้นสูง:
- 12-bit PWM (4096 ระดับ): ในขณะที่ PWM pin ทั่วไปของ Arduino ให้ความละเอียดเพียง 8-bit (256 ระดับ) แต่ TLC5940 ให้ความละเอียดถึง 4096 ระดับ ทำให้การเฟด LED มีความราบรื่นยิ่งขึ้นมาก
- Constant Current Sink: IC นี้ทำหน้าที่เป็น "constant current sink" หมายความว่าคุณไม่จำเป็นต้องต่อ Resistor เข้ากับ LED ทุกตัว แต่ Resistor เพียงตัวเดียวที่ pin
IREFจะกำหนดกระแสไฟฟ้ารวมสำหรับทุกช่องสัญญาณ - Daisy-Chaining: สิ่งที่ยอดเยี่ยมคือเราสามารถ Daisy-chain IC หลายตัว (แบบอนุกรม) เพื่อขยายจำนวนช่องสัญญาณจาก 16 เป็น 32, 48 หรือมากกว่านั้น โดยใช้ชุดควบคุม pin เพียงชุดเดียวจาก Arduino
แหล่งข้อมูลและลิงก์ที่จำเป็น:
- TLC5940NT Library: https://github.com/PaulStoffregen/Tlc5940 or Arduino Playground
- Datasheet: TI TLC5940 Datasheet
- Arduino Nano Pinout Diagram: See Pin Diagram
แหล่งข้อมูลเพิ่มเติมสำหรับการศึกษาเชิงลึก:
- HowToMechatronics: TLC5940 Tutorial
- LearningAboutElectronics: Circuit Guide
- Electronics StackExchange: TLC5940 vs 74HC595
- Tronixstuff: Getting Started with TLC5940
ติดตามเพื่อดูโปรเจกต์และการอัปเดตเพิ่มเติม:
- Facebook: https://fb.me/HeathenHacks
- Twitter: https://twitter.com/HeathenHacks
- Instagram: https://instagr.am/HeathenHacks
ทำความเข้าใจ Pin และโครงสร้าง Hardware
ก่อนที่เราจะทำการต่อวงจร เราต้องทำความเข้าใจหน้าที่ทางวิศวกรรมของแต่ละ pin ของ TLC5940 ก่อน:

- OUT0 - OUT15: Output pins สำหรับเชื่อมต่อกับ Cathode (-) ของ LED
- VPRG (Voltage Program): ใช้เลือกโหมดระหว่างการเขียนข้อมูลไปยัง EEPROM หรือ Registers ทั่วไป (สำหรับการใช้งานปกติ ให้ต่อกับ GND)
- GSCLK (Grayscale Clock): สัญญาณ Clock ที่กำหนดจังหวะเวลาของ PWM
- XLAT (Latch): ใช้สำหรับยืนยันข้อมูลที่เข้ามา (คล้ายกับการกด Enter)
- SCLK (Serial Clock): สัญญาณ Clock สำหรับการส่งข้อมูลแบบอนุกรม (serial data transmission)
- SIN (Serial Input): รับข้อมูลจาก Arduino
- SOUT (Serial Output): ส่งข้อมูลไปยัง IC ตัวถัดไป (ใช้ใน Daisy-chaining)
- IREF: pin สำคัญสำหรับการตั้งค่ากระแส Output โดยการต่อ Resistor เข้ากับ GND (ค่าทั่วไปประมาณ 2kΩ สำหรับกระแส 20mA)

การเชื่อมต่อกับ Arduino Nano
จาก Diagram การต่อสาย (All Wired Up) ด้านล่าง คุณจะเห็นว่าการจัดการสายเคเบิลให้เป็นระเบียบมีความสำคัญอย่างยิ่ง เนื่องจากมี signal pins หลายตัวที่ต้องทำงานร่วมกัน
ตารางการเชื่อมต่อมาตรฐาน (สำหรับ Arduino Nano/Uno):
- VCC -> 5V
- GND -> GND
- SIN -> Digital Pin 11 (MOSI)
- SCLK -> Digital Pin 13 (SCK)
- XLAT -> Digital Pin 9
- BLANK -> Digital Pin 10
- GSCLK -> Digital Pin 3 (ใช้ Timer 2 เพื่อสร้างสัญญาณความถี่สูง)
วิเคราะห์ตรรกะของโปรแกรม (Code Logic)
การใช้ Library Tlc5940 ช่วยลดความซับซ้อนของการจัดการ Register ระดับต่ำ ตรรกะการทำงานแบ่งออกเป็น 3 ขั้นตอนหลัก:
- Initialization: คำสั่ง
Tlc.init()จะตั้งค่า Timer ภายในของ Arduino เพื่อสร้างสัญญาณ GSCLK และ BLANK โดยอัตโนมัติ ซึ่งสำคัญสำหรับการรักษาความสว่างของ LED โดยไม่รบกวนการทำงานของ main loop - Data Preparation: คำสั่ง
Tlc.set(channel, value)(โดยที่ value คือ 0-4095) จะยังไม่มีผลทันที แต่จะแก้ไขค่าใน memory array ของ Arduino ก่อน - Data Transmission: เมื่อเรียกใช้
Tlc.update()ข้อมูลทั้งหมดจะถูกส่งแบบ serial ผ่าน pin SIN ไปยัง Shift Register ของ TLC5940 จากนั้น สัญญาณ XLAT จะเกิด pulse เพื่อ "Latch" ข้อมูล ทำให้ข้อมูลปรากฏบน output channels ทั้งหมดพร้อมกัน
ชมวิดีโอสาธิตการทำงาน
เพื่อความเข้าใจที่ชัดเจนยิ่งขึ้น ชมโปรเจกต์จริงที่กำลังทำงานและกระแสของข้อมูล PWM ได้ในวิดีโอนี้:
บทสรุปสำหรับวิศวกรผู้ใฝ่ฝัน
การใช้ TLC5940 ไม่เพียงช่วยขยาย pins แต่ยังช่วยลดภาระการทำงานของ CPU ในการประมวลผล Software PWM และให้คุณภาพแสงที่เสถียรยิ่งขึ้นด้วยระบบ Constant Current หากคุณต้องการสร้างโปรเจกต์อย่างไฟ LED บันได, ป้ายเลื่อน, หรือ Hexapod robot ที่มี Servo จำนวนมาก TLC5940 คือโซลูชันที่คุ้มค่าแก่การศึกษา
