- pokazywanie jednej z pięciu zapamiętanych ikon emocji: radość, zaskoczenie, obojętność, zmieszanie, smutek,
- przyciski monostabilne przypisane do każdej ikony,
- możliwość wylosowania aktualnie wyświetlanej ikony,
- zapamiętywanie aktualnie wskazywanej ikony na wypadek zaniku zasilania,
- wyświetlacz w postaci dużej matrycy LED 8×8,
- pobór prądu około 70 mA,
- zasilanie napięciem stałym 5 V poprzez gniazdo USB typu B lub listwę zaciskową.
Zaprezentowany układ to typowy gadżet - pokazuje na swoim wyświetlaczu "emotkę" złożoną ze świecących punktów. Można w ten sposób przekazać otoczeniu, w jakim stanie psychicznym aktualnie się znajdujemy. Jeżeli ktoś sam nie wie, co mu w głowie siedzi, może sobie swój stan emocjonalny… wylosować! Została do tego zaimplementowana odpowiednia "maszyna losująca".
Wyświetlany rysunek jest duży i czytelny, więc widać go nawet z daleka. Może stanowić dla otoczenia (np. współpracowników) jasną i czytelną informację na temat tego, czego mogą się po danej osobie w danej chwili spodziewać. Proste? Ale niecodzienne!
Budowa i działanie
Schemat ideowy omawianego układu znajduje się na rysunku 1. Głównym podzespołem, zawiadującym jego pracą, jest mikrokontroler typu ATmega8A-PU z 8-bitowym rdzeniem AVR. Ma wystarczającą liczbę konfigurowalnych wyprowadzeń, więc nie zachodzi potrzeba stosowania dodatkowych układów pośredniczących. Dwa jego porty sterują matrycą LED, trzeci odpowiada za odczytywanie stanu styków przycisków monostabilnych. Jego rdzeń jest taktowany wbudowanym generatorem RC o częstotliwości oscylacji 8 MHz - mikrokontroler nie realizuje zadań krytycznych czasowo, zatem taki wzorzec częstotliwości jest wystarczający.
Użyta matryca LMD23088AUE-101A ma 64 punkty świecące w kolorze czerwonym, ułożone w kwadrat 8×8. Anody diod są ułożone w kolumnach, natomiast katody w wierszach. Każdy wiersz jest załączany poprzez nasycenie jednego z tranzystorów NPN T1…T8, natomiast prąd zasilający wszystkie kolumny wypływa bezpośrednio z wyprowadzeń mikrokontrolera i jest ograniczany przez rezystory o wartości 180 Ω. Zapewnia to dostatecznie wysoką jasność świecenia bez ryzyka uszkodzenia układu US1. Jest on odświeżany z częstotliwości 125 Hz: kolejne wiersze są załączane co 1 ms. Wiersze są wybierane międzyliniowo (1. wiersz - 3. wiersz - 5. wiersz - 7. wiersz - 2. wiersz itd.), a nie kolejno liniowo dla zmniejszenia efektu migotania wyświetlacza.
Użytkownik ma do dyspozycji sześć przycisków monostabilnych S1…S6, którymi zadaje ikonkę do wyświetlania bądź losuje jedną z pięciu zapamiętanych. Rezystory podciągające, wbudowane w mikrokontroler, są wspomagane przez rezystory zawarte w drabince rezystorowej RN1, z których każdy ma rezystancję 10 kΩ. Zmniejsza to wrażliwość układu na zakłócenia elektromagnetyczne. Linia zerująca mikrokontrolera również została podciągnięta do dodatniego potencjału zasilającego w tym samym celu.
Na płytce znalazło się gniazdo USB typu B, którym można zasilać układ, jak również listwa zaciskowa. Pochodzące z zewnątrz napięcie stałe o wartości 5 V jest filtrowane przez łącznie sześć kondensatorów o zróżnicowanej pojemności, dla lepszego odsprzęgania zasilania dla mikrokontrolera.
Montaż i uruchomienie
Układ został zmontowany na dwustronnej płytce drukowanej o wymiarach 120×80 mm. Jej wzór ścieżek oraz schemat montażowy zostały pokazane na rysunku 2. W odległości 3 mm od krawędzi płytki znalazły się cztery otwory montażowe, każdy o średnicy 3,2 mm.
Montaż proponuję rozpocząć od elementów o najmniejszej wysokości obudowy, czyli rezystorów. Pod układ US1 proponuję zastosować podstawkę, aby ułatwić jego programowanie oraz wymianę w razie uszkodzenia. W układzie prototypowym wyświetlacz LED1 oraz przyciski S1…S6 znalazły się na wierzchniej stronie płytki (TOP), zaś cała reszta elementów na stronie spodniej (BOTTOM). Zmontowany układ można zobaczyć na fotografii tytułowej oraz fotografii 1. Nic nie stoi na przeszkodzie, by przyciski wlutować od drugiej strony laminatu.
Na etapie uruchamiania konieczne jest zaprogramowanie pamięci Flash mikrokontrolera dostarczonym wsadem oraz zmiana jego bitów zabezpieczających. Oto ich nowe wartości:
Low Fuse = 0x24
High Fuse = 0xD9
Szczegóły są widoczne na rysunku 3, który pokazuje widok okna konfiguracji tych bitów z programu BitBurner. W ten sposób zostanie uruchomiony wewnętrzny generator RC o częstotliwości oscylacji 8 MHz oraz Brown-Out Detector, który wprowadzi mikrokontroler w stan zerowania, jeżeli jego napięcie zasilające spadnie poniżej 4 V. To znacznie zmniejsza ryzyko zawieszenia się mikrokontrolera podczas uruchamiania.
Poprawnie zaprogramowany układ jest gotowy do działania po podłączeniu zasilania do zacisków złącza J1 lub J2. Powinno to być napięcie stałe, dobrze filtrowane, najlepiej stabilizowane. Może pochodzić, na przykład, z ładowarki impulsowej USB. Nominalna wartość tego napięcia powinna wynosić 5 V, lecz dopuszczalne są pewne odstępstwa. Maksymalna wartość to 5,5 V i wynika z ograniczeń nałożonych przez notę katalogową producenta mikrokontrolera, zaś dolną granicę można oszacować na 4,5 V - tak, by zabezpieczenie BOD było dalekie od zadziałania.
Po włączeniu zasilania pokaże się ostatnio zapamiętana "buźka" - jeżeli mikrokontroler nie był wcześniej włączany, będzie ona wesoła. Każdemu z przycisków S1…S5 odpowiada dokładnie jedna ikona emocji:
- wesoła jest na fotografii 2, załączana wciśnięciem przycisku S1,
- zaskoczona widnieje na fotografii 3, można ją załączyć, wciskając S2,
- obojętna (fotografia 4) pokaże się po zwarciu styków S3,
- zmieszana, jaką można zobaczyć na fotografii 5, ukaże się po wciśnięciu S4,
- smutna - fotografia 6 - wyświetlona po naciśnięciu S5.
Ostatni przycisk, S6, służy do wylosowania jednej z tych pięciu ikonek. W czasie jego trzymania ekran jest wygaszony, a układ przeskakuje po wszystkich "emotkach" po kolei, z bardzo wysoką częstotliwością. Ponieważ czas trzymania styków palcem w stanie zwarcia jest losowy, to i pokazaną buźkę można uznać za wylosowaną. Każda z emotikonek jest zapamiętywana w nieulotnej pamięci EEPROM zaraz po jej wyświetleniu, po czym zostaje przywrócona po załączeniu zasilania.
Michał Kurzela, EP
- R1…R8: 1 kΩ
- R9…R16: 180 Ω
- RN1: 8 × 10 kΩ SIL9
- C1, C2: 100 nF raster 5 mm MKT
- C3, C4: 22 μF 25 V raster 2,5 mm
- C5, C6: 470 μF 16 V raster 3,5 mm
- LED1: LMD23088AUE-101A (opis w tekście)
- T1…T8: BC337 TO92
- US1: ATmega8A-PU DIP28
- J1: UBBS-4R-D14-4D
- J2: ARK2/500
- S1…S6: microswich 6×6 13,5 mm
- Jedna podstawka DIP28 wąska