มีขีด จำกัด ว่าในปัจจุบันจำนวนพินจะจมหรือไม่


13

ฉันกำลังทดลองกับเมทริกซ์ LED 8x8 ที่ควบคุมโดย Arduino Uno อย่างที่ฉันคิดว่าเป็นเรื่องปกติเมทริกซ์ใช้ขั้วบวกทั่วไปสำหรับแต่ละแถวและแคโทดทั่วไปสำหรับแต่ละคอลัมน์

ในตอนนี้ฉันมีหมุดเมทริกซ์ทั้งหมดที่เชื่อมต่อโดยตรงกับหมุด IO บน Uno และฉันไม่ได้มีปัญหาใด ๆ ในการให้แสง LEDs ทีละตัว การผ่านเมทริกซ์ทั้งหมดเช่นนี้ทำให้การอัปเดตช้าลงเล็กน้อยซึ่งหมายความว่าไฟ LED ไม่สว่างเท่าที่ฉันต้องการ

เท่าที่ฉันรู้ฉันไม่สามารถส่องสว่างทั้งแถวในคราวเดียวได้อย่างปลอดภัยเพราะพินแต่ละอันบน Uno ไม่สามารถจัดหากระแสไฟได้เพียงพอที่จะขับ LED 8 ดวงแยกกันในเวลาเดียวกัน (ต้องการอย่างน้อย 10mA จะสว่างพอ)

มันเกิดขึ้นกับฉันว่าการย้อนกลับอาจปลอดภัยกว่า หากฉันสว่างขึ้นทั้งคอลัมน์ในแต่ละครั้งแต่ละพินจะต้องมีแหล่งกำเนิดกระแสเพียงพอสำหรับ LED หนึ่งอันซึ่งน่าจะไม่มีปัญหา อย่างไรก็ตามมันขึ้นอยู่กับหนึ่งพินที่อาจทำให้กระแสจาก 8 ทั้งหมดรวมกันอย่างน้อย 80mA

เป็นไปได้หรือฉันจะทอดบอร์ดของฉัน


คุณใช้จอแสดงผลแบบใด (แผ่นข้อมูล) และคุณใช้ตัวต้านทานแบบอนุกรมกับมัน บางทีคุณอาจจะทอดชั่วโมงแสดงมากกว่า Arduino
jippie

ไม่มีหมายเลขชิ้นส่วนดังนั้นฉันจึงไม่มีแผ่นข้อมูลที่แน่นอน ฉันได้สมมติว่า LED แต่ละตัวมีแรงดันไปข้างหน้า 2V และค่อนข้างอนุรักษ์นิยมโดยใช้ตัวต้านทานซีรีย์ 390 โอห์มในขณะนี้ (ขณะทดสอบ) นั่นหมายความว่าฉันขับมันประมาณ 8mA แต่ละอันที่ฉันคิด
Peter Bloomfield

ที่ควรจะดี
jippie

คุณช่วยอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่คุณกำลังทำอยู่ได้ไหม เหตุผลที่ฉันถามคือเพราะฉันต้องการทำสิ่งเดียวกันและฉันเป็นมือใหม่ ฉันเป็น RTFMing และคำถามของคุณเป็นที่นิยมมากที่สุดสำหรับการค้นหาของฉัน ฉันเป็น jeffsilverm@gm4il.c0m ขอขอบคุณ.
user1928764

คำตอบ:


13

ฉันจะทอดกระดานของฉันหรือไม่

ผลลัพธ์น่าจะสวย นี่คือเหตุผล:

Arduino Uno ใช้ไมโครคอนโทรลเลอร์ atMEGA328 ซึ่งมีการจัดอันดับสูงสุด 40 mA หรือจมต่อ GPIO นอกจากนี้กระแสรวมผ่านรางจ่ายไฟหรือกราวด์ (เช่นจำนวนรวมของกระแสไฟ OP ทั้งหมดต้องการให้ขา GPIO จมหรือแหล่งกำเนิด) ได้รับการจัดอันดับสูงสุด150 200 mA

กราฟปัจจุบันในแผ่นข้อมูล atMEGA328 นั้นไม่ได้ไปถึง 40 mA ดังนั้นจึงเป็นเรื่องที่ปลอดภัยที่สุดที่จะ จำกัด กระแสรวมไว้ที่ 20 mA ต่อ GPIO

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

วิธีแก้ปัญหา :

ใช้ BJTs, MOSFETs หรือ IC ไดร์เวอร์บางตัวเช่นULN2003เพื่อขับกระแสไฟผ่าน LEDs


