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 |
- Para
instalar
librerías para el IDE de Arduino accede al menú Programa >
Incluir Librería > Administrar Bibliotecas... (Ctrl+Mayús+I)
- En este
momento
se actualizará la lista de las librerías que están instaladas
- Escribe en
el Cuadro de Búsqueda superior el texto IRremote
- 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
- Tras el
proceso, aparecerá la librería como INSTALADA
- 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.
- 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).
- ¿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
- Se
abrirá una web de la plataforma github
con información de la biblioteca correspondiente (en este caso IRremote)
- Busca el
enlace para descargar el archivo correspondiente a la librería IRremote.
- Descarga
la versión deseada, en nuestro ejemplo sería la IRremote-4.4.0
- Guarda el archivo en un lugar
relevante. Si tienes instalado Arduino IDE, un buen sitio sería en la
ruta Mis documentos \ Arduino \
libraries
- 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
|
PROCEDIMIENTO
2
Instalar librerías a partir de un archivo
ya descargado |
- 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
- Desde
el IDE de Arduino accede al
menú Programa >
Incluir Librería > Añadir biblioteca .ZIP
- Busca
el archivo previamente descargado en tu carpeta en la ruta: Mis documentos \ Arduino \ libraries
- 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".
- 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)
- 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.
- 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.
|
- 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.
-
|
RETOS: |
Ejercicio 19-I Instala en el IDE la librería
IRremote-4.4.0 usando cualquiera de los procedimientos estudiados:
|
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:
- Aquí tienes instrucciones de cómo incluir esta la librería
IRremote-4.4.0 en el IDE:
- 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
(Pulsa
para verlo más grande)
Ejemplo de
programa con IRremote-4.4.0:
-
(El
mando que usamos es el modelo de 17 teclas)
Anota los nuevos
códigos de esta librería:
|
- 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
(Pulsa
para verlo más grande)
Ejemplo
de programa con IRremote-4.4.0:
-
|
|
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:
- 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
(Pulsa
para verlo más grande)
Ejemplo de
programa que usa codificación Hexadecimal con IRremote-1.0.0:
-
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:
-
(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).
|
|
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:
- Estudiar en qué consiste switch...case para luego
- 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:
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:
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:
Al borrar la referencia a IRremote.hpp (que corresponde a la versión 4.4.0) el programa se compila sin errores:
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:
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)
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:
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:
- Al
final de dicha página se encuentran las versiones actuales. A fecha de
hoy sólo hay una, la 1.0.0.
|
|
RETOS: |
Ejercicio 19-L Prueba el funcionamiento de la librería DIYables IRcontroller:
- 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.
- 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.
- 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
- Conecta el TSOP al PIN 7 que es el que se define en el programa como el PIN receptor de los datos del TSOP.
- Abre el monitor Serie y comprueba el funcionamiento del programa.
|
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:
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...
- 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
- Por otra parte, utiliza el código IDE del
ejercicio 17 como modelo de control de un Servomotor:
|