Com Connectar Un Joystick A Arduino

Taula de continguts:

Com Connectar Un Joystick A Arduino
Com Connectar Un Joystick A Arduino

Vídeo: Com Connectar Un Joystick A Arduino

Vídeo: Com Connectar Un Joystick A Arduino
Vídeo: Как подключить и использовать аналоговый джойстик с Arduino - Учебное пособие 2024, De novembre
Anonim

Hi ha una gran varietat de maneres de transferir informació d'una persona a un microcontrolador o ordinador, i una d'elles fa servir un joystick. Vegem com connectar un joystick analògic amb dos eixos i un botó a l’Arduino.

Joystick amb dos eixos i un botó
Joystick amb dos eixos i un botó

És necessari

  • - Arduino;
  • - joystick de dos eixos;
  • - 3 resistències amb un valor nominal de 220 Ohm;
  • - 1 RGB o 3 LED convencionals.

Instruccions

Pas 1

El joystick és un dispositiu còmode i fàcil d’utilitzar per transmetre informació. Hi ha un gran nombre de tipus de joysticks pel que fa al nombre de graus de llibertat, al principi de lectura de les indicacions i a les tecnologies utilitzades. Els joysticks s’utilitzen més sovint per controlar el moviment de qualsevol mecanisme, models controlats, robots. El joystick analògic, que veurem avui, és un mànec fixat a una articulació de bola amb dos eixos mútuament perpendiculars. Quan el comandament està inclinat, l'eix gira el contacte mòbil del potenciòmetre, a causa del qual canvia la tensió a la seva sortida. A més, el joystick analògic té un botó tàctil, que s’activa quan premeu la maneta verticalment.

Diagrama esquemàtic del joystick
Diagrama esquemàtic del joystick

Pas 2

Connecteu el joystick segons el diagrama següent. Connecteu les sortides analògiques X i Y del joystick a les entrades analògiques A1 i A2 de l’Arduino, la sortida del botó SW a l’entrada digital 8. El joystick funciona amb una tensió de +5 V.

Diagrama de cablejat del joystick per Arduino
Diagrama de cablejat del joystick per Arduino

Pas 3

Per tal de veure clarament com funciona el joystick, escrivim aquest esbós. Declarem els pins, configurem els modes de funcionament per a ells. Tingueu en compte que en el procediment setup (), establim l’entrada switchPin a un nivell alt. Això permet que la resistència de tracció incorporada en aquest port. Si no l’engegueu, quan no es prem el botó del joystick, el vuitè port Arduino quedarà penjat a l’aire i capturarà pastilles. Això conduirà a falsos positius caòtics no desitjats.

En el procediment loop (), enquestem constantment l’estat del botó i el visualitzem mitjançant el LED de la sortida 13. A causa de l’entrada switchPin que s’estira cap amunt, el LED està constantment encès i quan es prem el botó, s’apaga, i no viceversa.

A continuació, llegim les lectures dels dos potenciòmetres del joystick: la sortida dels eixos X i Y. L'Arduino té un ADC de 10 bits, de manera que els valors que es llegeixen del joystick es situen entre 0 i 1023. A la posició mitjana del joystick, com podeu veure a la il·lustració, els valors de la regió 500 són aproximadament a la meitat del rang.

Un esbós per demostrar el funcionament del joystick
Un esbós per demostrar el funcionament del joystick

Pas 4

Normalment s’utilitza un joystick per controlar els motors elèctrics. Però, per què no l’utilitzeu per controlar la brillantor d’un LED, per exemple? Connectem un LED RGB (o tres LED normals) als ports digitals 9, 10 i 11 de l'Arduino segons el diagrama anterior, sense oblidar, per descomptat, les resistències.

Diagrama de cablejat del joystick i del LED RGB a Arduino
Diagrama de cablejat del joystick i del LED RGB a Arduino

Pas 5

Canviarem la brillantor dels colors corresponents en canviar la posició del joystick al llarg dels eixos, tal com es mostra a la figura. A causa del fet que el joystick pot no estar centrat amb precisió pel fabricant i que no tingui la meitat de l'escala al voltant de 512, sinó de 490 a 525, el LED pot il·luminar-se lleugerament fins i tot quan el joystick estigui en posició neutra. Si voleu que estigui totalment apagat, feu les esmenes adequades al programa.

Esquema de la distribució de la brillantor dels canals R, G, B al llarg dels eixos X i Y
Esquema de la distribució de la brillantor dels canals R, G, B al llarg dels eixos X i Y

Pas 6

Basant-nos en el diagrama anterior, escriurem un esbós del control Arduino de la brillantor del LED RGB mitjançant un joystick.

En primer lloc, declararem la correspondència de pins i dues variables (ledOn i prevSw) per treballar amb el botó. Al procediment setup (), assigneu les funcions als pins i connecteu la resistència pull-up al pin del botó amb l'ordre digitalWrite (swPin, HIGH).

Al bucle () definim la pressió del botó del joystick. En prémer el botó, canviem els modes de funcionament entre el mode "llanterna" i el mode "música de color".

En el mode freeMode (), la brillantor dels LED es controla inclinant el joystick en diferents direccions: com més forta sigui la inclinació al llarg de l’eix, més brillant serà el color corresponent. A més, la transformació de valors l’assumeix la funció de mapa (valor, des de baix, des de superior, fins a baix, fins a superior). La funció map () transfereix els valors mesurats (de Baixa a Alta) al llarg dels eixos del joystick al rang de brillantor desitjat (de Baixa a Alta). Podeu fer el mateix amb operacions aritmètiques ordinàries, però aquesta notació és molt més curta.

Al mode discoMode (), tres colors guanyen brillantor alternativament i s'apaguen. Per poder sortir del bucle quan es prem el botó, comprovem cada iteració per veure si s’ha premut el botó.

Esbós per controlar la brillantor del LED mitjançant un joystick analògic
Esbós per controlar la brillantor del LED mitjançant un joystick analògic

Pas 7

El resultat és una llanterna fabricada amb un LED RGB de tres colors, la brillantor de cada color es defineix mitjançant un joystick. I quan premeu el botó, s'activa el mode "música de color". Tot i que l’utilitzo, al contrari, com a llum nocturna.

Així, vam aprendre a connectar un joystick analògic de dos eixos amb un botó a l’Arduino i llegir-ne les lectures. Podeu pensar i implementar un ús més interessant del joystick que el nostre exemple.

Recomanat: