Transmisión de datos por infrarrojos en el automóvil. (Puesta en marcha del motor de combustión con mando a distancia)
Introducción.
El concepto de funcionamiento de los mandos a distancia por radiofrecuencia y de los que funcionan por infrarrojos es muy similar. La mayoría de aparatos domésticos utilizan mandos a distancia de infrarrojos, como los televisores o equipos musicales. El mando a distancia contiene un circuito interno, un procesador y uno o dos LED (Light Emitting Diode) que emiten la luz infrarroja.
La señal infrarroja transmite el código correspondiente al botón del mando a distancia pulsado y lo transmite al dispositivo en forma de una serie de impulsos de luz infrarroja. Pensemos en el código Morse y sus tonos cortos y largos. De forma análoga, los pulsos de luz infrarroja transmitidos son de dos tipos, los llamados 0 y 1. Los 0 podrían verse como los tonos cortos y los 1 como los tonos largos. En el interior del aparto, un receptor recibe la serie de impulsos de infrarrojos y los pasa a un procesador que descodifica la serie de 0 y 1 en los bits digitales que activarán una determinada función del dispositivo.
Además de los datos para activar una determinada función en el dispositivo, los mandos a distancia pueden transmitir otra información asociada, por ejemplo, un código que le diga al receptor situado en el dispositivo de que se trata del mando a distancia apropiado y no de una señal infrarroja dirigida a otro dispositivo, ó un código de sincronización (utilizado en cierre centralizado)
Sin duda, la aplicación que traemos no se utiliza en el automóvil, ya que en ningún vehículo se autoriza el arranque con mando a distancia de infrarrojos (si con mando de radiofrecuencia), pero no negaremos que queda un tanto espectacular.
El objeto de esta entrada, es explicar a los alumnos en que consiste este tipo de transmisión de datos, y cuales son los elementos que la componen.
En el automóvil, este tipo de transmisión de datos se utiliza actualmente para dos funciones:
- Cierre de confort, es decir cuando mandas cerrar las puertas con el mando, este transmite datos de forma infrarroja, que al ser captados por el receptor y procesados por el calculador, manda cerrar «cierres centralizados», subir los cristales de las ventanillas y cerrar el techo corredizo.
- Apertura de verano. Mediante esta función, pulsada la tecla correspondiente del mando a distancia, tras recibir el receptor los datos, el calculador («Arduino») ordena el desbloqueo de puertas, bajada de las ventanillas y puesta en gran velocidad la turbina de aireación del habitáculo.
Estas dos funciones se realizan con mando de infrarrojos, ya que de esta manera se asegura que el conductor «ve el coche», si se realizase con radiofrecuencia, (recordemos que este tipo de transmisión «puede atravesar paredes») se podría pulsar accidentalmente el mando y realizar una apertura de verano sin estar presente el conductor.
Material utilizado.
Puesto que esta de moda el reciclaje y la reutilización, hemos echado mano del desguace, consiguiendo todo el material de segunda mano. (reutilizado)
Es verdad que ha quedado un tanto «cutre», pero lo cierto es que funciona.
Los elementos utilizados para realizar la practica han sido:
– Arduino Uno.
– Arduino Reles. Solo utilizaremos dos de los cuatro reles de que dispone.
– Mando a distencia infrarrojos. (Calefactor de cuarto de baño)
– Sensor infrarrojos. (TV antigua, marca Sony)
– Vehículo marca Ford, modelo Fiesta del año 1995.
– Reles auxiliares.
[slideshow_deploy id=’4339′]
Lectura de los códigos de nuestro mando.
Un emisor de infrarrojos (IR) está compuesto básicamente por un «LED» que emite pulsos de luz infrarroja siguiendo un patrón determinado que permite al dispositivo receptor conocer la función a realizar.
Para poder controlar nuestro Arduino mediante un mando a distancia y un sensor IR, deberemos conocer el protocolo interno de comunicación de nuestro mando.
¿Cómo podemos distinguir en cada caso qué tecla de nuestro mando estamos pulsando?
El mando emite una señal al dispositivo que controla, en este caso es un receptor de infrarrojos. Lo hace codificando una orden mediante un led infrarrojo que emite un az de luz que debe ser leído por el dispositivo. Tendremos, por tanto, para cada botón del mando, una codificación distinta, de forma que podemos distinguir cada caso.
Para la lectura de nuestros códigos, cargaremos el siguiente programa y abriremos el monitor serie. Con forme pulsemos las teclas del mando, irán apareciendo los códigos en pantalla. (ver vídeo)
#include <Arduino.h>
#include <NECIRrcv.h>
#define IRPIN 8 // pin al que conectamos el receptor de IR
static int aux = 1;
NECIRrcv ir(IRPIN) ;
void setup()
{
Serial.begin(9600) ;
Serial.println("NEC IR codigo recepcion") ;
ir.begin() ;
}
void loop()
{
unsigned long ircode ;
while (ir.available()) {
ircode = ir.read() ;
Serial.println(ircode) ;
}
}
Códigos del emisor
de infrarrojosTecla 1738080000 ON/OFF 1804926720 Tiempo 1871773440 1000W 1938620160 2000W
Conocidos los códigos que emite el mando, utilizaremos dos de ellos:
– El primero es 1938620160, correspondiente a la tecla de 2000W, de tal manera que al pulsar una vez, se cerrará el primer relé, que utilizaremos como «15» (positivo después de contacto). Este relé alimenta entre otras cosas al calculador de inyección la bomba eléctrica de combustible y el encendido (equivale a la primera posición de la llave). Si se pulsa una segunda vez esta tecla del mando a distancia, desactivaremos el relé y por tanto el motor de combustión se para.
– El segundo código que utilizaremos es 1871773440 correspondiente a la tecla de 1000W del mando a distancia. Lo utilizaremos para activar el segundo relé, el cual dará «50» (positivo del motor de arranque) esto equivale al giro de la llave a la última posición. Debemos tener presente que una vez arrancado el motor de combustión, hay que desactivar este relé (con una nueva pulsación en la tecla 1000W) para detener el motor de arranque y desacoplar el piñón de arrastre del volante de inercia del motor de combustión. Pudiéramos haber programado fácilmente Arduino para que esta función se realizase de forma automática (desactivación de 50) a los 2 ó 3 segundos después de haber sido activada.
Debemos tener presente que estamos trabajando con corrientes superiores a los 15 Amperios, motivo por el cual se han utilizado dos relés auxiliares para controlarlas, ya que la placa de reles de Arduino no soporta dichas corrientes.
El código que controla el arranque de nuestro vehículo es:
#include <Arduino.h>
#include <NECIRrcv.h>
#define IRPIN 8 // pin al que conectamos el sensor de IR
int terminal15 = 7;
int terminarl50 = 6;
static int aux15 = 1;
static int aux50 = 1;
NECIRrcv ir(IRPIN) ;
void setup()
{
//definimos los termianles 6 y 7 como terminales de salida
pinMode(terminal15, OUTPUT);
pinMode(terminarl50, OUTPUT);
ir.begin() ;
}
void loop()
{
unsigned long ircode ;
while (ir.available()) {
ircode = ir.read() ;
if(ircode == 1938620160){
/*en nuestro caso, corresponde con la tecla de 2000W */
if(aux == 0){
digitalWrite(terminal15, LOW);
aux = 1;
}
else{
digitalWrite(terminal15, HIGH);
aux = 0;
}
}
if(ircode == 1871773440){
/*en nuestro caso, corresponde con la tecla de 1000W */
if(aux50 == 0){
digitalWrite(terminarl50, LOW);
aux50 = 1;
}
else{
digitalWrite(terminarl50, HIGH);
aux50 = 0;
}
}
}
}
El circuito a montar es el siguiente:
Se propone al alumnado el siguiente ejercicio con objeto de mejorar la gestión del arranque del motor de combustión:
Ejercicio.
– Tanto el arranque como la parada del motor de combustión ha de realizarse con una sola tecla; por tanto, pulsada la tecla, debe de quedar a nivel alto el relé de 15 (positivo después de contacto) se estima que tres segundos es tiempo mas que suficiente para alcanzar la presión de combustible en la rampa y cebar la bobina de encendido. A los tres segundos, se activara durante tres segundos más el relé de 50 (positivo del motor de arranque) y transcurridos esos seis segundos, se desactivara 50 para detener el motor de arranque. Pulsada de nuevo la tecla, el motor de combustión ha de detenerse.
Hola quisiera que me informaras estoy un poco perdido soy un medio enganchado a la electrónica y estoy vamos quiero empezar con algo más fuerte y es hacer un proyecto para arrancar el coche desde un mando a distancia o desde el móvil no tengo preferencias sobre como es por enredar valla he echo algunas cosas ya como poner un ordenador en el coche para controlar las luces dual boot Android y windows, luces led y cambios en los motores de los elevalunas y algunos pasos más con los hho para el ahorro de combustible. Podrías pasarme algunos esquemas de como poder hacerlo con arduino he visto ejemplos pero en tus vídeos puf se entiende perfectamente y quisiera poder hablar contigo y intercambiar esquemas y tal te lo agradecería mucho un saludo y espero tu respuesta gracias y una cosa he visto algo de algunos cursos y tal como podría hacerlos que valen y bueno información para hacerlos gracias….
Hola, me solicitas esquemas eléctricos, pero no tengo claro de que, de un vehículo en concreto, de una parte de el o de un montaje…?
Un saludo.