Skocz do zawartości

Jak podłączyć przyciski do Arduino Pro Micro?


BiZi

Pomocna odpowiedź

Dzień dobry.

Zwracam się do Was z pytaniem i prośbą czy znalazł by któryś z Was chwilę dla mnie i pomógłby mi w rozrysowaniu podłączenia przycisków do płytki ARDUINO PRO micro ATmega32U4 AVR Leonardo? Chciałem zrobić niespodziankę swojemu chrześniakowi, myślałem że podołam, jednakże podłączenie oraz napisanie kodu znacznie przerosło moje możliwości. W załączeniu przesyłam schemat jakbym chciał podłączyć przyciski w buttonboxie.

Jeżeli ktoś zlituje się nad lamusem z elektroniki będę wielce zobowiązany.

Pozdrawiam

BiZi

szkic.png

Link do komentarza
Share on other sites

Witaj.

Przede wszystkim na podłączeniu przewodów i napisaniu kodu.

Po obejrzeniu filmu zamieszczonym na YT odniosłem wrażenie, że to proste jak budowa cepa. Jednakże po skompletowaniu przycisków płytki etc zderzyłem się z rzeczywistością i stwierdzam że porwałem się jak szczerbaty na suchary.

Nie jestem elektronikiem i jedynie umiem podstawowe rzeczy typu przylutowanie kabli i wymianę gniazdka.

Link do komentarza
Share on other sites

Takie matrycowe podłączenie przełączników może sprawiać trochę problemów, to fakt 😉 Musisz jednak powiedzieć na czym konkretnie utknąłeś, chętnie pomożemy, ale od czegoś trzeba ruszyć. Napisałeś, że lutować potrafisz, a w umieszczonym przez Ciebie filmie (2:42) jest piękny schemat opisujący połączenia. "Wystarczy" polutować przewody tak jak są tam narysowane. Z czym dokładnie masz problem, aby przenieść to na żywca?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Po prostu nie wiem czy to dobrze robię bo nie wiem jak to zweryfikować na pisaniu kodów to już w ogóle się nie znam.

Może od początku. W załączniku jest sposób w jaki podłączyłem przewody. Założyłem, że maksymalna liczba przycisków to 5 w rzędzie.

1.png

Link do komentarza
Share on other sites

Jak to mówią wytrawni arduinowcy: "źle, źle, źle!". Najlepiej opisz własnymi słowami do czego ma to służyć i co te przyciski mają robić i jak ma na nie reagować arduino. Jak poznamy koncepcję będzie łatwo narysować schemat.

Link do komentarza
Share on other sites

Chciałem zrobić buttonbox chrześniakowi na urodziny do gry Euro Truck Simulator 2.

1) Przełącznik dźwigniowy - w dół zaciąganie i  do góry zwalnianie hamulca parkingowego (w grze przypisywany jest jeden przycisk)
2) Przełącznik stacyjkowy - Zapłon
3) Przełącznik stacyjkowy - Uruchomienie silnika
4) Przełącznik chwilowy - jedno wciśnięcie Przełączanie trybu świateł
5) Przełącznik chwilowy - jedno wciśnięcie Światła awaryjne
6) Przełącznik chwilowy - jedno wciśnięcie Światła ostrzegawcze
7) Przełącznik chwilowy - jedno wciśnięcie Podczepianie naczepy
😎 Przełącznik dźwigniowy - Do góry Blokada dyferencjału w dół zwalnianie blokady (w grze przypisywany jest jeden przycisk)
9) Przełącznik dźwigniowy - Do góry Podnoszenie osi ciągnika w dół opuszczanie (w grze przypisywany jest jeden przycisk)
10) Przełącznik dźwigniowy - Do góry Podnoszenie osi przyczepy w dół opuszczanie (w grze przypisywany jest jeden przycisk)
11) Przełącznik dźwigniowy chwilowy - do góry Wyłączenie wycieraczek(w grze przypisywany jest jeden przycisk)
12) Przełącznik dźwigniowy chwilowy - w dół Włączenie wycieraczek (w grze przypisywany jest jeden przycisk)
13) Enkoder - jedno wciśnięcie Włączenie tempomatu 
14) Enkoder - jedno wciśnięcie Następna stacja radiowa
15) Enkoder - Obrót w lewo zmniejszenie prędkości tempomatu
16) Enkoder - Obrót w prawo zwiększenie prędkości tempomatu
17) Enkoder - Obrót w lewo zmniejszenie głośności radia
18) Enkoder -  Obrót w prawo zwiększenie głośności radia
19) Przełącznik chwilowy -  jedno wciśnięcie do przypisania co tam będzie chciał
20) Przełącznik chwilowy - jedno wciśnięcie j.w.

