การแนบ LED ไปยังขา Rx ของ PIC


13

ฉันต้องการวิธีที่จะรู้ว่าmicrocontroller( PIC) กำลังรับ (หรือส่ง) ข้อมูลใด ๆ ดังนั้นฉันคิดว่าจะแยกเก็บไว้LEDเพื่อที่จะกระพริบเมื่อมีการถ่ายโอนข้อมูลเกิดขึ้น

LEDแต่ผมจำเป็นต้องรู้วิธีที่จะแนบนี้ ตกลงแนบหมุดLEDไปยังPICs Tx(และRx) ได้โดยตรงหรือไม่ ฉันหมายความว่ามันจะส่งผลกระทบต่อการถ่ายโอนข้อมูลในบางวิธี (เช่นโดยการลดแรงดันและอื่น ๆ ... )

คำตอบ:


14

(อย่างน้อยบางส่วน) PIC ไม่สามารถขับกระแสได้มาก (*) แต่สำหรับหมุด RxD คุณควรใช้ทรานซิสเตอร์ขับ LED เพราะคุณจะหลีกเลี่ยงการโหลดตัวส่งสัญญาณที่ปลายอีกด้าน (อาจเป็น MAX3232 หรือคล้ายกัน ?)

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

เชื่อมต่ออินพุต "Q" กับบรรทัด TxD / RxD ทรานซิสเตอร์วัตถุประสงค์ทั่วไปทั่วไปจะได้รับประมาณ 100 จากนั้นกระแสฐาน 1 mA ก็เพียงพอที่จะรับกระแส 20 mA

สำหรับบัส 5 V ​​และแหล่งจ่ายไฟ:
เลือก = 3.9 kΩจากนั้นกระแสไฟฟ้าพื้นฐานจะเป็น (5 V - 0.7 V) / 3.9 kΩ = 1.1 mA ในการ จำกัด กระแสของตัวเก็บกระแสให้เหลือ 20 mA (LED ตัวบ่งชี้ทั่วไป)ควรเป็น (5 V - 2 V) / 20 mA = 150 ΩRBR

สำหรับบัส 3.3 V และแหล่งจ่ายไฟให้ใช้สมการเดียวกันแทนที่ 5 V ด้วย 3.3 V จากนั้นค่าตัวต้านทานของคุณจะเป็น 2.2 kΩและ 47 Ω resp



MOSFET อย่างAndrejaKoแนะนำว่าเป็นทางเลือกที่ดี แต่ให้แน่ใจว่าคุณมีประเภทเกทระดับตรรกะด้วยแรงดันเกตของเกตระดับสูงสุดต่ำกว่าแรงดันบัส (มีเป็นตรรกะ FETs ระดับที่ประตูที่สามารถจะสูงถึง 4 V แล้วคุณจะไม่ได้รับในปัจจุบันท่อระบายน้ำเพียงพอกับแรงดันไฟฟ้ารถบัส 3.3 V และ.) ประโยชน์ที่แท้จริงของ FET ก็คือว่ามันแทบจะไม่ตอบสนองความต้องการใด ๆ ในปัจจุบันไดรฟ์ แต่ เนื่องจากเราต้องการ mA สำหรับ BJT เท่านั้นเราจึงไม่มีปัญหาใด ๆ


(*) คอนโทรลเลอร์ PIC แบบสุ่มนี้ระบุการลดลง 700 mV ที่กระแสออกเพียง 3 mA นั่นคือความต้านทานเอาต์พุต 230. LED 2 V ขับเคลื่อนโดยตรงจากเอาต์พุต 3.3 V จะลดลง 1 V ที่ 4 mA เท่านั้น ไฟ LED แสดงสถานะส่วนใหญ่จะระบุไว้ที่ 20 mA


stevenvh คำตอบที่ดี +1 สำหรับการเพิ่มข้อเสนอแนะขนาดต้านทานอื่น ๆ อีกมากมายเพียงหมายถึงกฎของโอห์ม
CHWI

