Pytanie:
Jak sterować trzema diodami za pomocą dwóch pinów uC używając tylko elementów pasywnych?
Cano64
2014-04-10 20:18:45 UTC
view on stackexchange narkive permalink

Mam tylko 2 (3-stanowe) piny dostępne na mikrokontrolerze i muszę sterować 3 czerwonymi diodami, uC działa na 5V. Dodatkowo mogę używać tylko komponentów pasywnych.

Zdefiniuj „kontrolę”. Czy potrzebujesz wszystkich diod LED w pełni podświetlonych w tym samym czasie, czy tylko jednej na raz, czy czegoś innego? Dlaczego mówisz, że możesz używać tylko komponentów pasywnych?
Google „charlieplexing”.
@JohnU: Charlieplexing nie robi nic pożytecznego z mniej niż trzema pinami. Dwa piny dają tylko dwie diody LED.
Oczywiście ekspander portu I2C lub nawet kilka prostych rejestrów przesuwnych pozwoliłoby na sterowanie dowolną liczbą diod LED. Dlaczego są one wykluczone?
@DaveTweed - Samo przeszukiwanie google prawdopodobnie ma charakter informacyjny;)
Myślę, że twoje pytanie stało się wyzwaniem dla wielu z nas tutaj. Jest blisko tego, czym [code golf] (http://codegolf.stackexchange.com/) jest dla programistów. +1
Pięć odpowiedzi:
Dave Tweed
2014-04-10 21:41:12 UTC
view on stackexchange narkive permalink

Aby sterować czterema diodami LED:

schematic

symuluj ten obwód - Schemat utworzony za pomocą CircuitLab

Aby zapalić obie diody na konkretnym pinie, przełącz go na kilkaset Hz.

Zauważ, że ta konfiguracja wymaga , napięcie przewodzenia diod LED jest mniejsze niż Vcc / 2.

Należy również pamiętać, że rezystory pobierają energię przez cały czas, a nie tylko wtedy, gdy diody LED są włączone.

Podłączenie R1 tylko do D1 i R2 tylko do D2 itd. Znacznie zmniejszy pobór prądu spoczynkowego, gdy dioda LED jest wyłączona, pod warunkiem, że spadki napięcia diody LED połączą się z VDD.
@supercat: Tak, ale rzadko jest to prawdą w przypadku czerwonych diod LED określonych przez OP. Zobacz [diagram Willa] (http://electronics.stackexchange.com/a/106114/11683).
Dodaj dodatkową diodę LED między węzłami R1-D1 i D2-D2 i ukryj ją gdzieś.
@supercat: Zobacz [odpowiedź Spehro] (http://electronics.stackexchange.com/a/106124/11683).
Dave Tweed
2014-04-10 21:12:00 UTC
view on stackexchange narkive permalink

To rozwiązanie jest uzależnione od tego, że 5V nie zapali szeregowo trzech diod LED. W razie potrzeby możesz dodać diodę krzemową szeregowo z jedną lub kilkoma diodami LED, aby zwiększyć całkowity spadek napięcia przewodzenia.

schematic

zasymuluj ten obwód - schemat utworzony za pomocą CircuitLab

  • Jeśli zarówno pin A, jak i pin B są trójstanowe, wszystkie diody LED są wyłączone.
  • Jeśli kołek A jest wbijany w stan niski, D1 jest włączony.
  • Jeśli kołek A jest wbijany w górę, a kołek B jest wbijany w dół, D2 jest włączony.
  • jeśli kołek B jest wysoki, D3 jest włączony.

Aby mieć więcej niż jedną diodę LED na raz, musisz multipleksować: włączać je pojedynczo, na tyle szybko, aby wydają się świecić w sposób ciągły

Czy jest to jakaś przewaga nad metodą Michaela Karasa?
Ten działa z mniejszym spadkiem napięcia przewodzenia na diodach LED. Jego rozwiązanie to tylko dwie kopie wersji z jednym pinem / dwoma diodami LED.
Ahh więc z tym jeśli masz 2 rezystory to spadasz trochę napięcia na 1 a inne na drugie i musisz spalać mniej w rezystorach?
@Will: Um, nie. W tym schemacie w danym momencie świeci się tylko jedna dioda LED i tylko jeden rezystor na raz spada. Gdy oba piny są trójstanowe, prąd w ogóle nie płynie, ponieważ jest blokowany przez skumulowany spadek trzech diod LED połączonych szeregowo do przodu.
Jeśli masz trójstanowy pin b, możesz sterować 2 diodami LED swoim schematem, prawda?
@Will: Tak, ale ze znacznie zmniejszonym prądem i jasnością i tylko wtedy, gdy V_f jest mniejsze niż Vcc / 2. Przypuszczam, że może się przydać w pewnych okolicznościach.
Więc nie mam przewagi twojego schematu w przeciwieństwie do prostych 2 diod LED / 1 pin. Powyżej umieściłem inny schemat, aby pokazać, jak nie stracić prądu, gdy oba piny są potrójne.
Michael Karas
2014-04-10 20:30:59 UTC
view on stackexchange narkive permalink

Za pomocą dwóch pinów możesz faktycznie sterować czterema diodami LED. Aby sterować dwoma diodami LED, należy umieścić rezystor z pinu MCU, aby ograniczyć prąd i powiązać go z dwiema diodami LED - katodą jednej diody i anodą drugiej diody. Wolny koniec anody pierwszej diody LED zostaje podłączony do VCC płyty MCU poprzez inny rezystor. Wolny koniec katody drugiej diody LED zostaje podłączony do GND (przez inny rezystor). Teraz diody LED będą świecić naprzemiennie, gdy pin MCU jest ustawiony wysoko lub nisko. Podłącz drugi pin MCU w ten sam sposób i masz teraz kontrolę nad łącznie czterema diodami LED.

Aby uzyskać wygląd niezależnej kontroli każdej diody LED w parze, wymagany jest jeden ze styków portu małe oprogramowanie działa następująco.

Jeśli LED1 to ta z anodą do styku portu, a LED2 to ta z katodą do styku portu, wykonaj następujące czynności, aby ustawić cztery stany dla dwóch diod LED .

  LED2 LED1 Działanie WYŁ. WYŁ. Ustaw styk portu na poziom trójstanowy WYŁ WŁ Ustaw styk portu na niski WŁ WYŁ Ustaw styk portu w stanie wysokim WŁ WŁ Przełącz styk portu na stan wysoki i niski na częstotliwość powyżej około 120 Hz. 

Powtórz te same czynności dla drugiego pinu portu, a będziesz wyglądać tak, jakbyś miał cztery niezależne diody na dwóch pinach portu.

Ten schemat działa dobrze dla diod LED, które mają spadek napięcia przewodzenia przekraczający połowę poziomu VCC. Czerwone diody LED z 2,1 VF nie będą działać tak dobrze, jeśli VCC ma na przykład 5 V. Z drugiej strony zielona dioda LED z VF 2,5 V będzie działać świetnie w systemie z VCC 3,3 V.

Czy to jednak całkowita kontrola? Jak je wszystkie włączyć lub wyłączyć?
Jedna dioda LED świeci się, gdy prąd wypływa z kołka, druga dioda LED świeci, gdy prąd płynie do kołka. Więc wyłącz je oba, po prostu potrójnie styk pin portu, żaden prąd nie wejdzie ani nie wyjdzie z niego, więc nie ma diod LED. Prąd nie może wpływać i odpływać w tym samym czasie, więc nie można mieć włączonych obu diod LED dokładnie w tym samym momencie. Ale możesz stworzyć efekt, że oba są włączone, wbijając pin wysoko, potem nisko, potem wysoko, potem nisko, potem wysoko, potem nisko itd
Will
2014-04-10 22:10:08 UTC
view on stackexchange narkive permalink

2 leds one pin, badly drawn

W ten sposób żaden prąd nie płynie, gdy są wyłączone, i możesz napędzać tyle / mało napięcia do przodu, ile potrzebujesz

To jest to samo, co rozwiązanie Michaela Karasa. Wymaga, aby V_f diod LED było większe niż Vcc / 2, w przeciwnym razie nie można ich całkowicie wyłączyć.
+1 za podjęcie wysiłków w celu zaprezentowania rozwiązania Michaela Karasa kopiującego schematy CircuitLabs Dave'a Tweeda i [rysowanie w nim linii odręcznych] (http://meta.stackexchange.com/a/19775/235912) za pomocą MS Paint (lub podobnego) ).
I to było w farbie :)
Ach, rozumiem, o czym teraz mówisz, Dave. Prąd idzie r1 d1 d2 r2 i nic nie musi wchodzić do / naszego pinu
Spehro Pefhany
2014-04-10 22:58:38 UTC
view on stackexchange narkive permalink

EDN opublikował kilka powiązanych pomysłów na projekt tutaj

Oto jeden z nich: -

enter image description here

Dla typowych wartości z D1 żółtą diodą LED (2,2 V wł.), D2 czerwoną diodą LED (1,9 V wł.) i napięciem wyłączenia odpowiednio 1,2 V i 1,1 V oraz prądami włączenia 8 mA każdy, Vcc = 5,0 V, wartości optymalne to

R1 = 300 omów R2 = 330 omów R3 = 1,2 kiloomów

Prąd spoczynkowy wynosi 2,7 mA. Aby obie diody LED wyglądały na podświetlone, przełącz styk wyjściowy na 100 Hz lub więcej.

Użyłem solwera Excela w oryginalnym artykule, kod może być nadal dostępny z EDN.

Dodatkowy stopień swobody zapewniany przez rezystor R3 pozwala uniknąć ograniczeń zarówno obwodów Dave'a Tweeda, jak i Michaela Karasa, chociaż w konkretnym przypadku 2 czerwonych diod LED działających z Zasilanie 5 V, obwód Dave'a Tweeda jest prawdopodobnie akceptowalny, ale sprawdź dokładnie Vf, nie jest w porządku dla niektórych czerwonych diod LED i może być marginalny dla innych, jeśli pin portu nie pociągnie całkowicie w dół lub w górę.

Uwaga: OP prosi o * wszystkie pasywne * obwód. Ponadto, jeśli pin MCU ma wysokie Z, falownik jest zmuszony do pracy w trybie liniowym, co generalnie powoduje marnowanie mocy.
@DaveTweed Tak, moja oryginalna publikacja określała falownik ST, więc zredagowałem, aby to wyjaśnić. To ** nie ** wszystko jest pasywne, ale jest proste i zerowe Iq. Drugi obwód ma wyższe Iq, ale jest całkowicie pasywny. Dzięki za komentarze.
Nie wiem, jak pomaga wejście wyzwalacza Schmitta; zamiast tego myślę, że zmusiłoby to obwód do oscylacji. To prawda, diody LED będą wyłączone, ale sam falownik będzie zużywał znaczną moc.
Cóż, ponieważ nie spełnia pierwotnego wymogu braku aktywnych części, usunę go, ale uważam, że działa dobrze.
+1 dla R3 może być przydatną sztuczką. I do tego tani


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...