• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Refleksomierz
#1
Witam,chodzi oto że,( posłużę się linkiem z youtube)      https://www.youtube.com/watch?v=PSdKWQx6iwg       I chciałbym zbudować coś na kształt tego aby tak działo jak na załączonym filmie i chciałbym to zrobić w taki sposób że, złączyć 9 przycisków równolegle które umiejscowię na różnych wysokościach a za przyciskami podłącze diody.Które będą " losowane" i po naciśnięciu tam gdzie zapali się dioda od razu losuje następną i wyłącza poprzednią i tak w kółko.Czy możliwe jest wykonanie takiego cuda? Z góry dziękuje za jakąkolwiek pomoc.Pozdrawiam
 
Odpowiedź
#2
Witam,
Możliwe jest "zbudowanie" takiego urządzenia tylko z małą poprawką. Jeżeli połączysz równolegle przyciski to naciśnięcie dowolnego z nich będzie powodować zgaszenie wylosowanej diody. Czyli otrzymasz refleksomierz dla leniwych.
Pozdrawiam.
 
Odpowiedź
#3
Witam.
Oczywiście, że jest możliwe stworzenie takiego urządzenia, jaką płytkę chcesz wykorzystać do tego projektu? Czy zamierzasz wykorzystać wyłącznie 9 przycisków czy więcej/mniej? Przewidujesz rozwiązanie z naliczaniem błędnych "trafień"?
Pozdrawiam
 
Odpowiedź
#4
(13-02-2017, 18:13)piotr2393 napisał(a): Witam.
Oczywiście, że jest możliwe stworzenie takiego urządzenia, jaką płytkę chcesz wykorzystać do tego projektu? Czy zamierzasz wykorzystać wyłącznie 9 przycisków czy więcej/mniej? Przewidujesz rozwiązanie z naliczaniem błędnych "trafień"?
Pozdrawiam

Witam, mam zamiar wykorzystać najprostsze arduino UNO i ATMege328. Co do przycisków skoro moje założenia były błędne, żeby połączyć 9 przycisków równolegle i działać tylko 1 sygnałem wejściowym. W sumie wystarczające było by 6 przycisków.
 
Odpowiedź
#5
(13-02-2017, 17:17)Smaczek napisał(a): Witam,
Możliwe jest "zbudowanie" takiego urządzenia tylko z małą poprawką. Jeżeli połączysz równolegle przyciski to naciśnięcie dowolnego z nich będzie powodować zgaszenie wylosowanej diody. Czyli otrzymasz refleksomierz dla leniwych.
Pozdrawiam.

Więc co proponujesz, właśnie podłączyłem i wgrałem to co wysłałeś pod innym postem z sygnałem losowym. Jest tylko jeden mankament że czasami są jakieś błędy i trzeba ponownie nacisnąć przycisk, a to mija się z celem.Może masz pomysł jak usprawnić to aby działało lepiej. Pozdrawiam cieplutko i dziękuję za pomoc.
 
Odpowiedź
#6
Ja robiłem taki projekt wykorzystujący 4 przyciski, nie liczył on czasu gry, a czas reakcji na bodziec wzrokowy. Przed rozpoczęciem gry ustalana była długość gry, a w trakcie na wyświetlacz wyrzucany był otatni czas reakcji. Po zakończeniu sekwencji gry wyświetlane były w pętli wyniki: najkrótszy czas reakcji, najdłuższy czas reakcji, średni z całej gry oraz liczba błędnych trafień. Wykorzystałem do tego Arduino Leonardo i każdy przycisk odpowiadał innemu pinowi cyfrowemu.
 
Odpowiedź
#7
Witam,
A brałeś pod uwagę to, że może zostać wylosowana ta sama dioda i wtedy wydaje się, że przycisk nie działa? Przecież do kodu można dołożyć chwilowe zgaszenie diody w momencie wciśnięcia przycisku. To odnośnie sygnału losowego.
Proponuje Tobie zrobić przyciski na jednym pinie analogowym. Dziewięć rezystorów połączonych w szereg pomiędzy 5 V i masę. Od łączenia poszczególnych rezystorów podciągasz włącznik do wspomnianego wejścia analogowego i na nim odczytujesz napięcie (dla każdego przycisku będzie inne). Sprawdzasz czy wciśnięty przycisk (napięcie) odpowiada numerowi zapalonej diody i już.
Pozdrawiam.
 
Odpowiedź
#8
Smaczek przedstawił bardzo sprytne rozwiązanie wykorzystujące zaledwie jeden pin analogowy dla obsługi wszystkich przycisków.
Jeśli chodzi o kwestie "mankamentu" również można ją rozwiązać. Zapalenie kolejnej diody powinno nastąpić dopiero po puszczeniu przycisku poprzedniej diody. Rozważ przypadek pesymistyczny że losuje Ci się ciągle jedna dioda, trzymając wciśnięty odpowiedni przycisk, wynik inkrementuje się z szybkością obrotu jednej pętli programu, co jest absurdem. Ja w swoim projekcie zastosowałem właśnie takie podejście, które zapala kolejną diodę jeśli żaden z przycisków nie jest aktualnie wciśnięty, jednak idea działania mojego projektu była nieco inna niż zakładana idea Twojego.
 
Odpowiedź
#9
piotr2393, problemy przedstawione przez Ciebie dadzą się łatwo wyeliminować. Problem losowania tej samej diody można wyeliminować w warunku (podając listę wszystkich oprócz aktualnej), natomiast zapalenie kolejnej diody po puszczeniu aktualnej można zrobić, umieszczając w pierwszej linii kodu wewnątrz warunku pustą pętlę while z warunkiem identycznym, jak if:
Kod:
if (digitalRead(13, LOW)) {
while(digitalRead(13, LOW)){}
//tutaj instrukcje, co stanie się po wciśnięciu przycisku
}
Wtedy kod wykona się po puszczeniu przycisku.

Problem brakujących pinów cyfrowych można usunąć stosując choćby PCF8574, choć pomysł z dzielnikiem (drabinką rezystorów) też mi się podoba, choć bałbym się chyba o stabilność odczytu i możliwość pomyłki ('nie do końca' wciśnięty przycisk to większa rezystancja, co mogłoby spowodować zliczenie innego przycisku). Wtedy też maszyna mogłaby się przerodzić w coś w rodzaju 'maszyny dla leniwych'.
 
Odpowiedź
#10
Cytat:choć pomysł z dzielnikiem (drabinką rezystorów)

To akurat najgorszy z pomysłów , po jakimś czasie same przyciski zaczną mieć swoją rezystancję i nie opanujesz tego . Znam to z własnego doświadczenia a miałem tylko 4 przyciski . Zrób matrycę jak w klawiaturkach 4x4 i masz 16 przycisków na 8 pinach a diody jak koledzy piszą na PCF .
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości