Solid-State Switching ตอนที่ 3 : ULN2803A ย่อโลกสวิตช์กำลัง 8 ช่องไว้ในชิปเดียว
Solid-State Switching
Highlight
บทความนี้เป็น ตอนที่ 3 ในซีรีส์ Solid-state switching ต่อจากเรื่อง BJT และ MOSFET ในสองตอนแรก สำหรับตอนนี้นำเสนอไอซีไดรเวอร์ยอดนิยม ULN2803A (Darlington Transistor Array) ทางออกของการควบคุมโหลดกระแสสูงในวงจรดิจิทัล ที่รวมวงจรสวิตช์และไดโอดป้องกัน (Free-Wheeling Diode) ไว้ถึง 8 ช่องในชิปตัวเดียว ช่วยลดพื้นที่บนบอร์ด PCB จากเดิมที่ต้องใช้ทรานซิสเตอร์และไดโอดแยกชิ้น รองรับแรงดันได้สูงสุด 50V และกระแสสูงสุด 500mA ต่อช่อง ตอบโจทย์ทั้งงานขับ LED, เรเลย์ ไปจนถึงสเต็ปเปอร์มอเตอร์ได้อย่างง่ายดาย
In Detail
ต่อยอดจากบทความสองตอนแรกที่เราได้รู้จักกับ BJT (ตอนที่ 1) และ MOSFET (ตอนที่ 2) ในฐานะตัวสวิตช์อิเล็กทรอนิกส์ (Solid-state switching) สำหรับควบคุมการปิด-เปิดวงจรกันไปแล้ว แต่ในทางปฏิบัติ เมื่อเราต้องออกแบบวงจรที่ต้องสั่งงานอุปกรณ์ไฟฟ้ากระแสสูงหลายๆ ตัวพร้อมกัน เช่น ทำไฟวิ่ง 8 ช่อง หรือขับรีเลย์ (Relay) 8 ตัว ข้อจำกัดเดิมจะเริ่มโผล่มาทันที… เพราะหากเราใช้ BJT หรือ MOSFET แยกชิ้น 1 ช่อง ต่อ 1 ตัว สำหรับ 8 ช่อง เราจะต้องใช้ทรานซิสเตอร์ 8 ตัว, ตัวต้านทาน 8 ตัว, และหากขับโหลดเหนี่ยวนำอย่างรีเลย์ (Relay) ก็ต้องเพิ่มไดโอดป้องกันแรงดันย้อนกลับ (Free-Wheeling Diode) อีก 8 ตัว! ผลลัพธ์คือบอร์ด PCB ของเราจะเต็มไปด้วยชิ้นส่วนอิเล็กทรอนิกส์กระจัดกระจาย เสียทั้งพื้นที่และเวลาประกอบอย่างมาก
นี่จึงเป็นจุดที่ ULN2803A เข้ามาช่วยแก้ปัญหา แทนที่จะต้องนำทรานซิสเตอร์และไดโอดมาประกอบกันทีละช่อง ULN2803A เลือกใช้วิธีที่เรียบง่ายกว่า นั่นคือ รวมวงจรขับโหลดทั้ง 8 ช่องเอาไว้ภายใน IC เพียงตัวเดียว ภายในชิปตัวเล็ก ๆ นี้ ไม่ได้มีเพียงทรานซิสเตอร์ 8 ตัวถูกนำมาใส่รวมกันเท่านั้น แต่ละช่องยังมีวงจรที่จำเป็นสำหรับการขับโหลดและป้องกันแรงดันย้อนกลับถูกรวมเอาไว้ด้วย
พูดง่าย ๆ คือ สิ่งที่เดิมเราต้องประกอบขึ้นมาเองทีละช่อง ถูกจัดการและรวมมาให้เรียบร้อยภายใน IC ตัวเดียว
มองเข้าไปข้างใน ULN2803A
แนวคิดของ ULN2803A จริง ๆ แล้วไม่ซับซ้อน หากเรามองมันเป็น Transistor Array หรือการนำวงจรทรานซิสเตอร์หลายชุดมารวมไว้ภายในแพ็กเกจ IC เดียว ตามรูปที่ 1

