Encender/apagar luz con control remoto

bueno aquí dejo un vídeo de como captura el pc en ir funcionando



utiize este ir que es de mi portador de tv de mi pc
IR_SENSOR.jpg
 
Última edición:
Buenas amigo de nuevo, tengo una pregunta por si acaso alguno de ustedes me puede ayudar, con mi control remoto samsung que utiliza protocolo nec de 32 bits, he logrado que con cualquier tecla pueda prenderse o apagarse un led utilizando un rele, pero lo que yo quiero es que con una tecla especifica en mi caso el boton source cuyo codigo en hexadecimal es 807F pueda hacer esta activación, en que parte del algoritmo yo debo poner algun tipo de sentencia para que discrimine a las demas teclas y solo responda con la tecla indicada?.

Muchas gracias, saludos a todos
 
comparto unas capturas de imagen del soft que ando desarrollando espero sus comentarios o criticas del mismo gracias desde ya.
 

Adjuntos

  • domotica.JPG
    domotica.JPG
    177.4 KB · Visitas: 59
  • domotica2.JPG
    domotica2.JPG
    180.3 KB · Visitas: 38
  • domotica3.JPG
    domotica3.JPG
    165.3 KB · Visitas: 30
bueno seria como abrir un nuevo hilo y pues las personas que estén interesadas y dispuestas al desarrollo del mismo bienvenidas, yo lo ando de desarrollando con EasyHID para crear la conexión con el pic usb ya sea 18f2550 o el 18f4550 mi lenguaje de programación esta en picbasic igual la parte del soft esta diseñada con visual estudio 2012 o el que quiera también la estoy haciendo en visual basic 6.
 
Hola:

Me gusta eso de controlar con un mando de TV un PIC. Encuentro por la gran Red muchos ejemplos y vídeos, y cuando encuentro esquemas, no encuentro código fuente. También veo últimamente en Arduino UNO rv3 hacer estas cosas.

El que sepa algún dato lo hace saber.

Muchas gracias.
 
Hola que tal Reyvilla! Oye te escribo por lo siguiente estuve leyendo el tema de "Encender/apagar luz con control remoto"
y en especial tu post que hiciste sobre DECODIFICACION DEL CONTROL REMOTO SONY y me dejo fascinado lo estuvo leyendo,
lo del principio si le entendi pero despues cuando explicaste sobre los BITS y LOS COMANDOS ya no supe que?
ME PERDI...ME PERDI.,serias tan amable digo si tienes algo de tiempo de publicar algunos EJEMPLOS SENCILLOS de como activar
por ejemplo un par de RELEVADORES o sea SALIDAS al PIC osea dependiendo de la tecla presionada del control remoto
como acciono la salida a leds,reles...etc,le entiendo un poco al PIC BASIC hace poco hice un seguidor de lineas
con micro 16F887 pero mi interes es como ACTIVAR por ejemplo el DRIVER L293D (GIRO DE MOTORES),con el CONTROL REMOTO
por favor haber si puedes proporcionar algunos ejemplillos,te estare agradecido...Gracias
 
exelente yo lo desarrole con un 555 y 4017 pero fuera mas hermoso , desarrolarlo con un pic ya que con un pic podemos darle una salida a cada puerto si lo programanos con el 16f628a podemos tener varios focos pero la duda que tengo esque no se programar aver a los tomes si nos ayudan a todos a aprender un poco de todo su gran conocimiento que tienen
 
Hola:

Llevo tiempo intentándolo con PIC bajo asm y no me como una rosca, ajajjaja jaj ajajaj ajaj. Ahora estoy con ARduino que es muchísimo más fácil. Cuando haga pequeñas pruebas, les diré si funcionó. Hay muchos ejemplos sobre el control de este tipo en aRduino y funciona de maravilla.


Algunos enlaces de interés.
http://forum.arduino.cc/index.php?topic=158234.0

Saludo.
 
Totalmente de acuerdo META, Arduino es la solución, yo ya realice pruebas y funciona muy bien, mucho menos complejo que pic, yo estoy intentando hacer un DIMMER para la alcoba con el control remoto de mi tv, pero el único problema que he tenido, es que las librerías IRremote y NECir de arduino que son las que contienen los codigos IR de la mayoria de controles, no reconocen el protocolo de tv nuevos como BRAVIA kdl-42w657a, y aun no encuentro el codigo ir del control de la imagen para incluirlo en la libreria. Inclusive hay un Sketch para recibir codigos via infrarojo del control, pero los de ese control son tan rapidos que los capta mal siempre, la idea es controlar la luz solo con ese control sin ninguno mas.(ese control siempre esta en la cama) jejeje: cry:


Esto me sirvió mucho

http://www.righto.com/2009/11/ir-bubbles-controlling-relay-with.html

http://www.instructables.com/id/AC-Arduino-dimming-circuit/?ALLSTEPS
 

Adjuntos

  • sony.jpg
    sony.jpg
    23.2 KB · Visitas: 8
Última edición:
Hola:

No lo encuentras en las librerías porque aún no ha sido actualizadas. Hay otros métodos de conseguir los códigos de tu mando, por ejemplo, hay gente que programan un PIC o Arduinno pulsando cada botón del mando y guarda los datos en una EEPROM, por ejemplo, en una 24LC256.

Arduino detecta los pulsos al recibir y los guarda. Dependiendo del mapa de mamoria de la EEPROM, ya podrás leer esos códigos cuando quieras, eso si, Arduino lo programa en modo escritura de códigos, luego lo normal, es modo lectura.

O lo dejas así, Arduino virgen para detectar los códigos y almacenarlo en la EEPROM, o estudias esos códigos y lo escribes en el código fuente, creando tu propia librería, así de simple.

Saludo.
 
