icono mBlock centro



OTRAS LIBRERÍAS PARA ARDUINO


19. RECEPTOR INFRARROJO (AMPLIACIÓN): OTRAS LIBRERÍAS

Programa en IDE de Arduino:

LIBRERÍA IRremote 4.4.0 en ARDUINO


CONFIGURACIONES PREVIAS

Para poder manejar el receptor infrarrojo (iR remote) hay que instalar las "librerías" adecuadas para controlarlo. Estas "librerías" son programas que contienen órdenes diseñadas especialmente para trabajar con dichos aparatos. Las librerías son algo así como los "drivers".

Sigue el proceso siguiente para instalar la librería IRremote que te permitirá controlar el Receptor de infra-Rojos
TSOP LOG 8401

(NOTA: TSOP significa Transmission System Operator Package)

(Pulsa cualquiera de las imágenes para verla en tamaño grande)

PROCEDIMIENTO 1
Instalar librerías desde el buscador del IDE de Arduino
  1. Para instalar librerías para el IDE de Arduino accede al menú Programa > Incluir Librería > Administrar Bibliotecas... (Ctrl+Mayús+I)
1 Administrar Bibliotecas

  1. En este momento se actualizará la lista de las librerías que están instaladas
2 Administrar Bibliotecas

  1. Escribe en el Cuadro de Búsqueda superior el texto IRremote
3 Administrar Bibliotecas

  1. Tras unos segundos se muestra en la pantalla distintas librerías en las que se incluye el término IRremote. Escoge la denominada IRremote by shirriff en su última versión (en el ejemplo la 4.4.0) y pulsa Instalar
4 Administrar Bibliotecas

  1. Tras el proceso, aparecerá la librería como INSTALADA
5 Administrar Bibliotecas

  1. Cierra la ventana de las librerías. En la ventana principal del IDE de Arduino accede de nuevo al menú Programa > Incluir Librería y verás que en la lista que se ofrece aparece la librería recién instalada: IRremote (al estar recién instalada aparecerá al final del todo)
Pulsa sobre el texto IRremote para agregarla al programa.
6 Administrar Bibliotecas

  1. Al pulsar sobre IRremote el volvemos a la pantalla inicial y en el programa vemos que ya se ha incluido la referencia a una librería del sistema. Dicha librería se puede usar en el programa porque, al realizar el proceso anterior, sus archivos están descargados y enlazados al IDE (es decir, no basta con escribir ese texto en el programa).
7 Administrar Bibliotecas

  1. ¿Cómo podríamos guardar los archivos IRremote para otro ordenador que, por ejemplo, no tenga acceso a internet?
En la ventana del Gestor de Librerías busca de nuevo IRremote y pulsa More info para acceder a más información
8 Administrar Bibliotecas

  1. Se abrirá una web de la plataforma github con información de la biblioteca correspondiente (en este caso IRremote)
9 Administrar Bibliotecas

  1. Busca el enlace para descargar el archivo correspondiente a la librería IRremote.
10 Administrar Bibliotecas

  1. Descarga la versión deseada, en nuestro ejemplo sería la IRremote-4.4.0
11 Administrar Bibliotecas

  1. Guarda el archivo en un lugar relevante. Si tienes instalado Arduino IDE, un buen sitio sería en la ruta Mis documentos \ Arduino \ libraries
12 Administrar Bibliotecas
Por cierto, en dicha carpeta (creada al instalar Arduino en el ordenador) podría haber un archivo de texto llamado "readme" que simplemente ofrece una dirección donde se explica cómo instalar librerías. La dirección aludida es http://arduino.cc/en/Guide/Libraries
Readme libraries






PROCEDIMIENTO 2
Instalar librerías a partir de un archivo ya descargado

  1. Vamos a instalar la librería IRremote desde un archivo ya descargado. Utiliza este archivo: IRremote (versión 4.4.0)
Guarda el archivo anterior en una carpeta adecuada. Por ejemplo en Mis documentos \ Arduino \ libraries
12 Administrar Bibliotecas

  1. Desde el IDE de Arduino accede al menú Programa > Incluir Librería > Añadir biblioteca .ZIP
2 Incluir Librerias ZIP

  1. Busca el archivo previamente descargado en tu carpeta en la ruta: Mis documentos \ Arduino \ libraries
3 Incluir Librerias ZIP

  1. Hecho ésto, aparece un mensaje en la zona de notificaciones indicando que se ha añadido la librería. Además se indica que ahora aparece en el menú "Incluir Librería".
4 Incluir Librerias ZIP

  1. Para incluir la librería accedemos al menú  Programa > Incluir Librería  y observamos que aparece en el listado (si está recién instalada estará en la zona del final)
5 Incluir Librerias ZIP

  1. Al pinchar sobre el nombre aparece al principio del programa una línea con un comando que incluye la librería en el programa actual. Se podría pensar que escribir este texto es suficiente, pero para que esté realmente incluida es necesario haber hecho previamente el proceso anterior, mediante el que hemos añadido la librería a los recursos del IDE.
6 Incluir Librerias ZIP

  1. Por curiosidad, puedes acceder a la ruta donde estaba el archivo IRremote original y comprobar que aparece descomprimido en una carpeta con el mismo nombre.
7 Incluir Librerias ZIP




Una vez seguido cualquiera de los procedimientos anteriores, abre un nuevo IDE de Arduino e incluye en el programa la librería IRremote, que ahora se muestra en la lista por orden alfabético. Es decir, ya no necesitas hacer todos los pasos anteriores porque ya está enlazada en la carpeta de Arduino.
8 Incluir Librerias ZIP
10 Incluir Librerias ZIP

RETOS: Ejercicio 19-I  Instala en el IDE la librería IRremote-4.4.0 usando cualquiera de los procedimientos estudiados:
  • PROCEDIMIENTO 1  (usando el Administrador de librerías del IDE de Arduino)


RETOS: Ejercicio 19-J - Realiza el programa equivalente a alguno de los anteriores con el IDE, pero usando otra librería más actualizada: IRremote-4.4.0
Para obtener información consulta la web de github (sobre IRremote)
En particular lee el apartado de convertir un programa de la versión 2 a la 4

Es muy interesante comparar los ejemplos:
IR remote 2 EjemploIR remote 4 Ejemplo

  • Aquí tienes instrucciones de cómo incluir esta la librería IRremote-4.4.0 en el IDE:

  1. Debes empezar forzosamente por el programa que te permite conocer los códigos que emplea la librería:
19.D2-CIRCUITO INICIAL: RECEPTOR INFRARROJO Y MANDO A DISTANCIA
IR remote -Placa+ TSOP + Arduino
(Pulsa para verlo más grande)

Ejemplo de programa con IRremote-4.4.0:
Ejemplo IRremote
Mando TSOP de 17 teclas
(El mando que usamos es el modelo de 17 teclas)

Anota los nuevos códigos de esta librería:
Tabla de ´´odigos Mando de 17 teclas


  1. Hecho lo anterior, aplica la información obtenida al control de algunos de los circuitos estudiados.

Por ejemplo, el control de la luminosidad de un LED con mando a distancia:

19.E2-CONTROL DE LA LUMINOSIDAD DE UN LED
IR remote -Placa+ TSOP + Arduino
(Pulsa para verlo más grande)

Ejemplo de programa con IRremote-4.4.0:
Ejemplo IRremote



RETOS: Ejercicio 19-K (Opcional) - Realiza el programa de control de luminosidad de un LED pero usando codificación Hexadecimal, usando cuaquiera de las librerías vistas: IRremote-1.0.0 o IRremote-4.4.0
El Hexadecimal es un sistema de numeración con 16 caracteres: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f

Para obtener información puedes consultar la wikipedia
Los programas de ejemplo en github contenían codificación hexadecimal:

IR remote 2 EjemploIR remote 4 Ejemplo


Monta el circuito control de luminosidad de un LED con mando a distancia por infrarrojos:
19.E2-CIRCUITO DE CONTROL DE LUMINOSIDAD DE UN LED CON RECEPTOR INFRARROJO Y MANDO A DISTANCIA
IR remote -Placa+ TSOP + Arduino
(Pulsa para verlo más grande)

Ejemplo de programa que usa codificación Hexadecimal con IRremote-1.0.0:
Ejemplo IRremote HEX


El código Hexadecimal se trata como información de tipo "texto" y por eso la variable DATO que guarda este dato debe ser tipo "String".
 String DATO;

Para obtener los datos en formato Hexadecimal se añade un parámetro más llamado HEX en:
(results.value,HEX);

Además, para asegurar que la variable toma un dato tipo texto se convierte el valor codificado con la función que también se llama String de a forma siguiente:
DATO = String(results.value,HEX);


El mismo programa usando codificación
Hexadecimal con IRremote-4.4.0:
Ejemplo IRremote HEX 4.4.0

Mando TSOP de 17 teclas
(El mando que usamos es el modelo de 17 teclas)

La ventaja del Hexadecimal la verás una vez que conozcas más sobre Arduino. En principio verás que los códigos son más cortos y, si te fijas, hay elementos que se repiten. Aquí puedes ver más información en un foro de Arduino que trata precisamente de un programa de IRremote

