Wieloklik

Autorzy: Marek Dądrowski, Marek Sawicki (fizyka profil ogólnooakademici)
Zaawansowanie: działa, jeszcze rozbudowywany (drobne zmiany)
Cel: nauka Arduino, nauka programowania i pracy w grupie (dwie osoby to już grupa!)
Zastosowanie: w kolejnych, większych projektach

WIELOKLIK?

A coż to takiego? Otóż studenci zafascynowani modułem przyciski oraz 3-ma LEDami postawnowili zrealizować wielostopnione sterowanie przyciskiem. Chodzi o to, aby przy użyciu tylko jednego przycisku można było wybrać różne opcje – zdecydowano, że będzie ich siedem. Czyli nie potrzebujemy aż siedmiu różnych przycisków (modułów), ale tylko ten jeden – a mimo to wybieramy jedną z siedmiu opcji. To bardzo ciekawe zagadnienie i niesamowicie użyteczne – chyba we wszystkich gadgetach elektronicznych dąży się do zmniejszenia przycisków nimi sterującymi (to ze względu na wszechobecną miniaturyzycję -weźmy taki smartwatch – ma on z 1000 różnych funkcji, ale przycisk tylko jeden albo dwa!).

Cóż to są za opcje do wyboru w naszym przypadku? Na razie to „tylko” zaświecenie konkretnymi ledami – ale w systemie binarnym, dlatego zamiast 8-LEDów mamy ich tylko 3. Ktoś tu jest fascynatem zer i jedynek 😉

Wieloklik działa na zasadzie liczenia czasu od ostatniego kliknięcia – jeśli kliknięcie wydarzyło się niedawno (zmienna czas_klikania, np. 800 ms) to takie klikniecie zaliczamy do kontynuowania i zwiększamy jakiś licznik, będący numerem wybranej opcji (zmienna licznik). Poniżej schemat blokowy algorytmu (wykonany w programie https://www.draw.io/)

W powyższym schemacie T1 i T2 są kluczowymi zmiennymi: przechowują czas kliknięcia i ostatniego kliknięcia przycisku. Akcja DEBOUNCING to programowe wykluczenie drgania styków na przycisku, polegające na zatrzymaniu programu na chwilę (zmienna czekanie poniżej). Akcja LEDy to zaświecenie trzema ledami w kodzie binarnym zgodnie z LICZNIKIEM. Funkcja czas_ms to funkcja odczytująca aktualny czas, w Arduino to millis(). Poniżej kod relizujący ten schemat.

Kod w wersji 0.7, ciągle w rozbudowie choć działa 😉

Dwukliki, trzykliki itd

Rozbudowa projektu o zliczanie podwójnych kliknięć, oraz potrójnych (a skoro to wyszło, to już droga otwarta do kolejnych wiloklików). Sposób postępowania podobny jak poprzednio, choć trochę się to komplikuje… Ale udało się – filmik poniżej przedstawia działający układ, który wykrywa pojedyncze, podwójne oraz potrójne kliknięcie – wykrywa i przełącza (zapala lub gasi) odpowiednio pierwszego, drugiego lub trzeciego LED-a.

Wieloklik w akcji.