Arduino Polska Forum
Licznik wciśnięć kilku przycisków - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Licznik wciśnięć kilku przycisków (/watek-licznik-wci%C5%9Bni%C4%99%C4%87-kilku-przycisk%C3%B3w)



Licznik wciśnięć kilku przycisków - marmar666 - 18-03-2020

Witam wszystkich
Dopiero  zaczynam naukę Arduino.
Chciałbym zrobić licznik wcieśnięć przycisków:
Przycisk nr 1 wartość: 0.1 punktów
Przycisk nr 2 wartość: 0.2punktów
Przycisk nr 3 wartość: 0.5punktów
Przycisk nr 4 wartość: 1punktów
Przycisk nr 5 wartość: 2punktów
Przycisk nr 6 wartość: 5punktów
Chciałbym aby arduino liczyło wciśnięcia przycików do osięgnięcia zamierzonej wartości np 10punktów (lub więcej)
Po osiągnięciu chciałbym aby dioda led się zapaliła na 3 sekundy i po tym czasie suma się wyzerowała.

Znalazłem tutoriale  ale wszystkie działają na zasadzie jednego przycisku.
Czy możecie mi pomóc?


RE: Licznik wciśnięć kilku przycisków - Agregacik - 18-03-2020

Z opisu wynika, że nie chcesz zrobić licznika wciśnięć ale sumator, czyli dodawać wartości do siebie w zależności, który przycisk został naciśnięty.
Zadanie jest bardzo proste. Trzeba tylko na początek poczytać o zmiennych i sterowaniu wykonywaniem kodu.
W tym przypadku nie szukaj gotowców tylko pomyśl jak byś to sam zrobił.
Poczytaj na początek np tu: https://plociennik.info/index.php/arduino-wstep
Wiedza z tej strony wystarczy Ci do wykonania projektu.
Podpowiem, utwórz zmienną Suna i dodawaj do niej liczby w zależności, który przycisk uaktywnisz, gdy suma osiągnie np 10 to zapal diodę, poczekaj na delay(3000); i wyzeruj Sumę. Delay to takie zatrzymanie wykonywania kodu, strasznie złe rozwiązanie, jak się chce, aby procesorek wykonywał wiele zadań, ale na początek w prostych programach jest do przyjęcia.
Problemem może być, aby podczas aktywności przycisku, do sumy dodawała się wartość "pod przyciskiem" tylko raz. Podpowiem tylko tyle, ja użyłbym flagi.
I jeszcze, przyciski mogą generować zjawisko "drganie styku" czyli w czasie jego załączania styczki odbijają się od siebie powodując jakby wielokrotne naciśnięcie przycisku. Zaradza się temu programowo, pewnie w przykładzie, który znalazłeś jest ten fragment kodu.


RE: Licznik wciśnięć kilku przycisków - DVDmulti - 18-03-2020

Tak na kolanie analiza:

if przycisk1 == LOW add 0.1 do zmiennej zliczanie +na koniec opoznienie zeby trzymanie guzika nie naliczało setek razy, 350-850ms

if przycisk2 == LOW add 0.2 do zmiennej zliczanie +na koniec opoznienie zeby trzymanie guzika nie naliczało setek razy, 350-850ms

if zliczanie >= 30 zapal diodę na 3s, wyzeruj licznik.


RE: Licznik wciśnięć kilku przycisków - Robson Kerman - 18-03-2020

A nie lepiej:
dodaj 10
dodaj 20
idt.
if zliczanie >=300 zrób cośtam?

Pozbędziemy się floatów.