Opis.png

Link do komentarza
Share on other sites

Gdybym robił coś takiego dla siebie zastosował bym tu jakiś expander albo rejestr z równoległym wejściem i szeregowym wyjściem to można by było dodać jakieś diody led jako kontrolki. Jeśli ta płytka ma obsługiwać tylko te przełączniki i usb to na styk powinno się zmieścić. Trzeba tu zastosować klawiaturę matrycową (w załączniku)  pod wszystkie przełączniki "chwilowe" i enkodery [8 pinów] i osobno te trójpozycyjne (masa w środku) i stacyjkę [10 pinów]. Programista będzie miał używanie 😉

Spróbuj to sobie rozrysować na matrycy, w razie problemów pisz.

 

Matrix-keypad.png

Link do komentarza
Share on other sites

(edytowany)

Mam wrażenie, że nie czytałeś dokładnie i ze zrozumieniem o czym pisałem od początku. Właśnie próbowałem pokazać Wam do czego doszedłem sam byście mi powiedzieli co robię źle przed Twoją odpowiedzią w której napisałeś cytuję "źle, źle, źle!". I tak "baj de łej" nie ma tam trój pozycyjnych przełączników poza stacyjką.

Edytowano przez BiZi
Link do komentarza
Share on other sites

Nie chciałbym dodawać żadnych diod ani nic innego. Chciałbym, aby to co przedstawilem na projekcie (przyciski i ich uklad) w miarę możliwości nie było zmienione. Nie mam ekspandera tylko tą płytkę jak na rysunku, przyciski jak na rysunku, i czasu też nie mam, w sensie żeby zgłębiać wiedzę elektronika ze względu na charakter pracy. Stąd moja ogromna prośba o pomoc. Więc konkretnie, co chcecie Panowie jeszcze wiedzieć i czy jesteście wstanie mi w ogóle pomóc? 

Link do komentarza
Share on other sites

4 godziny temu, BiZi napisał:

Nie mam ekspandera tylko tą płytkę jak na rysunku, przyciski jak na rysunku, i czasu też nie mam

Ale jesteś w stanie zrozumieć, że przy takich ograniczeniach to się może nie udać? Bo szansa na poprawne połączenie tego wszystkiego być może wcale nie zależy od naszej chęci ani umiejętności. Matryce zestyków to zagadki logiczne. Być może wydaje Ci się, że wystarczy połączyć przyciski we w miarę kwadratową  siatkę i tyle, ale to tak nie działa. Wiesz dlaczego jedne klawiatury komputeroiwe nadają się np. do gier a inne kompletnie nie? I nie chodzi mi o jakość użytych podzespołów, ale o sposób ich połączenia. Otóż martyca działa na pewno dobrze, gdy naciskasz tylko jednej przycisk. Gdy chcesz zewrzeć dwa, też jeszcze będzie OK, ale już wciśnięcie trzech na raz może spowodować, że pewne miejsca (węzły) zostaną jakby zasłonięte przez zwarcia i prawidłowa identyfikacja ich stanu będzie niemożliwa. W przypadku przycisków typu "push" jest raczej mała szansa, że kierowca ciężarówki będzie ich wciskał na raz kilka, ale Ty wstawiłeś całe mnóstwo przełączników, które są na stałe zwieranymi stykami. I teraz, jeśli połączysz je na głupa np. tak aby druty były jak najłatwiejsze do polutowania, to będzie totalna porażka. Żaden najmądrzejszy program tego nie zeskanuje. Czasem na filmikach coś wydaje się proste, ale w rzeczywistości takie nie jest - to pułapka w jaką wpada wielu poczatkujących próbującyh kopiować rozwiązania choćby z YT. Pewne rzeczy nie skalują się wprost. Do separacji takich zestyków w matrycach służą diody. Jeżeli możesz ich kupić tyle ile masz styków, sprawa jest rozwiązana ale jeśli nie, czeka Cię zabawa w rozkładanie połączeń na schemacie i zastanawianie się czy w danej konfiguracji wszystkie przycski mogą zostać poprawnie wykryte. I czeka to Ciebie a nie żadnego z nas, bo to Twój projekt a problem nie ma natury elektronicznej tylko raczej zabawy logicznej.

BTW: W przypadku użycia diodek schemat można narysować od ręki w ciągu 3 minut. To jak będzie?

