Jak Podłączyć Joystick Do Arduino?

Spisu treści:

Jak Podłączyć Joystick Do Arduino?
Jak Podłączyć Joystick Do Arduino?

Wideo: Jak Podłączyć Joystick Do Arduino?

Wideo: Jak Podłączyć Joystick Do Arduino?
Wideo: 18.Jak podłączyć joystick do arduino oś x,y 2024, Kwiecień
Anonim

Istnieje wiele różnych sposobów przesyłania informacji od osoby do mikrokontrolera lub komputera, a jednym z nich jest użycie joysticka. Zobaczmy, jak podłączyć joystick analogowy z dwiema osiami i przyciskiem do Arduino.

Joystick z dwiema osiami i przyciskiem
Joystick z dwiema osiami i przyciskiem

Czy to jest to konieczne

  • - Arduino;
  • - dwuosiowy joystick;
  • - 3 rezystory o wartości nominalnej 220 Ohm;
  • - 1 RGB lub 3 konwencjonalne diody LED.

Instrukcje

Krok 1

Joystick to wygodne i łatwe w obsłudze urządzenie do przekazywania informacji. Istnieje duża liczba typów joysticków pod względem liczby stopni swobody, zasady odczytywania wskazań oraz stosowanych technologii. Joysticki najczęściej służą do sterowania ruchem dowolnych mechanizmów, sterowanych modeli, robotów. Joystick analogowy, któremu przyjrzymy się dzisiaj, to uchwyt przymocowany do przegubu kulowego za pomocą dwóch wzajemnie prostopadłych osi. Gdy pokrętło jest przechylone, oś obraca ruchomy styk potencjometru, dzięki czemu zmienia się napięcie na jego wyjściu. Również analogowy joystick ma przycisk taktyczny, który jest wyzwalany po pionowym naciśnięciu klamki.

Schemat ideowy joysticka
Schemat ideowy joysticka

Krok 2

Podłącz joystick zgodnie z poniższym schematem. Podłącz wyjścia analogowe X i Y joysticka do wejść analogowych A1 i A2 Arduino, wyjście przycisku SW do wejścia cyfrowego 8. Joystick jest zasilany napięciem +5 V.

Schemat połączeń joysticka dla Arduino
Schemat połączeń joysticka dla Arduino

Krok 3

Aby wyraźnie zobaczyć, jak działa joystick, napiszmy taki szkic. Zadeklarujmy piny, ustawmy dla nich tryby pracy. Zauważ, że w procedurze setup() ustawiamy wejście switchPin na wysoki poziom. Umożliwia to wbudowany rezystor podciągający na tym porcie. Jeśli go nie włączysz, to gdy przycisk joysticka nie zostanie wciśnięty, 8. port Arduino zawiśnie w powietrzu i złapie przetworniki. Doprowadzi to do niechcianych, chaotycznych fałszywych alarmów.

W procedurze pętli () stale odpytujemy stan przycisku i wyświetlamy go za pomocą diody LED na wyjściu 13. Dzięki podciągnięciu wejścia switchPin dioda świeci ciągle, a po naciśnięciu przycisku gaśnie, a nie odwrotnie.

Następnie odczytujemy odczyty z dwóch potencjometrów joysticka - wyjścia osi X i Y. Arduino posiada 10-bitowy ADC, więc wartości odczytane z joysticka mieszczą się w zakresie od 0 do 1023. W środkowej pozycji joysticka, jak widać na ilustracji, wartości w regionie 500 są mniej więcej w połowie zakresu.

Szkic demonstrujący działanie joysticka
Szkic demonstrujący działanie joysticka

Krok 4

Zwykle do sterowania silnikami elektrycznymi używany jest joystick. Ale dlaczego nie wykorzystać go na przykład do sterowania jasnością diody LED? Podłączmy diodę RGB (lub trzy zwykłe diody) do portów cyfrowych 9, 10 i 11 Arduino zgodnie z powyższym schematem, nie zapominając oczywiście o rezystorach.

Schemat okablowania joysticka i RGB LED do Arduino
Schemat okablowania joysticka i RGB LED do Arduino

Krok 5

Zmienimy jasność odpowiednich kolorów podczas zmiany położenia joysticka wzdłuż osi, jak pokazano na rysunku. Ze względu na to, że joystick może nie być dokładnie wycentrowany przez producenta i mieć środek skali nie w okolicach 512, ale od 490 do 525, dioda LED może lekko świecić nawet gdy joystick jest w pozycji neutralnej. Jeśli chcesz, aby było całkowicie wyłączone, wprowadź odpowiednie poprawki w programie.

Schemat rozkładu jasności kanałów R, G, B wzdłuż osi X i Y
Schemat rozkładu jasności kanałów R, G, B wzdłuż osi X i Y

Krok 6

Na podstawie powyższego schematu napiszemy szkic Arduino sterującego jasnością diody RGB za pomocą joysticka.

Najpierw zadeklarujemy zgodność pinów i dwie zmienne - ledOn i prevSw - do pracy z przyciskiem. W procedurze setup() przypisz funkcje do pinów i podłącz rezystor podciągający do pinu przycisku za pomocą polecenia digitalWrite (swPin, HIGH).

W pętli () definiujemy wciśnięcie przycisku joysticka. Po naciśnięciu przycisku przełączamy tryby pracy pomiędzy trybem „latarki” a trybem „muzyki kolorowej”.

W trybie freeMode () jasność diod LED jest kontrolowana przez przechylanie joysticka w różnych kierunkach: im silniejsze nachylenie wzdłuż osi, tym jaśniejszy kolor świeci. Ponadto transformację wartości przejmuje funkcja map (value, fromLower, fromUpper, toLower, toUpper). Funkcja map() przenosi zmierzone wartości (od Low, do High) wzdłuż osi joysticka do żądanego zakresu jasności (od Low, do High). Możesz zrobić to samo ze zwykłymi operacjami arytmetycznymi, ale ta notacja jest znacznie krótsza.

W trybie discoMode() trzy kolory naprzemiennie zyskują jasność i gasną. Aby móc wyjść z pętli po naciśnięciu przycisku, sprawdzamy każdą iterację, aby zobaczyć, czy przycisk został naciśnięty.

Szkic do sterowania jasnością diody LED za pomocą analogowego joysticka
Szkic do sterowania jasnością diody LED za pomocą analogowego joysticka

Krok 7

Rezultatem jest latarka wykonana z trójkolorowej diody RGB, której jasność każdego koloru ustawia się za pomocą joysticka. A po naciśnięciu przycisku aktywowany jest tryb „kolorowej muzyki”. Chociaż używam go wręcz przeciwnie, jako lampki nocnej.

W ten sposób nauczyliśmy się podłączać analogowy dwuosiowy joystick z przyciskiem do Arduino i odczytywać z niego odczyty. Możesz wymyślić i zaimplementować ciekawsze użycie joysticka niż nasz przykład.

Zalecana: