Spisu treści:
- Krok 1: 20 diod LED na 5 pinach
- Krok 2: Charlieplexing
- Krok 3: Wprowadzenie do pracy
- Krok 4: Mniejszy i bardziej wszechstronny…
- Krok 5: Mały Bitty
- Krok 6: Oprogramowanie
Wideo: Jak sterować wieloma diodami LED z kilku pinów mikrokontrolera.: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:33
Korzystając z faktu, że wiele pinów mikrokontrolera ma trzy stany (+ V, GND lub „wysoka impedancja”, możesz sterować diodami LED N * (N-1) z pinów N. Tak więc mały mikrokontroler 8-pinowy, taki jak PIC12Fxxx lub ATtiny11, może sterować 20 diod LED na pięciu dostępnych pinach wyjściowych i nadal pozostaje jeden pin na jakiś rodzaj wejścia. Zobacz także
Krok 1: 20 diod LED na 5 pinach
Aktualny zbiór mikrokontrolerów o niskiej liczbie pinów (6 pinów do 20 pinów włączonych)
cały pakiet) są atrakcyjne cenowo i „słodkie”, ale pojawia się pytanie, jak najlepiej wykorzystać te piny do typowych zastosowań, takich jak sterowanie diodami LED. Metoda bezpośredniego łączenia do sterowania diodami LED wymaga jednego styku dla każdej diody LED. Tradycyjny schemat multipleksowania, w którym rzędy anod LED są napędzane przez jeden zestaw kołków N, a wspólna katoda każdego rzędu jest napędzana przez inny zestaw kołków M, pozwala zapalić diody LED N * M z kołkami N + M. Jednak na procesorze z tylko 5 lub mniej wyjściami (jak w przypadku większości 8-pinowych mikrokontrolerów), to ledwo daje więcej wyjść niż napęd bezpośredni.
Krok 2: Charlieplexing
Zakładając, że styki wyjściowe są rzeczywiście trójstanowe (aktywna wysoka, aktywna niska i wysoka impedancja (wejście)) możliwe jest również współdzielenie sterowników wierszy i kolumn oraz sterowanie diodami LED N * (N-1) tylko za pomocą N pinów. Jeden pin jest podłączony do wspólnych katod rzędu diod LED i jest zasilany w niskim stanie, a pozostałe piny N-1 są podłączone do anod i albo ustawione wysoko, aby oświetlić tę kolumnę, albo pozostawione jako wejścia, aby pozostawić diodę LEDwyłączoną. Maxim nazywa tę technikę „Charlieplexing” i opisuje ją w (1); Microchip wspomina o tym również w swoim dokumencie (2) (i implementuje również na płycie PICKit 1.) (1) „Charlieplexing - Reduced Pin-Count LED Display Multiplexing” https://www.maxim-ic.com/appnotes. cfm/appnote_number/1880(2) „Tips 'n Tricks 8-pinowe mikrokontrolery FLASH PIC”https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf(3) rgbfil
Krok 3: Wprowadzenie do pracy
To napędza 20 diod LED z ATtiny11. Wcześniejsza wersja tej tablicy była
faktycznie zbudowany i pojawia się jako zdjęcie na stronie głównej. Obawiam się, że obraz schematu jest dość beznadziejny; potrzebujesz Eagle, aby powiedzieć ci, które sygnały są połączone, gdzie.
Krok 4: Mniejszy i bardziej wszechstronny…
Ponieważ większość tablicy zajmuje tablica LED, możemy zrobić miejsce
na chip Attiny LUB mikrochip PIC12F. Zmniejsz diody LED do 3 mm i przejdź do płytki dwustronnej, a otrzymamy coś około 27x44 mm Niestety, ta płyta nie została jeszcze przetestowana…
Krok 5: Mały Bitty
Microchip ma oczywiście swoje 6-pinowe układy PIC10F, zdolne do napędzania
zaledwie 6 diod LED z 3 pinów wyjściowych. Ma to około 16mm średnicy. Przejście na 603 diody LED pozwala nieco zmniejszyć, ale nie jestem pewien, o co chodzi.
Krok 6: Oprogramowanie
Oprogramowanie robi się nieco bałaganiarskie z kilku powodów:
1) w przypadku pokazanych płytek, diody LED są rozmieszczone w sposób dogodny dla układu płytki, a nie w „poprawnej” kolejności bitów. IMO, jest to sposób na robienie rzeczy, ale oznacza to, że wiersz 1 niekoniecznie oznacza bit 1, a kolumna 3 nie oznacza bitu 3. Wymaga to poziomu mapowania między zwykłym adresowaniem wierszy/kolumn a bity, które wymagają ustawienia. 2) Ponieważ te same bity są używane dla anod i katod, wspólne połączenie (rzędowe) dla niektórych bitów może znajdować się w środku bitów sterowanych (kolumnowych). Oznacza to, że musisz przesuwać bity kolumn w zależności od tego, czy są przed, czy za bitem wiersza dla tego zestawu kolumn. 3) Musisz wyprowadzić słowa wyjściowe zarówno dla rejestru ioport, jak i rejestru kierunku portu. Załączony kod ASM dla ATtiny11 to „weryfikacja koncepcji”. Jest żenująco niezoptymalizowany i słabo skomentowany, ale to wszystko, co do tej pory napisałem.
Zalecana:
Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino: 7 kroków (ze zdjęciami)
Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino: edycja ze stycznia 2020 r.: Zostawiam to na wypadek, gdyby ktoś chciał go użyć do generowania pomysłów, ale nie ma już sensu budować kostki na podstawie tych instrukcji. Układy scalone sterownika LED nie są już produkowane, a oba szkice zostały napisane w starej wersji
556 Time zapewnia wejście zegara do 2 liczników dekadowych, które będą sterować 20 diodami LED: 6 kroków
Czas 556 zapewnia wejście zegara do 2 liczników dekad, które będą sterować 20 diodami LED: Ta instrukcja pokaże, w jaki sposób zegar 556 zapewnia wejścia zegara do 2 liczników dekad. Liczniki dekad będą sterować 20 diodami LED. Diody LED będą migać w sekwencji 10
Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi: 4 kroki (ze zdjęciami)
Kontrolowanie wielu diod LED za pomocą Pythona i pinów GPIO Raspberry Pi: Ta instrukcja pokazuje, jak kontrolować wiele pinów GPIO na RaspberryPi, aby zasilać 4 diody LED. Wprowadzi Cię również do parametrów i instrukcji warunkowych w Pythonie. Nasze poprzednie instrukcje używania pinów GPIO Twojego Raspberry Pi do Con
Jak sterować urządzeniami domowymi za pomocą pilota telewizora z funkcją timera: 7 kroków (ze zdjęciami)
Jak sterować urządzeniami domowymi za pomocą pilota do telewizora z funkcją timera: Nawet po 25 latach wprowadzenia na rynek konsumencki komunikacja w podczerwieni jest nadal bardzo aktualna w ostatnich dniach. Niezależnie od tego, czy jest to 55-calowy telewizor 4K, czy radio samochodowe, wszystko wymaga pilota na podczerwień, aby odpowiedzieć na nasze
Gniazdo ISP od 6 pinów do 8 pinów: 4 kroki
Gniazdo ISP od 6 do 8 pinów: Głównym powodem, dla którego zbudowałem ten projekt, było zaprogramowanie ATTiny45, który ma 8-pinowe połączenie, podczas gdy mój USBtinyISP (od Ladyada) ma tylko 10-pinowe i 6-pinowe połączenie. Po szperaniu w Internecie przez około 3-4 tygodnie nie znalazłem nic, co