ควบคุม LED สองสีด้วยขาเดียว


9

เป็นไปได้หรือไม่ที่จะควบคุมไฟ LED สองสีด้วยไมโครคอนโทรลเลอร์เพียงขาเดียว

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

แต่อาจมีบางคนมีความคิดที่ดีกว่า


1
คุณสามารถทำอะไรก็ได้ด้วยไมโครพินหนึ่งอัน กรุณาเจาะจงมากขึ้น?
— Nick T

คำตอบ:


6

คุณสามารถทำสิ่งนี้ได้ด้วยไฟ LED สองสีที่มีไฟ LED สองด้านหลังถ้าคุณเชื่อมต่อขั้ว LED หนึ่งตัวกับแรงดันไฟฟ้ากลางเช่น 2.5V บนการออกแบบ 5V และเชื่อมต่ออีกด้านหนึ่งกับ MCU ผ่านตัวต้านทานที่เหมาะสม ( ฉันใช้ 560R)

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

คุณสามารถปรับแรงดันไฟฟ้ากลางเพื่อชดเชยแรงดันไฟฟ้าไปข้างหน้า LED ที่แตกต่างกันได้เช่นกัน

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


3

หากคุณไม่ต้องการสถานะปิดและ Voh ของคุณมีขนาดใหญ่พอ (แก้ไข: เพื่อเอาชนะแรงดันไบแอสไปข้างหน้าของ LED) คุณอาจสามารถต่อปลายด้านหนึ่งของ LED เข้ากับแรงดันไฟฟ้ากลาง การเอาท์พุท 1 จะได้สีเดียวและเอาท์พุท 0 จะได้สีอื่น เพื่อปิด ... ฮ้าขอโชคดี บางทีคุณอาจลองใส่คาปาซิเตอร์เข้าไปที่นั่นแล้วขับออกด้วย PWM ที่ฝาครอบจะเรียบออกไปกลางราง


7
ฉันคิดเหมือนกันมากบางทีสถานะ off สามารถทำได้โดย tristating pin output ของไมโคร
— tcrosley

1
คำแนะนำที่ยอดเยี่ยม ... การระบุขาควรปิดโดยไม่ต้องใช้ PWM แฟนซี อย่างไรก็ตามคุณต้องระมัดระวังเกี่ยวกับการปล่อยให้อินพุตลอยอาจต้องดึงลง (ไม่ใช่ตัวแบ่งอย่าปล่อยให้พินอินพุตดูแรงดันไฟฟ้ากลางรถไฟ!)
— ajs410

1
คุณสามารถใช้ตัวต้านทานที่มีมูลค่าสูง (470k) ดึงได้สูงหรือต่ำ LED จะมีลำเอียงหรือสีใดสีหนึ่ง แต่อื่น ๆ แต่การไหลของกระแสจะต่ำดังนั้นคุณจะไม่เห็นไฟ LED เป็นบน
— akohlsmith

5
@ ajs410 - ฉันคิดว่า MCU ได้รับการออกแบบอย่างชาญฉลาดมากกว่าชิปตรรกะที่โง่ สำหรับไมโครเฉลี่ย 8 บิตของคุณพินส่วนใหญ่สามารถใช้เป็นอินพุตแบบอะนาล็อก (โดยไม่ต้องกำหนดค่าเหล่านี้อย่างชัดเจน) ดังนั้นจึงไม่ควรมีผลใด ๆ GND และ VDD
— Nick T

2
หนึ่งในข้อเสีย (อาจมีความสำคัญ) ของทอพอโลยีนี้คือคุณจะมีการจับกระแสที่มีนัยสำคัญพอสมควรซึ่งจะ (โดยไม่มีการดัดแปลง) ห้ามใช้กับการใช้งานแบตเตอรี่ระยะยาว
— Nick T

0

คุณสามารถCharlieplexได้


3
แต่ต้องใช้อย่างน้อยสองพิน OP ขอวิธีการแก้ปัญหาโดยใช้หนึ่งพิน
— tcrosley

ในความเป็นจริงเป็นไปได้ในบางกรณีที่จะขยาย Charlieplexing เพื่อให้ LED N * (N + 1) กับ N หมุดหากแรงดันไฟฟ้าของอุปทานมีค่าน้อยกว่าสองเท่าของแรงดันไฟตก LED และมีการรวมกันที่เหมาะสมของแรงดันไฟ LED สมมติว่าความเรียบง่ายนั้นเป้าหมายคือการควบคุมไฟ LED 12 ดวงด้วยสามพิน ไฟ LED หกดวงมีไฟหยดลง 2.5 โวลต์และอีกหลอดหนึ่งมีไฟขนาด 1.7 โวลต์และแรงดันไฟฟ้าคือ 3.0 โวลต์ เป้าหมายคือ 5mA สำหรับ 2.5 volt diodes และ 6.5mA สำหรับ 1.7-volt diodes ใส่ตัวต้านทาน 100ohm เป็นอนุกรมกับแต่ละเอาต์พุต ไฟ LED 2.5 โวลต์สามตัวเชื่อมต่อเอาต์พุตกับ VDD สามถึง VSS ...
— supercat

... และ LED 1.7 โวลต์เชื่อมต่อเอาท์พุทซึ่งกันและกันในรูปแบบ "ปกติ" Charlieplex ในการเปิดไฟ LED 1.7 โวลต์ให้ขับหนึ่งเอาต์พุตสูงและหนึ่งต่ำ ตัวต้านทานจะลดลง 0.65 โวลต์ปล่อยให้ 1.7 โวลต์สำหรับ LED และแรงดันไฟฟ้าไม่เพียงพอสำหรับ LED 2.5 โวลต์ หากต้องการเปิดไฟ LED ขนาด 2.5 โวลต์ให้ขับหนึ่งเอาต์พุตที่สูงหรือต่ำและอื่น ๆ จากนั้น LED 2.5 โวลต์จะมีกระแสไฟเพียงพอ
— supercat

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