Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
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.