การใช้ไมโครคอนโทรลเลอร์เพื่อเปิดแถบ LED


12

ฉันมี 60 ไฟ LED ที่มาในแถบนำ ความยาวหนึ่งเมตรของแถบไฟ led ต้องการดังต่อไปนี้:

  • 400 milliamps
  • 12 โวลต์

ฉันต้องการควบคุม LED เหล่านี้ด้วยไมโครคอนโทรลเลอร์ ฉันกำลังคิดที่จะใช้TIP120และ raspberryPi

raspberryPi GPIO ขาสามารถส่งออก 50 มิลลิแอมป์อย่างต่อเนื่อง (อัปเดต: นี่ไม่เป็นความจริงดูด้านล่าง)


ฉันเป็นผู้เริ่มต้นและฉันไม่แน่ใจว่าฉันทำอย่างถูกต้อง การคำนวณทั้งหมดของฉันนั้นอ้างอิงจากสิ่งที่ฉันอ่านในบล็อกนี้


คณิตศาสตร์

ฐานปัจจุบัน:

TIP120 มีกระแสไฟสะสม lc = 250 * lb ดังนั้นฉันต้องใช้กระแสไฟฟ้าพื้นฐาน 1.6 mA

(1.6mA * 250 = 400)

raspberryPi ไม่ควรมีปัญหากับ Base current

ตัวต้านทานฐาน:

ฉันต้องการตัวต้านทานต่ำพอที่จะให้แน่ใจว่าฐาน TIP120 ยังคงอิ่มตัว แต่ยังคงอยู่น้อยกว่า 50 mA เพื่อไม่ให้ราสเบอร์รี่มากเกินไป

ตามบล็อกที่ฉันพูดถึงฉันพบความต้านทานพื้นฐานโดยค้นหา Vbe (sat) ดูรูปที่ 2

โดย Vbe (sat) คือ 400 บนแกน x กระแสของตัวรวบรวมจะอยู่ที่ประมาณ 1.3 บนแกน y

ป้อนคำอธิบายรูปภาพที่นี่

หาก raspberryPi ส่งออก 3.3 โวลต์แสดงว่ามีแรงดันไฟฟ้าตกที่ 2 โวลต์
(3.3 - 1.3)

ดังนั้นตามการคำนวณของฉันฉันต้องการตัวต้านทานระหว่าง 4 และ 40 โอห์ม R = V / I
2 / (0.05 A) = 40 โอห์ม
2 / (0.50 A) = 4 โอห์ม
(อัปเดต: ไม่ถูกต้องดูด้านล่างของคำถาม)

ฉันยังคิดว่าตัวเองเป็นมือสมัครเล่นและฉันก็อยู่ในหัวของฉัน

  • การคำนวณเหล่านี้มีลักษณะถูกต้องหรือไม่
  • TIP120 จะใช้งานได้ไหม (ยินดีให้คำแนะนำอื่น ๆ )
  • มีข้อควรพิจารณาอื่น ๆ อีกไหมที่ฉันควรพิจารณาถึงแผนผังของฉันด้วย?

ป้อนคำอธิบายรูปภาพที่นี่

ปรับปรุง

ตามที่ระบุไว้ในคำตอบฉันพิมพ์การจัดอันดับ milliamp ด้วยปัจจัย 10 ฉันควรจะกล่าวว่า:
2 / (0.005 A) = 400 Ohms
2 / (0.050 A) = 40 Ohms

อัปเดต 2

ดูเหมือนว่ามีความผิดปกติบางอย่างเกี่ยวกับพินสูงสุดในปัจจุบันที่ Raspberry Pi สามารถให้ได้ เพื่อความปลอดภัยฉันจะสมมติว่ามันคือ 8 mA

/raspberrypi/9298/what-is-the-maximum-current-the-gpio-pins-can-output

/raspberrypi/1130/what-is-the-nominal-gpio-pin-output-current

อัปเดต 3

