Estación de Control remoto IR para Android - baje la TV (4 / 4 paso)

Paso 4: Preparar el programa de ARDUINO para la estación de IR

Programa el Arduino en esta guía se basa en la plantilla sensoduino.ino que captura datos de los sensores enviados a través de Bluetooth por desde tu dispositivo Android. Las modificaciones implican interceptar los datos de sensor de Audio enviados por Bluetooth serial entonces medir la lectura del sensor de audio para ver si está por encima de un umbral fijó por el potenciómetro. Si es así, envíe un comando de control remoto de IR a la TV o estéreo para bajar el volumen. Usted puede cambiar fácilmente este código de ejemplo para enviar funciones del control remoto diferentes en otros gadgets.

Este programa de Arduino funciona para la mayoría de los controles remoto pero necesita decirle sobre su Protocolo de control remoto de la información que se reunieron en el paso anterior cuando se descifra los botones de control remoto mediante la utilidad IRrecvDump.

Es posible hacer la selección remota dinámica en tiempo de ejecución por lo que no tienes que cambiar y subir código pero para esta guía será mantenerlo simple.

Al principio del programa de Arduino, abajo hay un número de líneas a partir de
NÚMERO de etiqueta de #define.  Cambiar el valor del número para controlar el funcionamiento de la estación de IR. Aquí hay una explicación de las constantes de la etiqueta correspondientes.

BOTÓN remoto código y poco

#define REMOTE_CODE la remota de código como devueltos por la utilidad de decodificador IRrecvDump el prefijo "0 x"

#define REMOTE_BIT su tamaño de datos remota de código que devuelve la utilidad del decodificador IRrecvDump.

UMBRAL DE NIVEL DE VOLUMEN

#define THRESHOLD_VALUE

Si usted no planea usar el potenciómetro para determinar el valor de umbral que se utilizará para accionar la transmisión IR, cambie el valor THRESHOLD_VALUE para que coincida con sus requisitos.  Este es el número que decide en qué momento el Arduino comenzará a transmitir el código IR, en nuestro caso los códigos de volumen abajo IR

INTENSIDAD DE CAMBIO DE VOLUMEN

#define REPEAT_TX (de 1 a tantos como quieras. Comenzar con 3 entonces fine tune)

Cambiar cuantas veces quieras el código remoto de IR transmitido al TV o dispositivo de control remoto. Si quieres más drástica caída en el volumen del televisor aumentar este número. Si quieres un cambio más gradual en el volumen, reducir este número.

/============================================================================

Puede copiar y pegar este código en Arduino y subirlo

/*
Proyecto: Estación de Control remoto de SensoDuino IR 0.1
Programador: Hazim Bitar (techbitar.com)
FECHA: 25 DE NOVIEMBRE DE 2013
ARCHIVO: sensoduino_ir_station.ino (basado en sensoduino.ino)
Licencia: Public domain
*/

#include < IRremote.h >

#define THRESHOLD_VALUE 0 / / Set nivel crítico para detectar. Ignorar si el potenciómetro es usado
#define REPEAT_TX 3 / / cuantas veces para transmitir el código de control remoto IR
#define REMOTE_CODE 0x1CE3E817 / / remoto código para transmitir el de volumen abajo para mi TV. Reemplazar con el código de infrarrojos del dispositivo
#define REMOTE_BIT 32
#define 13 LED / LED utiliza a parpadear cuando volumen demasiado alto

Irsend de IRsend; crear una instancia de objeto de IR

#define START_CMD_CHAR ' >'
#define END_CMD_CHAR '\n'
#define DIV_CMD_CHAR ','

#define DEBUG 1 / ajustar a 0 si no desea Salida serial de datos

Cadena in;
flotador value0, valor1, valor2; VARs que contiene valores de los sensores.

void setup() {}

Esta es la lista de ayuda Sensor número de sensores
Serial.Begin(9600); 9600 es la velocidad por defecto de HC-05 y la mayoría de los módulos serial Bluetooth
Serial.println("\nSensoDuino 0.13 by TechBitar.com (2013).\n");
Serial.println ("Android Sensor tipo No:");
Serial.println ("1-acelerómetro (m/s ^ 2 - X, Y, Z)");
Serial.println ("2-MAGNETIC_FIELD (uT - X, Y, Z)");
Serial.println ("3-orientación (yaw, pitch, roll)");
Serial.println ("4-giroscopio (rad/s - X, Y, Z)");
Serial.println ("5-luz (SI lux)");
Serial.println ("6-presión (hPa milibar)");
Serial.println ("dispositivo 7 TEMPERATURE (C)");
Serial.println ("8-proximidad (centímetros o 1, 0)");
Serial.println ("9-gravedad (m/s ^ 2 - X, Y, Z)");
Serial.println ("10-LINEAR_ACCELERATION (m/s ^ 2 - X, Y, Z)");
Serial.println ("11-ROTATION_VECTOR (X, Y, Z)");
Serial.println ("12-RELATIVE_HUMIDITY (%)");
Serial.println ("13-AMBIENT_TEMPERATURE (C)");
Serial.println ("14-MAGNETIC_FIELD_UNCALIBRATED (uT - X, Y, Z)");
Serial.println ("15-GAME_ROTATION_VECTOR (X, Y, Z)");
Serial.println ("16-GYROSCOPE_UNCALIBRATED (rad/s - X, Y, Z)");
Serial.println ("17-SIGNIFICANT_MOTION (1.0)");
Serial.println ("95 - tiempo (H, M, S)");
Serial.println ("96 - fecha (Y, M, D)");
Serial.println ("97 - AUDIO (volumen)");
Serial.println ("98 - GPS1 (lat., largo, alt.)");
Serial.println ("99 - GPS2 (rodamiento, velocidad, fecha/hora)");
Serial.println ("\n\nNOTE: valores de 99.99\n\n");
Serial.Flush();

pinMode (LED, salida);
}

void loop()
{
Serial.Flush();
inCommand int = 0;
sensorType int = 0;
logCount largo sin signo = 0L;

char getChar = ' ';  leer serie

esperar a que los datos de entrada
Si (Serial.available() < 1) regresar; Si vacío serie, volver a loop().

analizar la bandera de inicio comando entrante
getChar = Serial.read();
Si (getChar! = START_CMD_CHAR) volver; Si no hay comando inicia bandera, volver al loop().

analizar la entrada pin # y valor
sensorType = Serial.parseInt(); leer sensor typr
logCount = Serial.parseInt();  lecturas del sensor conectado total de leer
value0 = Serial.parseFloat();  1 º valor del sensor
valor1 = Serial.parseFloat();  2 sensor de valor si existe
valor2 = Serial.parseFloat();  3 sensor de valor si existe

Mostrar valores de sensores para la depuración y sensor.
Si {} (DEBUG)
Serial.Print ("tipo de Sensor:");
Serial.println(sensorType);
Serial.Print ("Sensor registro #:");
Serial.println(logCount);
Serial.Print ("Val [0]:");
Serial.println(value0);
Serial.Print ("Val [1]:");
Serial.println(value1);
Serial.Print ("Val [2]:");
Serial.println(value2);
Serial.println("---");
Delay(10);
}
Cambiar el número de sensor para que coincida con el Señor para leer. Ver lista de ayuda de Sensor anterior.
Si (sensorType! = 97) volver;  Si no estoy leyendo valores de los sensores de Audio, vuelva y siga leyendo.

Leer el valor del potenciómetro (0-1023) o asignar VolValue
a THRESHOLD_VALUE constante si no desea utilizar el potenciómetro.
int volValue = analogRead(A5);

Ya que mi sensor de audio en mi Arduino devuelve valores de 0 a 32K lo asignará a analógico min/max
Float volLimit = volValue * (32000 / 1023.0); 32K es sobre max devuelto por el sensor de SensoDuino Audio
int soundLevel = value0; Leer el sensor de los sonidos de SensoDuino (Bluetooth)
if(soundLevel > volLimit) / / comparar a umbral de nivel de ruido establecido por el potenciómetro.
{
digitalWrite(LED,HIGH);  mientras transmite IR encender LED
Delay(200);
para (int txCount = 0; txCount < REPEAT_TX; txCount ++) {/ / transmitir el código de control remoto IR
irsend.sendNEC (REMOTE_CODE, REMOTE_BIT); Ver lista comentada y volver a colocar para que coincida con su sistema de infrarrojos
Delay(200);

Quite el comentario de la función que coincide con el protocolo de control remoto como se indica por IRrecvDump
irsend.sendNEC (REMOTE_CODE, REMOTE_BIT);
irsend.sendSony (REMOTE_CODE, REMOTE_BIT);
irsend.sendRC5 (REMOTE_CODE, REMOTE_BIT);
irsend.sendRC6 (REMOTE_CODE, REMOTE_BIT);
}
}
digitalWrite(LED,LOW); Cuando se hace la transmisión IR, apague el LED

}

Artículos Relacionados

Control remoto de Tv Android/Arduino

Control remoto de Tv Android/Arduino

Paso 1: Lista -Arduino-Modul Bluetooth (HC-05/06)-IR recever (38kHz)-IR led (puede utilizar un control remoto viejo)-Resistencia-Teléfono androidPaso 2: La aplicación para Android http://AI2.appinventor.MIT.edu/En la app invetor 2 crear su aplicación
Hacer propio control remoto personalizado para su proyecto

Hacer propio control remoto personalizado para su proyecto