Anota los nuevos códigos que proporciona la librería escogida pero en formato Hexadecimal:

(Recuerda la versión de IRremote que usas, porque cada una codifica de una manera distinta).
Tabla de ´´odigos Mando de 17 teclas


Programa en IDE de Arduino:

LIBRERÍA IRcontroller 1.0.0 de DIYables


Todos los programas anteriores se pueden simplificar mucho si se usan librerías que incorporan mandos a distancia predefinidos.

Vamos a estudiar una nueva librería que ya incorpora la codificación de nuestro mando a distancia.

Esta librería es la llamada DIYables IRcontroller y se obtiene de la web DIYables dedicada al mundo maker con Arduino.

El funcionamiento de esta librería se basa en el uso del comando switch...case.

Vamos a verlo por partes:
  1. Estudiar en qué consiste switch...case para luego
  1. Ver cómo se aplica en la librería DIYablesIRcontroller:


Uso de switch...case

Puedes usar la misma librería IRremote-4.4.0 pero usando ciertas órdenes que nos proporcionen valores predefinidos.

Se trata de utilizar el comando de Arduino switch...case

Este comando es útil cuando las respuestas a un condicional  if son valores concretos que puedes indicar en un listado

Vamos a aplicarlo con la librería IRremote-4.4.0:

  • La clave está en incluir en void loop(){  tras el condicional: if (si se cumple esto()){
  • El comando switch (variable){ donde la variable sólo puede adquirir valores concretos y definidos.
Se entiende que en nuestro caso la variable carga los datos obtenidos del TSOP siendo los valores que puede adquirir valores conocidos y concretos.
  • Después, con el comando case se alterna distintos valores posibles de la variable
    case 1:      // caso en que la variable tenga el valor 1
    ....               // acciones a realizar
    break;       // fin de esta alternativa y vuelta al flujo del programa

    case 2:      // caso en que la variable tenga el valor 2
    ....               // acciones a realizar
    break;       // fin de esta alternativa y vuelta al flujo del programa

    ...                // resto de valores concretos posibles y al final...

    default:     // Se incluye para decirle al programa qué hacer si no se cumple ninguno de los valores anteriores (es opcional)
    ...                // acciones en su caso
    }                 // fin de las alternativas del comando switch
Lo importante en este programa es conocer los valores que puede tomar la variable.


APLICACIÓN: Uso de IRcontroller de DIYables
La librería IRrcontroller de DIYables utiliza el somando switch...case con valores ya predefinidos, que corresponden con los botones de nuestro mando a distancia.

Está desarrollada por
DIYables en cuya página web se proporciona información para "makers", es decir personas a las que les gusta construirse sus propios dispositivos, conectarlos, programarlos... Esta web está dedicada a Arduino y otras placas controladoras (ESP32, ESP8266, Raspberry PI...) y sus posibilidades. DIY son las siglas de Do It Yourself (en inglés, hazlo tú mismo)

La gran ventaja de esta librería es que incluye órdenes preconfiguradas referidas a mandos a distancia comerciales para "makers", uno de ellos como nuestro modelo:

IR remote -Placa+ TSOP + Arduino

La librería IRcontroller de DIYables la puedes encontrar en el Gestor de Librerías del IDE de Arduino. Sigue el procedimiento conocido para instalar librerías:
1 Administrar Bibliotecas
DIYables IRcontroller

Una vez instalada la librería DIYables_Rcontroller la puedes incluir en el programa que estás diseñando:
Incluir DIYables_IRcontroller

Estará correctamente incluida si aparece al principio una línea que hace referencia a ella con el comando  #include
Includa DIYables_IRcontroller

La librería IRcontroller de DIYables depende de IRremote-4.4.0. Esto significa que tienes que tener instalada IRremote-4.0.0 para que IRcontroller de DIYables pueda funcionar.

En la práctica, para asegurarse de que se cumple ésto basta que en la carpeta donde tienes instaladas las librerías de Arduino (
Mis documentos \ Arduino \ libraries ) esté presente la carpeta de IRremote-4.4.0 junto con la de DIYables recién instalada:
Carpeta libraries conDirectorios  IRremote4.4.0 y IRcontroller


No es necesario que estén también los archivos comprimidos.
De todos modos, si conservas en la misma carpeta los archivos comprimidos el programa funciona igualmente:
libraries con Directorios y ZIPs IRremote4.4.0 y IRcontroller y ZIPs


Otra manera de comprobar si ambas librerías están instaladas en el IDE, es intentar incluir alguna de ellas en el programa mediante el menú Programa > Incluir Librería. En el listado que aparece deben estar ambas:
Incluir librerias añadidas



Sin embargo, aunque están instaladas y disponibles para el IDE, cuando redactes el programa
basta con que aparezca la referencia a la nueva librería DIYables_IRcontroller.h
Incluir DIYables IRcontroller


No incluyas la referencia a la librería IRremote-4.4.0 en el programa, es decir, el texto IRremote.hpp no tiene que aparecer.
Si intentas hacer un programa con ambas referencias te dará un error indicando que hay múltiples definiciones de términos:
ERROR incluir IRcontroller+IRremote4.4.0


Al borrar la referencia a IRremote.hpp (que corresponde a la versión 4.4.0) el programa se compila sin errores
:
Sin errores al compilar IRcontroller sin IRremote4.4.0


Para obtener programas de control e información sobre la librería DIYables-IRcontroller accede a la sección de TUTORIALES sobre IRcontroller en la misma web de DIYables:

TUTORIALES DIYables IRcontroller


Pincha en el TUTORIAL de Arduino -DIYables IR Remote Controller y te llevará a la web de ArduinoGetStarted donde tienes mucha información y ejemplos de cómo usar la librería. Como ves hay dos mandos predefinidos:
  • Uno de 21 botones
  • Otro de 17 botones (que es nuestro modelo)
TUTORIAL DIYables IRcontroller


Accede aquí a la sección de IRcontroller de la web de Arduino Get Started para ver toda la información


Aquí tienes un ejemplo de programa para el mando de 17 botones (el nuestro):


Y aquí un ejemplo de programa para el mando de 21 botones:

En ambos casos, deberás modificar la línea donde se define el PIN que se usará para la recepción del TSOP por el PIN que vayas a usar realmente:
libraries con IRremote4.4.0 y IRcontroller y ZIPs

IMPORTANTE:

Observa que el PIN que aparece por defecto es el PIN 7, que no es un PIN~PWM.

Por tanto: no es necesario que el PIN usado para recibir datos del TSOP sea ~PWM, como ya se indicó en su momento.




Para descargar la librería DIYables-IRcontroller en formato ZIP puedes acceder a la guía de referencia de Arduino:

Arduino Get Started DIYables IRcontroller

  • Al final de dicha página se encuentran las versiones actuales. A fecha de hoy sólo hay una, la 1.0.0.
descargar DIYables IRcontroller 1.0.0






RETOS: Ejercicio 19-L Prueba el funcionamiento de la librería DIYables IRcontroller:
  1. Instala la librería IRremote-4.4.0.zip si no la tenías previamente. Sólo tienes que instalarla desde el ZIP, no hace falta que la incluyas en el programa.
  1. Instala la librería DIYablesIRcontroller-1.0.0.zip. Sólo necesitas instalarla desde el ZIP, no hace falta que la incluyas en el programa porque cuando copies el texto ya vendrá escrito.
  1. Descarga el texto del programa para el mando de 17 teclas, cópialo y pégalo en el IDE de arduino. Como verás ya incluye una línea referida a la librería DIYables-IRcontroller.h que has instalado
libraries con IRremote4.4.0 y IRcontroller y ZIPs

  1. Conecta el TSOP al PIN 7 que es el que se define en el programa como el PIN receptor de los datos del TSOP.
DIYables IRcontroller PIN7

  1. Abre el monitor Serie y comprueba el funcionamiento del programa.
libraries con IRremote4.4.0 y IRcontroller y ZIPs


RETOS: Ejercicio 19M - Realiza el programa de control de posición de un Servomotor mediante un mando a distancia usando la librería DIYables-IRcontroller-1.0.0.zip


Circuito propuesto:
Servomotor + TSOP


CONDICIONES:

  • Las teclas de control serán los botones correspondientes a los números: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9 (10 botones en total)
  • Un servomotor como el nuestro puede adoptar posiciones entre 0º y 180º
  • Por tanto cada uno de los botones hará que el servomotor tome posiciones separadas 20º:
    • botón 0: posición 0º
    • botón 1: posición 20º
    • botón 2: posición 40º
    • botón 3: posición 60º
    ...y así sucesivamente hasta...
    • botón 9: posición 180º
Tabla de Grados del TSOP
  • Usa como modelo el programa para el mando de 17 botones (el nuestro):
Recuerda modificar la línea donde se define el PIN que se usará para la recepción de datos desde el TSOP por el PIN usado en el circuito
libraries con IRremote4.4.0 y IRcontroller y ZIPs

  • Por otra parte, utiliza el código IDE del ejercicio 17 como modelo de control de un Servomotor:
Mover un Servo con un potenciómetro










arriba

icono mBlock centro