1
แม้ว่านี่อาจเป็นวิธีที่ "เหมาะสม" ในการทำ .. หากคุณไม่สามารถขับ <5mA หรือมากกว่านั้นจากพิน MCU ได้ฉันก็จะถามค่าของ MCU นั้นในแอปพลิเคชันในโลกแห่งความเป็นจริง tranceivers RS232 นั้นแข็งแกร่งมากเช่นกัน ฉันมีการออกแบบมากมายที่ตัวต้านทานซีรีย์และไฟ LED นั่งลงบนเส้น rx / tx โดยตรง มันใช้งานได้ดีแม้ว่าคุณจะไม่ได้ใช้ MAX แต่แหล่งที่มาที่สองคือผู้มีปัญหา ตราบใดที่คุณไม่พยายามขับ 20mA หรืออะไรที่คลั่งไคล้เช่นนั้นก็ไม่น่ามีปัญหาอะไร และถ้าคุณเลือก LED ที่สว่างและทันสมัยคุณสามารถใช้ตัวต้านทาน 10k ได้อย่างง่ายดาย
Lundin

@Lundin - ดี Microchip ไม่ได้เลวร้ายอะไรเลยในแอปพลิเคชันในโลกแห่งความเป็นจริงแม้ว่าแผ่นข้อมูลนี้จะระบุการลดลงของ 700 mV ที่ 3 mA และ Vcc เพียง 3.3 V. นั่นเป็นความต้านทานภายในมากกว่า 200ไม่ใช่ ดีมาก. Ω
stevenvh

@stevenvh บางทีฉันอาจจะเบื่อกับ Freescale ที่คุณสามารถขับรถ + -20mA ผ่านขาเดียว (ที่ Vdd = 3V) โดยไม่ต้องออกไป แม้ว่าแน่นอนเราต้องออกแบบด้วยระยะขอบ สำหรับเครื่องส่งสัญญาณแบบ MAX นั้นรุ่นมาตรฐานมีค่า volatage spec สูง> 2.0V ต่ำ <0.8V เพื่อให้ไม่มีปัญหา
Lundin

Btw ข้อมูลจำเพาะ LED ของ 20mA สำหรับความสว่างที่เหมาะสมที่สุด หากคุณใส่หลอดไฟที่มีความสว่างสูงในปัจจุบันด้วย> 300mcd คุณสามารถลดกระแสให้เหลือต่ำกว่าหนึ่งในสิบของสิ่งที่คุณจะใช้กับหลอดไฟ LED แบบคลาสสิค เรากำลังพูดถึง uA มากกว่ากระแส mA
Lundin

10

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

ทรานซิสเตอร์ถูกใช้ในการกำหนดค่าตัวติดตามของตัวปล่อยซึ่งช่วยลดความต้องการตัวต้านทานพื้นฐานและยังใช้กระแสฐานขั้นต่ำสุดที่เป็นไปได้สำหรับกระแสไฟ LED ที่เกิดขึ้น เมื่อสายดิจิตอลลดลงอีซีแอลจะอยู่ที่ประมาณ 700 mV เมื่อพิจารณาไฟ LED สีเขียวปกติที่ลดลงประมาณ 2.1 V จะเหลือ 2.2 V เมื่อเทียบกับ R1 2.2V / 120Ω = 18 mA ซึ่งต่ำกว่าสูงสุด 20 mA โดยทั่วไปจะเป็น T1-3 / 4 และ LED ทั่วไปอื่น ๆ อีกมากมาย

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

หากคุณใช้แหล่งจ่ายไฟ 3.3 V ให้ปรับ R1 ตามลำดับ 3.3V - 2.1V - 700mV = 500mV ด้วย R1 500mV / 20mA = 25Ω คุณต้องการเว้นระยะขอบไว้ดังนั้นค่ามาตรฐานที่ 27 Ωควรจะทำงานได้ดี 3.3 V supply นั้นเป็นค่าต่ำสุดที่คุณต้องการใช้การกำหนดค่าตัวติดตามของ emitter


5

คุณไม่ควรพยายามเชื่อมต่อไดโอดกับพินโดยตรงเพราะมันจะส่งผลต่อการทำงานของพินอย่างแน่นอน ให้ลองใช้ Mosfet ระดับตรรกะเพื่อขับ LED เชื่อมต่อ gate gate ของ MOSFET เข้ากับ Rx pin และท่อระบายน้ำเข้ากับ LED และตัวต้านทาน

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

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

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