Ada fruit เขียนบทความบล็อกที่ยอดเยี่ยมเกี่ยวกับวิธีควบคุมแถบ LED ด้วยไมโครคอนโทรลเลอร์ เธอแนะนำ STP16NF06 หรือ TIP120

https://learn.adafruit.com/rgb-led-strips/usage


2
ฉันไม่คิดว่าพินของ GPIO จะสามารถจ่ายได้ 50 mA ฉันคิดว่าพินรางพลัง + 3.3V สามารถจ่าย 50 mA ได้ ฉันคิดว่า GPIO แต่ละแหล่งสามารถส่งข้อมูลเพียงไม่กี่มิลลิแอมป์ ฉันจะใช้ MOSFET ระดับตรรกะแทน BJT ไม่จำเป็นต้องกังวลเกี่ยวกับกระแสอย่างต่อเนื่องแล้ว IRLB8721 เป็นตัวเลือกที่ดีสำหรับการใช้งานหลายอย่าง ฉันคิดว่าการใช้งานนี้จะมีคุณสมบัติ
Jon Watte

@ JonWatte ขอบคุณที่ชี้ให้เห็นว่าฉันจะตรวจสอบกระแสสูงสุดก่อนที่ฉันจะไปอีก
spuder

@JonWatte การคำนวณพลังงานในการออกแบบของ RPi คิดว่า GPIO ทั้งหมดในเวลาเดียวกัน 3mA แต่ละรวม 50mA คุณสามารถมีเวลาน้อยลงในเวลาที่กำหนดและเพิ่มกระแส ยิ่งไปกว่านั้นพวกเขาคิด 50mA พิเศษโดยตรงจากรถไฟ 3.3v เมื่ออุปกรณ์ต่อพ่วงทั้งหมดมีการใช้งาน (เช่น hdmi, อีเธอร์เน็ตและการ์ด SD ทั้งหมดที่ดึงมาจากรถไฟ 3.3v) ดังนั้น 3.3v PINS เชื่อมต่อโดยตรงกับราง 3.3v และ 3.3v GPIO จาก BCM SOC นั้นแตกต่างกัน
Passerby

+1 สำหรับผู้เริ่มต้นทำวิจัยของตนเองและเริ่มไปถึงจุดนั้นก่อนถามคำถาม
pjc50

@Passerby ฉันคิดว่าคุณจะเผาขั้นตอนการขับขี่ของพิน GPIO หากคุณพยายามหาแหล่งจ่าย 50 mA จากแหล่งใดแหล่งหนึ่งและเก็บส่วนที่เหลือว่างไว้
Jon Watte

คำตอบ:


6

คุณเกือบจะอยู่ที่นั่นสองสามสิ่ง:

การคำนวณตัวต้านทานพื้นฐานไม่ถูกต้อง - จำไว้ว่าคุณต้องการเพียง 1.6mA ตามการคำนวณของคุณ (กระแสของตัวสะสมแยกต่างหาก)
เมื่อดูที่แผ่นข้อมูลการได้รับขั้นต่ำคือ 1,000 และแรงดันอิมิเตอร์พื้นฐานสูงสุดคือ 2.5V ซึ่งหมายความว่าเราจำเป็นต้องปรับการคำนวณ 1.6mA จะทำสำหรับกระแสไฟฟ้าพื้นฐาน (ดีเสมอที่จะมีสวิตช์เสริมเป็นอัตราขยายเสมอ ลดลงที่ความอิ่มตัว) แต่เราจำเป็นต้องใช้ 2.5V มากกว่า 1.3V สำหรับกรณีที่เลวร้ายที่สุด (ควรใช้ตัวพิมพ์เล็ก / ค่าสูงสุดที่แย่ที่สุดในการออกแบบแม้ว่าจะดูที่กราฟดูเหมือนว่า Vbe พิเศษไม่น่าจะเกิดขึ้นในปัจจุบัน ระหว่างตัวเลขทั้งสองด้านล่างนี้ควรเป็นไร):