BTW2: Oczywiście to nie musi być matryca. Masz dużo pinów I/O więc może da się to jakoś opędzić np. opornikami i sygnałami analogowymi lub konstrukcją mieszaną. Na pewno enkodery obrotowe powinny mieć swoich 6 własnych pinów, bo szybkośc impulsów na ich wyjściach raczej nie umożliwia ich skanowania w matrycy. A ich przełączniki zwierają do wspólnego wyprowadzenia. Przełączniki dwustabilne, mimo trzech wyprowadzeń możesz traktowac jak pojedynczy zestyk, bo albo będzie zwarty albo rozwarty. Te 3-pozycyjne już muszą korzystać z 3 drutów. 

  • Lubię! 1
Link do komentarza
Share on other sites

12 godzin temu, atMegaTona napisał:

Gdybym robił coś takiego dla siebie zastosował bym tu jakiś expander albo rejestr z równoległym wejściem i szeregowym wyjściem

Prościej, taniej, szybciej, skuteczniej, bardziej niezawodnie użyć mikrokontrolera z większa liczbą GPIO. Ekspandery mają sens, gdy połączenie pomiędzy mikrokontrolerem a przyciskami jest długie.

@marek1707 napisał dużo o podłączeniu przycisków. Dodam, że wykorzystanie ADC jest tym trudniejsze im więcej przycisków do jednego wejścia jest podłączone. Ze względu na tolerancję rezystorów, problemy  z dostępnością niektórych wartości, bezpieczną granicą są 4, max 5 przycisków. Można próbować 6 ale już zbliżamy się do granicy błędu dla drabinki R-2R dla rezystorów 1% (dla 5% 4 przyciski mogą być problemem, ). O rezystorach 0,1% można zapomnieć (50gr sztuka) i taniej dać ekspander 16-portów na SPI czy I2C za kilka złotych czy po prostu mikrokontroler z większą liczbą GPIO.

Jeśli już istnieje konieczność wykorzystania ADC, to lepszym rozwiązaniem jest włączyć przyciski w drabinkę R-2R ale albo trzeba zastosować bufory aby przycisk przyjmował stan GND i Vcc albo rezystor podciągający o wartości najlepiej 100razy mniejszej (błąd 1%) niż rezystory w drabince R-2R. Proste rozwiązanie z jednym rezystorem do Vcc i kilkoma o stosunku wartości 1, 2, 4, 8 itd ma tą wadę, że uzyskane napięcia są nieliniowe, przez co tracimy na rozdzielczości ADC i ciężko kupić rezystor o wartości 40 czy 80.

 

 

Edytowano przez Treker
Usunąłem "zbędne" zgryźliwości na temat kursu.
Link do komentarza
Share on other sites

18 minut temu, ethanak napisał:

Można zrobić sześć pod warunkiem, że jest jakieś mechaniczne zabezpieczenie pozwalające tylko na określone kombinacje (np. trzy przełączniki on-off-on).

Zabezpieczenie nic nie da, bo i tak można otrzymać wartości, które można będzie zaliczyć do jednej z 2 kombinacji przycisków. Zwykła matematyka, 2^6 = 64. 100 / 64 = 1,56. Trzeba użyć rezystorów 1% przyciski w drabince R-2R co komplikuje konstrukcję (o problemach prostego rozwiązania pisałem, nieliniowość). Najmniejsza różnica napięć pomiędzy  wynikami takiego przetwornika to niecałe 8mV przy zasilaniu 5V (co ciekawe, nie musi ono być stabilne). W praktyce, ADC w AVR osiąga 8 bit czyli rozróżni napięcia ok 1mV. Z matematycznego punktu widzenia wszystko ok ale jak trafimy kilka rezystorów z +1% a kilka z -1%? Trzeba też pamiętać, że przetworniki w mikrokontrolerach mają dużą nieliniowość dla skrajnie wysokich i niskich napięć.

Rozwiązanie z ADC i większą liczbą przycisków, miałoby jakiś tam sens, gdyby użyć przetwornika DAC. Taki 8-bit ma rezystory ok 0,1%, ale jak pchać dodatkowe scalaki to nie prościej expander albo jak już pisałem, mikrokontroler z większą liczbą GPIO.

Przyznam, że nie wiem dlaczego, mimo, iż mikrokontroler ma dużo GPIO, w wielu projektach z Arduino  LCD jest włączany przez ekspander I2C? Może mnie ktoś oświecić? Tak samo, po co pchać ekspander za 4..6zł jak można wybrać mikrokontroler droższy a czasem tańszy o 1 czy 2 zł z większą liczbą GPIO? Gdzie sens? Gdzie logika?

Edytowano przez InspektorGadzet
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.