# JOYSTICK

### <span style="color: rgb(22, 145, 121);">**Conocimientos previos**</span>

##### **<span style="color: rgb(22, 145, 121);">JOYISTICK</span>**

Yo no sé qué tiene este componente que llama la atención a los chavales  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-2crh6z96.jpeg)

  
  
Así que vamos a aprovecharlo: Tiene 2 potenciómetros según los ejes X e Y y un interruptor central. Las dos primeras salidas son analógicas, el *microruptor (cuando presionas el joystick)* lo trataremos también analógico, pues nos faltarán entradas y salidas digitales cuando lleguemos al final y queramos poner un Bluetooth.  
  
Si quieres saber más de este componente visita [esta página. de Luis LLamas](https://www.luisllamas.es/arduino-joystick/)

<span style="color: rgb(22, 145, 121);">**SALIDAS PWM**</span>  
  
Como Arduino no tiene valores de salida analógicos, utilizaremos los pines PWM (~) para simular tensiones variables de salida.   
  
De esta manera la luz Roja y Azul serán variables pudiendo crear el ambiente que queramos.

<p class="callout success">**¿No sabes lo que es PWM (~)?**  eso es que no te has leído los capítulos anteriores  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-tsoqgcru.png)  
</p>

### <span style="color: rgb(22, 145, 121);">**RETO**</span>

- Si muevo en el eje X el Joystick la luz RGB se enciende AZUL proporcionalmente a la inclinación del mando Joystick.
- Si muevo en el eje Y el Joystick la luz RGB se enciende ROJO proporcionalmente a la inclinación del mando Joystick.
- Si pulso el Switch central
    
    
    - Si la puerta estaba cerrada la abre
    - Si la puerta estaba abierta, la cierra, con los avisos correspondientes.
- Además vamos a complicar el reto Y TIENE QUE INCLUIR 
    - Lo visto en interruptor crepuscular: 
        - Si es luz&lt;500 se hace de noche, tanto en el fondo com el oso panda
        - se enciende la luz verde del led RGB
    - Lo visto en la apertura y cierre de la puerta con el sensor táctil exterior 
        - - si se pulsa el sensor táctil exterior, se abre la puerta, tanto la real, como la del objeto
            - se mantiene abierta durante 5 segundos
            - avisa que va a cerrar la puerta con tres avisos, el led13 parpadeando y el objeto avisando
            - se cierra la puerta, tanto la real como la del objeto
    - Lo visto en alarma agua, pero modificado 
        - si hay agua objeto gotera aparece y suena pitido

##### <span style="color: rgb(22, 145, 121);">**Solución esquema**</span>

Al ser un componente analógico lo conectaremos en las entradas analógicas: \* La salida eje X que gradúa la luz azul en A1 \* La salida eje Y que gradúa la luz roja en A2 \* La salida Switch central en A3 ![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-wlt65hwc.jpeg)

##### <span style="color: rgb(22, 145, 121);">**Solución vídeo**</span>

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--1" src="//www.youtube.com/embed/jPvQin9iFTE" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución esquema**</span>

El programa lo tienes aquí [https://planet.mblock.cc/project/3255492](https://planet.mblock.cc/project/3255492)

Se ha utilizado el truco DE ENVIOS MENSAJES BROADCAS ver [https://libros.catedu.es/books/domotica-con-arduino/page/programacion-mblock](https://libros.catedu.es/books/domotica-con-arduino/page/dos-formas-de-programar-en-mblock)

<p class="callout warning">Elegimos esta opción pues el programa es muy complejo para ejecutarlo EN VIVO es mejor cargar, y que la placa Arduino envíe los mensajes correspondientes. Si se realiza EN VIVO da problemas</p>

Para ir simplificando se ha utilizado la creación de bloques, y cada mensaje que envía la placa Arduino lo recogerá un objeto

<span style="text-decoration: underline;">**DISPOSITIVO ARDUINO**</span>

Ejecuta siempre los 4 bloques

[![DOMOTICA-JOYSTICK1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/cd3domotica-joystick1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/cd3domotica-joystick1.png)

Bloque NOCHE

[![DOMOTICA-JOYSTICK2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/domotica-joystick2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/domotica-joystick2.png)

Bloque AGUA

[![DOMOTICA-JOYSTICK3.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/domotica-joystick3.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/domotica-joystick3.png)

Bloque PULSADOR

[![DOMOTICA-JOYSTICK4.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/domotica-joystick4.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/domotica-joystick4.png)

Bloque ABERPUERTA-Y-DESPUESICERRA

[![DOMOTICA-JOYSTICK5.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/domotica-joystick5.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/domotica-joystick5.png)

Finalmente bloque JOYSTICK -RGB que lee los pines de entrada A2 y A3.

Son valores desde 0 hasta +1024 pero la posición central del Joystick está en 500, luego tenemos que contar desde 500 hasta 1024, luego hay que convertirlos a 0-255

Esos valores ya normalizados transmitirlos a los pines digitales donde está conectado el pin rojo y azul del led RGB por PWM

[![DOMOTICA-JOYSTICK6.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/domotica-joystick6.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/domotica-joystick6.png)

<span style="text-decoration: underline;">**OBJETO OSO PANDA** </span>

recoge la LUZ

[![DOMOTICA-JOYSTICK7.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/domotica-joystick7.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/domotica-joystick7.png)

<span style="text-decoration: underline;">**El OBJETO PUERTA**</span>

Que recoge los mensajes del sensor táctil

[![DOMOTICA-JOYSTICK9.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/domotica-joystick9.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/domotica-joystick9.png)

<span style="text-decoration: underline;">**OBJETO WATER**</span>

recoge el mensaje gotera y aparece si hay

[![DOMOTICA-JOYSTICK10.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/domotica-joystick10.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/domotica-joystick10.png)