และถ้าเราเจาะลึกลงไปอีกหนึ่งระดับ จะพบว่าแต่ละช่องของ ULN2803A ใช้ BJT ชนิด NPN จำนวน 2 ตัว ต่อร่วมกันในรูปแบบที่เรียกว่า Darlington Pair (วงจรดาร์ลิงตัน) โดยการต่อแบบ Darlington Pair ช่วยเพิ่ม อัตราขยายกระแส (Current Gain) ทำให้กระแสขนาดเล็กที่ป้อนเข้าทางอินพุต สามารถควบคุมกระแสที่ไหลผ่านโหลดได้มากขึ้น
จุดสำคัญอีกอย่างคือ ไมโครคอนโทรลเลอร์ไม่ได้เป็นผู้จ่ายกระแสให้กับโหลดโดยตรง แต่ทำหน้าที่ส่งสัญญาณควบคุมเข้ามาที่ ULN2803A จากนั้นวงจร Darlington ภายใน IC จะทำหน้าที่เป็นตัวขับกระแสให้กับโหลดอีกทอดหนึ่ง ดังนั้นไมโครคอนโทรลเลอร์อย่าง ESP32 หรือ Arduino จึงสามารถควบคุมโหลดหลายช่องพร้อมกันได้ โดยไม่ต้องให้ GPIO ของไมโครคอนโทรลเลอร์รับภาระกระแสของโหลดโดยตรง

นำ ULN2803A ไปใช้งาน
ULN2803A มีรูปแบบวางตำแหน่งอินพุต (Pin 1-8) อยู่ตรงข้ามกับเอาต์พุต (Pin 11-18) ช่วยให้การลากเส้นวงจร (PCB Layout) เป็นไปได้อย่างมีระเบียบและง่ายดาย นอกจากนี้ ภายในตัวชิปยังมีขาร่วม COMMON (COM – Pin 10) ที่ต่อไดโอดป้องกันแรงดันย้อนกลับ (Free-Wheeling Diode) ครอบคลุมเอาต์พุตทั้ง 8 ช่องไว้ในตัว ไม่ต้องบัดกรีไดโอดภายนอกเพิ่มอีกต่อไป


ตัวอย่างการเชื่อมต่อระหว่าง Arduino กับ ULN2803A

เมื่อเราเข้าใจประโยชน์และข้อควรพิจารณาในการใช้งาน ULN2803A แล้ว ขั้นต่อไปคือการทำความเข้าใจว่า วงจรภายใน IC ตัวนี้ทำงานอย่างไร จึงสามารถใช้สัญญาณควบคุมขนาดเล็กจากไมโครคอนโทรลเลอร์มาขับโหลดได้
หลักการทำงานของวงจร Darlington Pair ภายใน ULN2803A
- เมื่อไม่มีสัญญาณ (Input = Low / 0V)
ทรานซิสเตอร์ NPN ทั้งสองตัว ( และ ) จะปิดการทำงานลงพร้อมกัน ทำให้ไม่มีกระแสไหลผ่านตัวไอซี แรงดันฝั่งเอาต์พุตจึงลอยสูงขึ้นเท่ากับแรงดันไฟเลี้ยง () โหลดจึงยังไม่ทำงาน (ไฟดับ/รีเลย์ไม่ตัด) - เมื่อมีสัญญาณป้อนเข้ามา (Input = High / 5V)
สัญญาณไฟบวกจะวิ่งเข้าขา Base ของทรานซิสเตอร์ มีผลให้ทรานซิสเตอร์ เริ่มนำกระแส ส่งผลให้แรงดันที่ขา Emitter ของทรานซิสเตอร์ สูงขึ้น (ประมาณ 0.6–0.7V) ซึ่งมากกว่าพอที่จะทำให้ทรานซิสเตอร์ นำกระแสได้ - เอาต์พุตสลับสถานะเพื่อทำงาน (Active Low / Inverted)
เมื่อทรานซิสเตอร์ ทำงาน ก็เปรียบเสมือนการเปิดสวิตช์ ทำให้กระแสไฟฟ้าจากแหล่งจ่าย ไหลผ่านโหลด เช่น LED หรือรีเลย์ แล้วผ่านทรานซิสเตอร์กลับไปยังขั้วลบของแหล่งจ่ายได้ครบวงจร โหลดจึงเริ่มทำงาน เช่น LED สว่างขึ้น หรือรีเลย์ทำงาน
Note: น่ารู้เรื่อง Signal Inversion (การกลับสัญญาณ)
จุดที่น่าสังเกตคือ เมื่อเราส่งสัญญาณ High จาก GPIO ของไมโครคอนโทรลเลอร์เข้า ULN2803A ทรานซิสเตอร์ภายในจะเปิดทำงาน ทำให้เอาต์พุตถูกดึงลงสู่ Low (ใกล้ 0V)
พฤติกรรมนี้เรียกว่า Signal Inversion หรือการกลับสัญญาณ กล่าวคือ อินพุตเป็น High แต่เอาต์พุตเป็น Low
ดังนั้น เมื่อนำ ULN2803A ไปออกแบบวงจร ต้องคำนึงถึงลักษณะการทำงานนี้ด้วย เพราะการสั่ง GPIO เป็น High จะทำให้วงจรขับโหลดทำงาน ไม่ใช่การทำให้เอาต์พุตมีแรงดันเป็น High เหมือนสัญญาณอินพุต

Bunpajarn Insight
ULN2803A จัดเป็นไอซีระดับคลาสสิก (Legacy Driver IC) ในกลุ่ม Solid-state switching ที่ยังคงเก๋าเกมและนิยมใช้เช่น การควบคุมรีเลย์ (Relay), (Solenoid Valve) หรือ มอเตอร์ DC เนื่องจากใช้งานง่ายและราคาประหยัด แต่ด้วยโครงสร้างที่ถูกออกแบบมาในยุคก่อน การนำมาประกอบร่างกับไมโครคอนโทรลเลอร์ยุคใหม่จึงมี “จุดสลบ” ทางไฟฟ้าที่วิศวกรต้องรู้ทันครับ
1. ต้องเผื่อแรงดันตกคร่อมทิ้งไว้เสมอ (VCE Drop)
เนื่องจากโครงสร้างภายในของ ULN2083 คือ BJT แบบดาร์ลิงตัน เวลางานดึงกระแสลงกราวด์ ตัวไอซีจะมีแรงดันตกคร่อมที่เอาท์พุตต่อช่องอยู่ประมาณ 1V ถึง 2V (ทางเทคนิคเรียกว่าค่า Saturation Voltage)
สมมติว่าต้องการขับรีเลย์ 5V แล้วจ่ายไฟเลี้ยงวงจรฝั่งโหลดที่ 5V เป๊ะๆ แรงดันที่ไปถึงตัวรีเลย์จริงๆ อาจจะเหลือแค่ 3V – 4V เท่านั้น ซึ่งอาจจะทำให้รีเลย์ทำงานไม่เสถียร หรือถึงขึ้นไม่ทำงานได้ ดังนั้นควรเผื่อแรงดันไฟเลี้ยงฝั่งโหลดบวกเพิ่มไปอีกประมาณ 1.5V – 2V เช่น ถ้าขับรีเลย์ 5V แนะนำให้จ่ายไฟเลี้ยงฝั่งโหลดสัก 7V เพื่อชดเชยแรงดันที่หายไปในตัวไอซีครับ
2. เมื่อนำ ULN2803A มาใช้กับไมโครคอนโทรลเลอร์ที่ใช้ GPIO 3.3V
อีกหนึ่งข้อควรพิจารณาคือการใช้ ULN2803A ร่วมกับไมโครคอนโทรลเลอร์ที่ใช้ Logic 3.3V เช่น ESP32 เนื่องจากวงจรภายใน ULN2803A ใช้ทรานซิสเตอร์แบบ Darlington จึงต้องใช้แรงดันอินพุตให้เพียงพอต่อการขับกระแสโหลดที่ต้องการ
จาก Datasheet จะเห็นว่า เมื่อกระแสโหลดสูงขึ้น แรงดันอินพุตที่ใช้ในการทดสอบก็สูงขึ้นตามไปด้วย ตัวอย่างเช่น ที่กระแส 300mA มีการระบุค่าแรงดันอินพุตไว้ที่ประมาณ 3.0V ภายใต้เงื่อนไขการทดสอบที่กำหนด
ดังนั้น หากใช้ GPIO 3.3V จาก ESP32 จะมีแรงดันสูงกว่าค่าดังกล่าวเพียงประมาณ 0.3V เท่านั้น แม้จะไม่ได้หมายความว่า ESP32 จะขับโหลด 300mA ไม่ได้ แต่ก็มีแรงดันเผื่อค่อนข้างน้อย และควรตรวจสอบเงื่อนไขการทำงานจริงก่อนนำไปใช้กับโหลดที่กินกระแสสูง
แนวทางเลือกใช้งาน: หากต้องการขับโหลดกระแสสูงด้วย Logic 3.3V ควรพิจารณา IC ขับโหลดที่ใช้เอาต์พุตแบบ MOSFET เช่น TBD62083A ซึ่งออกแบบมาให้รับสัญญาณอินพุตแรงดันต่ำได้ โดยต้องตรวจสอบค่าแรงดันอินพุตและแรงดันตกคร่อมที่กระแสใช้งานจริงจาก Datasheet ของรุ่นนั้นด้วย
การเลือก IC ให้เหมาะกับแรงดัน GPIO และกระแสโหลด จะช่วยให้วงจรทำงานได้ตามต้องการ ลดการสูญเสียกำลัง และเพิ่มความมั่นใจในการออกแบบวงจร