2
คุณพบ 150mA สูงสุดที่ไหน สำหรับแพคเกจ? ฉันมี 200mA ภายใต้การจัดอันดับสูงสุดแน่นอน
jippie

@ jippie ฉันทำผิด :-)
Anindo Ghosh

9

ฉันจะขโมยคำตอบของฉันเมื่อฉันตอบคำถามนี้ในความพยายาม arduino SE ครั้งล่าสุด


มันซับซ้อนเล็กน้อย โดยทั่วไปมีปัจจัย จำกัด จำนวน:

สาย IO จากไมโครคอนโทรลเลอร์ (เช่นหมุดแบบอะนาล็อกและดิจิตอล) มีขีด จำกัด กระแสรวม (เช่นทั้งหมด) และขีด จำกัด ต่อขา:

ป้อนคำอธิบายรูปภาพที่นี่
จากแผ่นข้อมูล ATmega328P

อย่างไรก็ตามขึ้นอยู่กับวิธีที่คุณกำหนด Arduino "พิน" นี่ไม่ใช่เรื่องราวทั้งหมด

ขา 5V ของ Arduino จะไม่ได้เชื่อมต่อผ่านไมโครคอนโทรลเลอร์ เช่นนี้มันสามารถแหล่งพลังงานอย่างมีนัยสำคัญมากขึ้น เมื่อคุณจ่ายไฟให้กับ Arduino ของคุณจาก USB อินเตอร์เฟส USB จะ จำกัด การใช้พลังงานทั้งหมดของคุณไว้ที่ 500 mA สิ่งนี้แชร์กับอุปกรณ์บนบอร์ด arduino ดังนั้นพลังงานที่มีอยู่จะค่อนข้างน้อย
เมื่อคุณใช้แหล่งจ่ายไฟภายนอกผ่านขั้วอำนาจบาร์เรลคุณจะถูก จำกัด โดยการควบคุม 5V ท้องถิ่นซึ่งจัดอยู่ในอันดับสูงสุดของ1 แอมป์ อย่างไรก็ตามสิ่งนี้ยังมีข้อ จำกัด ทางความร้อนซึ่งหมายความว่าเมื่อคุณดึงพลังงานตัวควบคุมจะร้อนขึ้น เมื่อมันร้อนมากเกินไปก็จะปิดตัวลงชั่วคราว

เอาท์พุทที่ควบคุม 3.3V สามารถจ่ายได้สูงสุด 150 mA ซึ่งเป็นขีด จำกัด ของตัวควบคุม 3.3V


สรุป

  • อย่างสูงสุดสำหรับ IO ขาเดียวคือ40 มิลลิแอมป์ ( นี้เป็นสูงสุด . คุณไม่ควรดึงจริงเต็มรูปแบบ 40 mA จากขา. โดยทั่วไปก็เกณฑ์ที่ Atmel ไม่สามารถรับประกันชิปจะไม่ได้รับความเสียหาย คุณควรตรวจสอบให้แน่ใจว่าคุณปลอดภัยต่ำกว่าขีด จำกัด ปัจจุบัน )
  • กระแสรวมจากหมุด IO ทั้งหมดเข้าด้วยกันคือสูงสุด 200 mA
  • 5V output pin นั้นดีสำหรับ~ 400 mA บน USB, ~ 900 mA เมื่อใช้อะแดปเตอร์ไฟภายนอก
    • 900 mA สำหรับอะแดปเตอร์ที่มี ~ 7V เมื่อแรงดันไฟฟ้าของอะแดปเตอร์เพิ่มขึ้นปริมาณความร้อนที่ตัวควบคุมจะต้องจัดการก็เพิ่มขึ้นดังนั้นกระแสสูงสุดจะลดลงเมื่อแรงดันเพิ่มขึ้น สิ่งนี้เรียกว่าการจำกัดความร้อน
  • เอาท์พุท 3.3V มีความสามารถในการจัดหา150 mA
    • หมายเหตุ - อำนาจใด ๆ มาจากรถไฟ 3.3V ได้ผ่านไปรถไฟ 5V ดังนั้นถ้าคุณมีอุปกรณ์ที่ 100 mA ในการส่งออก 3.3V ที่คุณจะต้องไปยังนับกับ 5V หมุนเวียน

หมายเหตุ: สิ่งนี้ไม่ได้ใช้กับ Arduino Due และอาจมีความแตกต่างบางอย่างสำหรับ Arduino Mega โดยทั่วไปน่าจะเป็นจริงสำหรับ Arduino ที่ใช้ไมโครคอนโทรลเลอร์ ATmega328

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.