Realice ya el Dimmer, con un gran y exitoso resultado, finalmente descifre los códigos para el control de SONY BRAVIA, que no se encuentran en la librería IRremote, lo configure para que con los botones de colores rojo verde y amarillo del control me realice las funciones, también adapte dos pulsadores para tener el control manual del Dimmer, acá les dejo el esquema (hecho en Paint) por favor disculpen lo rudimentario. ADVERTENCIA: tomar las precauciones necesarias para el manejo de altas tensiones, y sugiero probarlo con bulbos de 12 voltios y su respectiva fuente.
Este proyecto lo tome de INSTRUCTABLES http://www.instructables.com/id/AC-Arduino-dimming-circuit/?ALLSTEPS, y allí también hay algunas advertencias con respecto a su manipulación.
Como detalle fundamental, no se debe alimentar el arduino por el puerto USB del pc mientras este conectado al alto voltaje, se debe implementar una fuente externa o alimentarlo con una batería de 9v ya que como se observa están unidas por tierra, el control lógico y el driver de potencia. :)
 

Adjuntos

  • ESQUEMA DIMMER.GIF
    ESQUEMA DIMMER.GIF
    25.4 KB · Visitas: 23
Muchas felicidades.

1) ¿Puedes mostrar el código de ejemplo si no te importa claro?

2) ¿Sabes hacer lo que te de la gana con el proyecto? (Por ejemplo, tienes en el mando los botones del 0 al 9, y cada uno activa sus relés que hay 10 en total).

Saludo.
 
claro que si meta... aquí el programa que esta escrito para los códigos de los botones mencionados del bravia (en rojo), para el programa que tu propones también es posible, solo basta con descifrar el codigo del botón del control, y ponerlo en el programa, en estos dias subo uno que busque para practicas y que activa un rele de estado solido o mas de acuerdo a los botones del control que uno le asigne.



#include <IRremote.h>
IRsend irsend;
int RECV_PIN = 2;
const int RELAY1 = 6;
int relayState = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;

long previousMillis = 0;
long interval = 500;


const int buttonPin = 4;
const int buttonPin1 = 7;
int buttonState = 1;
int buttonState1 = 1;


void setup()
{

irrecv.enableIRIn();
pinMode(RELAY1, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(buttonPin1, INPUT);
}

int counter = 0;


void loop() {



if (irrecv.decode(&results)) {
unsigned long currentMillis = millis();

if (currentMillis - previousMillis>interval){
previousMillis = currentMillis;

if(results.value==16236607&&relayState==HIGH)// codigo del boton rojo del control


{ relayState=LOW;

counter=0;

analogWrite(RELAY1, counter/4);
}


else if(results.value==16236607&&relayState==LOW)
{relayState=HIGH;// codigo del boton rojo del control

counter = 255;
}
else if

(results.value==16187647&&relayState==HIGH)// codigo del boton verde del control
{

counter = counter -20;

if(counter<=0){
counter =0;
}

}
else if(results.value==16220287&&relayState==HIGH)// codigo del boton amarillo del control
{
counter=counter+20;

if(counter>=255){
counter = 255;
}

}

analogWrite(RELAY1, counter);

}

irrecv.resume(); // Receive the next value
}

buttonState = digitalRead(buttonPin);
buttonState1 = digitalRead(buttonPin1);


if (buttonState == LOW) {

digitalWrite(RELAY1, HIGH);
}
else if (buttonState1 == LOW){

digitalWrite(RELAY1, LOW);
}

}
 
Última edición:
claro que si meta... aquí el programa que esta escrito para los códigos de los botones mencionados del bravia (en rojo), para el programa que tu propones también es posible, solo basta con descifrar el codigo del botón del control, y ponerlo en el programa, en estos dias subo uno que busque para practicas y que activa un rele de estado solido o mas de acuerdo a los botones del control que uno le asigne.



#include <IRremote.h>
IRsend irsend;
int RECV_PIN = 2;
const int RELAY1 = 6;
int relayState = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;

long previousMillis = 0;
long interval = 500;


const int buttonPin = 4;
const int buttonPin1 = 7;
int buttonState = 1;
int buttonState1 = 1;


void setup()
{

irrecv.enableIRIn();
pinMode(RELAY1, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(buttonPin1, INPUT);
}

int counter = 0;


void loop() {



if (irrecv.decode(&results)) {
unsigned long currentMillis = millis();

if (currentMillis - previousMillis>interval){
previousMillis = currentMillis;

if(results.value==16236607&&relayState==HIGH)// codigo del boton rojo del control


{ relayState=LOW;

counter=0;

analogWrite(RELAY1, counter/4);
}


else if(results.value==16236607&&relayState==LOW)
{relayState=HIGH;// codigo del boton rojo del control

counter = 255;
}
else if

(results.value==16187647&&relayState==HIGH)// codigo del boton verde del control
{

counter = counter -20;

if(counter<=0){
counter =0;
}

}
else if(results.value==16220287&&relayState==HIGH)// codigo del boton amarillo del control
{
counter=counter+20;

if(counter>=255){
counter = 255;
}

}

analogWrite(RELAY1, counter);

}

irrecv.resume(); // Receive the next value
}

buttonState = digitalRead(buttonPin);
buttonState1 = digitalRead(buttonPin1);


if (buttonState == LOW) {

digitalWrite(RELAY1, HIGH);
}
else if (buttonState1 == LOW){

digitalWrite(RELAY1, LOW);
}

}

Muchas gracias amigo.

Pensé que el código es más complejo.

Haber si consigo un receptor y emisor infrarrojo y hago experimentos. Lo ideal es saber todos lo botones. JEjeje.

Lo bueno del PIC12F que es muy pequeño y no uso toda la placa de arduino.
 
Atrás
Arriba