Hice un proyecto que utiliza un arduino y un IR eliminar biblioteca para controlar un par de cosas.Tan en este instructable le muestro cómo puede reutilizar un control remoto para su propósito en.Y no necesita algo de fantasía para hacer un control r
Control remoto bricolaje para Hexdrake

Control remoto bricolaje para Hexdrake

Hola, soy David y este es mi segundo instructable :).Es una continuación de mi primer instructable, donde me muestra cómo construí mi pequeño hexápodo, Hexdrake:En este nuevo instructivo te voy a mostrar cómo hice este controlador protoype para Hexdr
C3/N3 DIY de control remoto enchufe para réflex Canon

C3/N3 DIY de control remoto enchufe para réflex Canon

como la mayoría de ustedes ya sabe, algunos DSLR de Canon tienen un conector dedicado para el control remoto. Esto es bastante molesto, sobre todo cuando queremos hacer un regulador de tiro especial diy. La forma más fácil es comprar un mando a dista
Control remoto teléfono android y de escritorio de un iDevice

Control remoto teléfono android y de escritorio de un iDevice

esto es un instructivo sobre cómo para escritorio remoto desde un teléfono android a un iphone. Estoy bastante seguro de que esto no ha hecho antes, google no ha encontrado nada remotamente cerca. Esto muestra la pantalla de tu iphone o ipod en tu te
Control remoto de 2 canales sin IC [bueno para helicópteros!]

Control remoto de 2 canales sin IC [bueno para helicópteros!]

Este Instructable le mostrará cómo hacer un control remoto de 2 canales que puede utilizar para sus helicópteros de control remoto!Para control remoto multi canal, puede utilizar un CD4017 tanto en el transmisor y los circuitos del receptor.Se necesi
Reutilización no deseados Control remoto por infrarrojos para usar con reproductor de música de xmms2

Reutilización no deseados Control remoto por infrarrojos para usar con reproductor de música de xmms2

IntroducciónEs una buena idea a control remoto xmms2 media player a través de infrarrojos por la misma razón que uno hace con XBMC/KODI. Rebusqué en mi caja de partes y me había encontrado este control remoto por infrarrojos de un sistema de Home The
Control remoto de volumen para amplificador estéreo viejo

Control remoto de volumen para amplificador estéreo viejo

Tengo un amplificador Stereo viejo que tengo en mi sala de estar. Funciona bastante bien, pero es tan viejo que no tiene un control remoto, que es muy molesto utilizar mientras está sentado en el sofá.Así que hice esto, un dispositivo que podía utili
Cómo hacer un coche de Control remoto de modificado para requisitos particulares

Cómo hacer un coche de Control remoto de modificado para requisitos particulares

en este tutorial voy a mostrar cómo hacer un coche de control remoto personalizable de prácticamente lo que quieras. Utilizará k-nex y algunos cartón pero también se podría utilizar Legos, piezas impresas 3d o un montón de otras cosas.Paso 1: Reunir
Genie - aparcamiento y Control remoto de garaje

Genie - aparcamiento y Control remoto de garaje

El genio de garaje es un gadget de Arduino de automatización de coche. Haga clic en las dos imágenes de arriba para ver la explicación animada. Pretende hacer algunas cosas:1. el "semáforo" dice cuando has acercaba su coche hasta lo suficienteme
Una aplicación de control remoto Bluetooth Universal

Una aplicación de control remoto Bluetooth Universal

En este Tutorial quiero mostrar cómo controlar su proyecto Arduino con un teléfono Android o tablet.Ya puede encontrar muchas soluciones para esto en Internet pero la mayoría de ellos no ofrecen las características que se necesitan para un proyecto m
Controlar cualquier control remoto de una frambuesa Pi (y Amazon eco!)

Controlar cualquier control remoto de una frambuesa Pi (y Amazon eco!)

Estación meteorológica de mi esposa había sido estrellarse de vez en cuando, y nos dirigimos hacia fuera en vacaciones de verano pronto, así que me pidió una manera de encender el controlador de estación meteorológica remota. Ya tengo algunas tomas i
Control remoto de Arduino DIY y Lego RC vehículo!!!!

Control remoto de Arduino DIY y Lego RC vehículo!!!!

Actualizar (29/08/13): lectores gracias por sus palabras de entusiasmo y tipo con respecto a este proyecto! Ha sido un viaje tremendo desde que comencé este proyecto en marzo, pero estoy muy contento con el producto resultante y el entusiasmo con que
Control remoto puerta

Control remoto puerta

El dilema:6:00 de la mañana del 1 de enero. Festejaron hasta 3:00. Ahora está durmiendo fuera cuando se despiertan por un insistente raspado proveniente de la puerta de atrás. Su perro necesita ir fuera a cuidar de su negocio, pero eres cálido y conf