Cum Să Conectați Un Joystick La Arduino

Cuprins:

Cum Să Conectați Un Joystick La Arduino
Cum Să Conectați Un Joystick La Arduino

Video: Cum Să Conectați Un Joystick La Arduino

Video: Cum Să Conectați Un Joystick La Arduino
Video: How to connect and use an Analog Joystick with an Arduino - Tutorial 2024, Martie
Anonim

Există o mare varietate de modalități de a transfera informații de la o persoană la un microcontroler sau computer, iar una dintre ele utilizează un joystick. Să vedem cum să conectăm un joystick analogic cu două axe și un buton la Arduino.

Joystick cu două axe și un buton
Joystick cu două axe și un buton

Este necesar

  • - Arduino;
  • - joystick pe două axe;
  • - 3 rezistențe cu o valoare nominală de 220 Ohm;
  • - 1 RGB sau 3 LED-uri convenționale.

Instrucțiuni

Pasul 1

Joystick-ul este un dispozitiv convenabil și ușor de utilizat pentru transmiterea informațiilor. Există un număr mare de tipuri de joystick-uri în ceea ce privește numărul de grade de libertate, principiul citirii indicațiilor și tehnologiilor utilizate. Joystick-urile sunt folosite cel mai adesea pentru a controla mișcarea oricăror mecanisme, modele controlate, roboți. Joystick-ul analogic, la care ne vom uita astăzi, este un mâner atașat la o articulație sferică cu două axe reciproc perpendiculare. Când butonul este înclinat, axa rotește contactul mobil al potențiometrului, datorită căruia se schimbă tensiunea la ieșirea sa. De asemenea, joystick-ul analog are un buton tactil, care este declanșat atunci când apăsați mânerul pe verticală.

Diagrama schematică a joystick-ului
Diagrama schematică a joystick-ului

Pasul 2

Conectați joystick-ul conform schemei de mai jos. Conectați ieșirile analogice X și Y ale joystick-ului la intrările analogice A1 și A2 ale Arduino, ieșirea butonului SW la intrarea digitală 8. Joystick-ul este alimentat de o tensiune de +5 V.

Schema de cablare a joystick-ului pentru Arduino
Schema de cablare a joystick-ului pentru Arduino

Pasul 3

Pentru a vedea clar cum funcționează joystick-ul, să scriem o astfel de schiță. Să declarăm pinii, să setăm modurile de operare pentru ei. Observați că, în procedura de configurare (), setăm intrarea switchPin la un nivel ridicat. Acest lucru permite rezistența de tragere încorporată pe acest port. Dacă nu îl porniți, atunci când butonul joystick-ului nu este apăsat, portul 8 Arduino va atârna în aer și va prinde pickup-uri. Acest lucru va duce la fals pozitive nedorite, haotice.

În procedura loop (), interogăm în mod constant starea butonului și îl afișăm folosind LED-ul de la ieșirea 13. Datorită intrării switchPin, LED-ul este aprins constant și când butonul este apăsat, acesta se stinge, și nu invers.

Apoi, citim citirile celor două potențiometre ale joystick-ului - ieșirea axelor X și Y. Arduino are un ADC de 10 biți, astfel încât valorile citite din joystick se situează în intervalul 0 la 1023. În poziția de mijloc a joystick-ului, după cum puteți vedea în ilustrație, valorile din regiunea 500 sunt aproximativ la mijlocul intervalului.

O schiță pentru a demonstra funcționarea joystick-ului
O schiță pentru a demonstra funcționarea joystick-ului

Pasul 4

De obicei, un joystick este utilizat pentru a controla motoarele electrice. Dar de ce nu îl folosiți pentru a controla luminozitatea unui LED, de exemplu? Să conectăm un LED RGB (sau trei LED-uri obișnuite) la porturile digitale 9, 10 și 11 ale Arduino conform schemei de mai sus, fără a uita, desigur, despre rezistențe.

Diagrama de cablare cu joystick și LED RGB către Arduino
Diagrama de cablare cu joystick și LED RGB către Arduino

Pasul 5

Vom schimba luminozitatea culorilor corespunzătoare la schimbarea poziției joystick-ului de-a lungul axelor, așa cum se arată în figură. Datorită faptului că joystick-ul poate să nu fie centrat cu precizie de producător și să aibă mijlocul scalei nu în jurul valorii de 512, ci de la 490 la 525, LED-ul se poate aprinde ușor chiar și atunci când joystick-ul este în poziție neutră. Dacă doriți ca acesta să fie complet oprit, faceți modificările corespunzătoare programului.

Diagrama distribuției luminozității canalelor R, G, B de-a lungul axelor X și Y
Diagrama distribuției luminozității canalelor R, G, B de-a lungul axelor X și Y

Pasul 6

Pe baza diagramei de mai sus, vom scrie o schiță a Arduino care controlează luminozitatea LED-ului RGB folosind un joystick.

În primul rând, vom declara corespondența pinilor și a două variabile - ledOn și prevSw - pentru lucrul cu butonul. În procedura de configurare (), atribuiți funcțiile pinilor și conectați rezistența de tragere la pinul butonului cu comanda digitalWrite (swPin, HIGH).

În buclă () definim apăsarea butonului joystick. Când apăsați butonul, comutăm modurile de funcționare între modul „lanternă” și modul „muzică color”.

În modul freeMode (), luminozitatea LED-urilor este controlată prin înclinarea joystick-ului în direcții diferite: cu cât este mai puternică înclinarea de-a lungul axei, cu atât mai strălucitoare este culoarea corespunzătoare. Mai mult, transformarea valorilor este preluată de funcția hartă (valoare, de la Mai jos, de la Sus, până la Jos, până la Sus). Funcția map () transferă valorile măsurate (de la Low, la High) de-a lungul axelor joystick-ului în intervalul dorit de luminozitate (la Low, la High). Puteți face același lucru cu operații aritmetice obișnuite, dar această notație este mult mai scurtă.

În modul discoMode (), trei culori câștigă alternativ luminozitate și se sting. Pentru a putea ieși din buclă când butonul este apăsat, verificăm fiecare iterație pentru a vedea dacă butonul a fost apăsat.

Schiță pentru controlul luminozității LED-ului folosind un joystick analogic
Schiță pentru controlul luminozității LED-ului folosind un joystick analogic

Pasul 7

Rezultatul este o lanternă realizată dintr-un LED RGB în trei culori, a cărui luminozitate este setată cu ajutorul unui joystick. Și când apăsați butonul, se activează modul „muzică color”. Deși îl folosesc, dimpotrivă, ca lumină de noapte.

Astfel, am învățat cum să conectăm un joystick analogic pe două axe cu un buton la Arduino și să citim citiri din acesta. Vă puteți gândi și implementa o utilizare mai interesantă a joystick-ului decât exemplul nostru.

Recomandat: