하나의 핀으로 바이 컬러 LED 제어


9

마이크로 컨트롤러의 핀 하나만으로 바이 컬러 LED를 제어 할 수 있습니까?

본능은 NO라고 말합니다. 한쪽 끝을 접지하고 다른 쪽 끝을 마이크로 핀으로 옮길 수 있기 때문에 켜거나 끌 수는 있지만 색상을 변경할 수는 없습니다.

그러나 누군가 더 나은 아이디어가 있습니까?


1
마이크로 핀 하나만 있으면 무엇이든 할 수 있습니다. 좀 더 구체적으로 부탁드립니다.
Nick T

답변:


6

하나의 LED 단자를 5V 설계의 2.5V와 같은 중간 전압에 연결하고 다른 쪽을 적절한 저항을 통해 MCU에 연결하는 경우 두 개의 LED가 연속되는 2 색 LED를 사용하여이 작업을 수행 할 수 있습니다 ( 나는 560R을 사용했다).

그런 다음 낮은 출력은 한 가지 색상을 제공하고, 높은 출력은 다른 색상을 제공하며 3 상태는 LED를 끕니다. 펄스 폭 변조를 사용하면 밝기를 제어하거나 (활성 상태와 3 상태 간 전환 출력) 색상을 혼합 할 수 있습니다 (출력을 낮음에서 높음으로 전환).

다른 LED 순방향 전압도 보상하기 위해 중간 전압을 조정할 수 있습니다.

LM2904 연산 증폭기를 사용하여 중간 전압을 제공했습니다. 공급 전압이 최저 5V로 작동합니다. 더 낮은 전압에서 작동하고 여전히 LED를 구동하기에 충분한 전류를 싱킹 및 소싱 할 수있는 다른 장치가 많이 있습니다.


3

오프 상태가 필요하지 않고 Voh가 충분히 큰 경우 (편집 : LED의 순방향 바이어스 전압을 극복하기 위해) LED의 한쪽 끝을 중간 레일 전압에 연결할 수 있습니다. 1을 출력하면 한 색상이, 0을 출력하면 다른 색상이 표시됩니다. 끄려면 ... 행운을 빕니다. 아마도 커패시터를 거기에 넣고 PWM으로 출력을 구동하여 캡이 미드 레일로 부드럽게 될 수 있습니까?


7
나는 거의 같은 것을 생각하고 있었는데, 아마도 오프 상태는 마이크로의 출력 핀을 tristating함으로써 달성 될 수 있습니다.
tcrosley

1
굉장한 제안 ... 핀을 트라이-스테이 팅하면 멋진 PWM없이 핀을 꺼야합니다. 그러나 입력 플로트에주의해야합니다. 풀다운이 필요할 수 있습니다 (분배기가 아님, 입력 핀이 미드 레일 전압을 보지 못하게하십시오!)
ajs410

1
높거나 낮게 끌어 낸 고 가치 (470k) 저항을 사용할 수 있습니다. LED가 바이어스되거나 한 가지 색 또는 다른 색으로 표시되지만 전류 흐름이 너무 낮아서 LED가 켜지지 않습니다.
akohlsmith

5
@ ajs410-MCU가 멍청한 논리 칩보다 훨씬 지능적으로 설계되었다고 생각합니다. 평균 8 비트 마이크로에서 대부분의 핀을 아날로그 입력으로 사용할 수 있으므로 (명확하게 구성하지 않아도 됨) 전압이 유지되는 한 악영향 (게이트 발진, 과도한 전류 소모)이 없어야합니다. GND 및 VDD.
Nick T

2
이 토폴로지의 (아마도 중요한) 단점 중 하나는 장기간 배터리 구동 응용 제품에 대해 (수정없이) nix를 상당히 상당히 끌어 올릴 수 있다는 것입니다.
Nick T

0

당신은 그것을 Charlieplex 할 수 있습니다


3
그러나 최소 2 개의 핀이 필요합니다. OP는 하나의 핀을 사용하여 솔루션을 요청했습니다.
tcrosley

실제로, 공급 전압이 LED 전압 강하의 두 배 미만이고 LED 전압 강하의 올바른 조합이있는 경우 Charlieplexing을 확장하여 N 핀이있는 N * (N + 1) LED를 제공 할 수 있습니다. 간단하게 목표는 3 개의 핀으로 12 개의 LED를 제어하는 ​​것입니다. 6 개의 LED는 2.5V 강하, 6 개는 1.7V 강하, 공급 전압은 3.0V입니다. 목표는 2.5V 다이오드의 경우 5mA, 1.7V 다이오드의 경우 6.5mA입니다. 각 출력과 100ohm 저항을 직렬로 연결하십시오. 2.5 볼트 LED 중 3 개는 출력을 VDD에, 3 개는 VSS에 연결합니다.
supercat

... 1.7V LED는 "일반"Charlieplex 형태로 출력을 서로 연결합니다. 1.7V LED를 켜려면 하나의 출력을 높고 낮은 것을 구동하십시오. 저항은 0.65V를 떨어 뜨려 LED의 경우 1.7V, 2.5V LED의 전압이 부족합니다. 2.5V LED를 켜려면 하나의 출력을 높거나 낮게 구동하고 다른 출력은 전혀 사용하지 마십시오. 그러면 2.5 볼트 LED에 충분한 전류가 흐르게됩니다.
supercat

필요한 경우 다른 전압 시나리오를 처리하기 위해 더 많은 저항 또는 실리콘 다이오드를 추가 할 수 있지만 다소 복잡해집니다. @tcrosley : 위의 내용은 하나의 핀을 사용하여 두 개의 LED를 제어하는 ​​것으로 일반화됩니다.
supercat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.