ควบคุม 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.