Hay una amplia variedad de formas de transferir información de una persona a un microcontrolador o computadora, y una de ellas es usar un joystick. Veamos cómo conectar un joystick analógico con dos ejes y un botón al Arduino.
Es necesario
- - Arduino;
- - joystick de dos ejes;
- - 3 resistencias con un valor nominal de 220 Ohm;
- - 1 RGB o 3 LED convencionales.
Instrucciones
Paso 1
El joystick es un dispositivo conveniente y fácil de usar para transmitir información. Hay una gran cantidad de tipos de joysticks en cuanto al número de grados de libertad, el principio de lectura de las indicaciones y las tecnologías utilizadas. Los joysticks se utilizan con mayor frecuencia para controlar el movimiento de cualquier mecanismo, modelos controlados, robots. El joystick analógico, que veremos hoy, es un mango unido a una rótula con dos ejes mutuamente perpendiculares. Cuando se inclina la perilla, el eje gira el contacto móvil del potenciómetro, por lo que cambia el voltaje en su salida. Además, el joystick analógico tiene un botón táctil, que se activa cuando presiona el mango verticalmente.
Paso 2
Conecte el joystick de acuerdo con el diagrama a continuación. Conecte las salidas analógicas X e Y del joystick a las entradas analógicas A1 y A2 del Arduino, la salida del botón SW a la entrada digital 8. El joystick se alimenta con un voltaje de +5 V.
Paso 3
Para ver claramente cómo funciona el joystick, escribamos ese boceto. Declaremos los pines, establezcamos los modos de funcionamiento para ellos. Observe que en el procedimiento setup (), establecemos la entrada switchPin en un nivel alto. Esto habilita la resistencia pull-up incorporada en este puerto. Si no lo enciende, cuando no se presiona el botón del joystick, el octavo puerto de Arduino se colgará en el aire y atrapará las pastillas. Esto dará lugar a falsos positivos caóticos no deseados.
En el procedimiento loop (), sondeamos constantemente el estado del botón y lo mostramos usando el LED en la salida 13. Debido a que la entrada switchPin está subida, el LED está constantemente encendido y cuando se presiona el botón, se apaga. y no al revés.
A continuación, leemos las lecturas de los dos potenciómetros del joystick: la salida de los ejes X e Y. El Arduino tiene un ADC de 10 bits, por lo que los valores leídos desde el joystick se encuentran en el rango de 0 a 1023. En la posición media del joystick, como puede ver en la ilustración, los valores en la región 500 son aproximadamente la mitad del rango.
Paso 4
Por lo general, se usa un joystick para controlar motores eléctricos. Pero, ¿por qué no utilizarlo para controlar el brillo de un LED, por ejemplo? Conectemos un LED RGB (o tres LED ordinarios) a los puertos digitales 9, 10 y 11 del Arduino según el diagrama anterior, sin olvidar, por supuesto, las resistencias.
Paso 5
Cambiaremos el brillo de los colores correspondientes al cambiar la posición del joystick a lo largo de los ejes, como se muestra en la figura. Debido al hecho de que el fabricante puede que el joystick no esté centrado con precisión y que el centro de la escala no esté alrededor de 512, sino de 490 a 525, el LED puede iluminarse ligeramente incluso cuando el joystick está en la posición neutral. Si desea que se apague por completo, realice las modificaciones adecuadas en el programa.
Paso 6
Basado en el diagrama anterior, escribiremos un boceto del control Arduino del brillo del LED RGB usando un joystick.
Primero, declararemos la correspondencia de pines y dos variables - ledOn y prevSw - para trabajar con el botón. En el procedimiento setup (), asigne las funciones a los pines y conecte la resistencia pull-up al pin del botón con el comando digitalWrite (swPin, HIGH).
En el bucle () definimos la pulsación del botón del joystick. Al pulsar el botón, cambiamos los modos de funcionamiento entre el modo "linterna" y el modo "música en color".
En el modo freeMode (), el brillo de los LED se controla inclinando el joystick en diferentes direcciones: cuanto más fuerte es la inclinación a lo largo del eje, más brillante brilla el color correspondiente. Además, la transformación de los valores es asumida por la función de mapa (valor, fromLower, fromUpper, toLower, toUpper). La función map () transfiere los valores medidos (de Bajo a Alto) a lo largo de los ejes del joystick al rango de brillo deseado (a Bajo, a Alto). Puede hacer lo mismo con las operaciones aritméticas ordinarias, pero esta notación es mucho más corta.
En el modo discoMode (), tres colores ganan brillo y se apagan alternativamente. Para poder salir del bucle cuando se presiona el botón, verificamos cada iteración para ver si se ha presionado el botón.
Paso 7
El resultado es una linterna hecha de un LED RGB de tres colores, el brillo de cada color se ajusta mediante un joystick. Y al presionar el botón, se activa el modo "música en color". Aunque lo uso, al contrario, como luz de noche.
Por lo tanto, aprendimos cómo conectar un joystick analógico de dos ejes con un botón al Arduino y leer las lecturas de él. Puede pensar e implementar un uso más interesante del joystick que nuestro ejemplo.