ดังนั้น:

(3.3V - 2.5V) / 1.4mA = 570Ω

หรือ

(3.3V - 1.5V) / 1.4mA = ~ 1.2kΩ

สิ่งนี้ควรใช้งานได้ดี แต่ไม่ใช่วิธีที่มีประสิทธิภาพที่สุดในการทำสิ่งต่างๆ - การกระจายตัวของทรานซิสเตอร์จะมีอย่างน้อย 0.4A * Vce (sat) ซึ่งประมาณ 0.4A * 0.75V = 0.3W รวมทั้ง R-pi ของคุณต้องการอย่างน้อย สองสาม mA หรือมากกว่านั้นที่จะขับมัน
มอสเฟตระดับตรรกะที่ทันสมัยสามารถมีขนาดเล็กลงมากขับเคลื่อนด้วย (เกือบ) ไม่มีกระแสไฟฟ้า) และแทบไม่มีการกระจาย นี่คือตัวอย่างส่วนFDC637BNZที่สุ่มเลือกจากหลักพันที่ Farnell:

ป้อนคำอธิบายรูปภาพที่นี่


3

0.5A คือ 500 Milliamps ... คุณจะระเบิด Pi ของคุณ 0.05 คือ 50 มิลลิแอมป์ นั่นคือขีด จำกัด สูง ไม่จำเป็นต้องไปเพื่อที่ คุณต้องการ 1.6mA เพียงเท่านี้ ควายมันขึ้นมาซักหน่อยพูดได้ดีถึง 5mA 3.3 - 1.3 = 2v ตัวต้านทานจำเป็นต้องลดลง 2v / 0.005A (5mA) = 400Ω ปัดเศษขึ้นเป็นขนาดใหญ่ที่สุดถัดไปขนาด470Ωคุณจะได้ฐาน ~ 4mA

ข้อผิดพลาดทางคณิตศาสตร์นั้นกัน TIP120 ใช้งานได้ดีสำหรับเรื่องนี้แม้ว่าจะมีค่าใช้จ่ายมากเกินไปสำหรับ 400mA ที่แถบนำจะใช้ มันเป็นคู่ดาร์ลิงตันสำหรับการคูณสูงในปัจจุบัน BJT ทรานซิสเตอร์ธรรมดาทั่วไปเช่น PN2222 (1 แอมป์ในแพ็คเกจ To-92 มาตรฐาน) จะมีมากเกินพอ หรือคุณสามารถแบ่งแถบเป็นสองหรือสามและใช้ 2n3904 (100 ~ 200mA) สองสามอันและแฟลชในส่วนต่าง ๆ แตกต่างกัน (แน่นอนว่าคุณจะต้องมีจำนวน gpio เท่ากันยกเว้นว่าคุณต้องการขับทั้งหมดจาก GPIO เดียว ทำงานได้เหมือนกัน Parallel Transistor แต่ละตัวมีตัวต้านทานพื้นฐานของตัวเองขับส่วนเล็ก ๆ ของแถบ LED จะเป็นวิธีที่ดีในการจัดการกับทรานซิสเตอร์ขนาดเล็กถ้าคุณไม่สามารถรับตัวที่ใหญ่กว่าได้)

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


ขอบคุณสำหรับการจับที่ ฉันพิมพ์การคำนวณ ฉันได้อัปเดตคำถามด้วยข้อมูลที่ถูกต้อง
spuder

1
ข้อเสียของคู่ดาร์ลิงตันคือ V (CE, sat) ที่ค่อนข้างสูงซึ่งเพิ่งจะสิ้นเปลืองพลังงานในทรานซิสเตอร์ BJT ปกติจะทำงานได้ดียิ่งขึ้นในด้านนั้น ในฐานะ @Passerby คุณไม่จำเป็นต้องมีสัตว์ร้ายเหมือนกับ TIP120 ที่ได้รับการจัดอันดับว่าเกือบ 20 เท่าที่คุณต้องการ
jippie
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.