ภาคผนวก
ก. ตระกูล ULN2801 – ULN2805
ULN2803A ไม่ได้มีเพียงรุ่นเดียว แต่ยังมี IC รุ่นพี่รุ่นน้องในตระกูลเดียวกันให้เลือกใช้อีกด้วย โดยแต่ละรุ่นมีจำนวนช่องและคุณสมบัติที่แตกต่างกัน ดังตารางด้านล่างครับ
| รุ่นไอซี (Model) | ตัวต้านทานขา Input (RIN) | ระดับแรงดันลอจิกที่เหมาะสม (Compatible Logic Input) | ตัวอย่างการนำไปใช้งานร่วมกับ |
| ULN2801A | ไม่มี (General Purpose) | ไม่กำหนดแรงดันตายตัว (ต้องต่อ R ภายนอกเอง) | วงจร Custom ที่ต้องการกำหนดกระแส Base เอง |
| ULN2802A | 10.5 kΩ (พร้อม Zener 7V) | 14 V – 25 V (High Voltage CMOS) | วงจรควบคุมอุตสาหกรรม หรือระบบไฟ 12V/24V |
| ULN2803A | 2.7 kΩ | 5 V (5V Standard TTL / CMOS) | (ยอดนิยมที่สุด) Arduino, PIC, TTL Logic 5V |
| ULN2804A | 10.5 kΩ | 6 V – 15 V (CMOS / PMOS) | ไอซีตระกูล CMOS 4000 series ที่ไฟ 9V–12V |
| ULN2805A | 1.05 kΩ | 5 V High-Output TTL / CMOS | สัญญาณลอจิก 5V ที่ต้องการกระแสไดรฟ์อินพุตสูง |
ข. รู้จักกับ TBD62083A
ในงานออกแบบวงจรอิเล็กทรอนิกส์ยุคปัจจุบัน หากต้องการควบคุมโหลดกระแสสูงด้วยไมโครคอนโทรลเลอร์แรงดันต่ำ (เช่น ESP32, STM32 หรือ Raspberry Pi ที่ใช้สัญญาณลอจิก 3.3V) TBD62083A คือไอซีดรายเวอร์ 8 ช่อง (DMOS Transistor Array) ที่ถูกสร้างขึ้นมาเพื่อแก้ข้อจำกัดเดิมๆ ของไอซีคลาสสิกอย่าง ULN2803A โดยเฉพาะ
ทำไม TBD62083A ถึงเป็นตัวเลือกที่เหนือกว่าสำหรับวงจรยุคใหม่?
- โครงสร้าง DMOS FET ที่ไม่มีแรงดันตกคร่อมสูง () ต่างจาก ULN2803A ที่ใช้ทรานซิสเตอร์ BJT Darlington ซึ่งมีแรงดันตกคร่อม สูงถึง 1V – 2V ส่งผลให้เกิดความร้อนสะสมสูงและทำให้แรงดันไฟเลี้ยงฝั่งโหลดตก แต่ TBD62083A เปลี่ยนมาใช้โครงสร้าง DMOS FET (MOSFET) ซึ่งทำงานด้วยค่าความต้านทานขณะเปิด () ต่ำกว่า ทำให้โหลดได้รับแรงดันเต็มประสิทธิภาพมากกว่า
- แมตช์กับลอจิก 3.3V ได้อย่างสมบูรณ์ ULN2803A มีค่า ที่ต้องการแรงดันอินพุตค่อนข้างสูง ทำให้เมื่อนำสัญญาณ 3.3V ไปป้อนเข้าตรงๆ มีความเสี่ยงที่ตัวไอซีอาจจะทำงานได้ไม่เต็มประสิทธิภาพ แต่ TBD62083A ถูกออกแบบวงจรอินพุตมาให้รองรับลอจิกแรงดันต่ำตั้งแต่ 2.5V ถึง 25V ได้โดยตรง จึงสามารถรองรับการขับกระแสเอาท์พุต 300mA – 500mA ได้อย่างเสถียรและโดยไม่ต้องต่อวงจรแปลงระดับแรงดัน (Level Shifter) เพิ่มเติม
Reference :
Conrad.com
Engineersgarage.com
ULN2803A (Rev. C) Datasheet
TBD62083A – TBD62084A Datasheet
Bunpajarn | Learn • Share • Grow Together.
พื้นที่สำหรับคนที่รักและสนใจ Electronics & Embedded
