26-12-2017, 14:36
Y ahora añadimos el programa al sketch de arduino.
Aquí el código en rojo:
// Sketch para controlar 14 reles con un
// mando a distancia IR con protocolo NEC
#include <Arduino.h>
#include <NECIRrcv.h> //Libreria del protocolo NEC
#define IRPIN 8
// Pin del receptor IR
NECIRrcv ir(IRPIN);
int pupete = 14; //pin de otra ventana
int rojo = 12; //Pin del color ROJO del led RGB
int verde = 15; //Pin del color VERDE del led RGB
int azul = 10; //Pin del color AZUL del led RGB
int amarillo = 9; // pin nuevo
int ninoni = 16; //pin mando st
int fuxia = 7; //Pin del numero 5 del mando
int morado = 6; //Pin del numero 6 del mando
int gris = 5; //Pin del numero 7 del mando
int negro = 4; //Pin del numero 8 del mando
int huevo = 3; //Pin del numero 9 del mando
int chufa = 2; //Pin del numero 0 del mando
int gru = 17; //pin del numero abajo del mando
int kakel = 18; // pin del mando vol-
boolean estadopupete = false;
boolean estadorojo = false;
boolean estadoverde = false;
boolean estadoazul = false;
boolean estadoamarillo = false;
boolean estadopower = false;
boolean estadoninoni = false;
boolean estadofuxia = false;
boolean estadomorado = false;
boolean estadogris = false;
boolean estadonegro = false;
boolean estadohuevo = false;
boolean estadochufa = false;
boolean estadogru = false;
boolean estadokakel = false;
long power = 0xFF00BF00; //Codigo correspondiente al boton POWER del mando a distancia
long butpupete =0xF20DBF00;// codigo boton eq
long butrojo = 0xEF10BF00; //Codigo correspondiente al boton 1 del mando a distancia
long butverde = 0xEE11BF00; //Codigo correspondiente al boton 2 del mando a distancia
long butazul = 0xED12BF00; //Codigo correspondiente al boton 3 del mando a distancia
long butamarillo = 0xEB14BF00; // codigo boton 4
long butninoni = 0xF10EBF00; // codigo boton st
long butfuxia = 0xEA15BF00; // codigo boton 5
long butmorado = 0xE916BF00; // codigo boton 6
long butgris = 0xE718BF00; // codigo boton 7
long butnegro = 0xE619BF00; // codigo boton 8
long buthuevo = 0xE51ABF00; // codigo boton 9
long butchufa = 0xF30CBF00; // codigo boton 0
long butstop = 0xFD02BF00; // codigo boton stop
long butgru = 0xF708BF00; // codigo boton abajo
long butkakel = 0xF50ABF00; // codigo boton vol-
void setup()
{
Serial.begin(9600); //Iniciamos comunicacion serie
Serial.println("NEC IR code reception") ;
ir.begin(); //Iniciamos la recepcion IR
pinMode(pupete, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(verde,OUTPUT);
pinMode(azul, OUTPUT);
pinMode(amarillo,OUTPUT);
pinMode(ninoni,OUTPUT);
pinMode(fuxia,OUTPUT);
pinMode(morado,OUTPUT);
pinMode(gris,OUTPUT);
pinMode(negro,OUTPUT);
pinMode(huevo,OUTPUT);
pinMode(chufa,OUTPUT);
pinMode(gru,OUTPUT);
pinMode(kakel,OUTPUT);
}
void loop()
{
unsigned long ircode; //Variable que contendra el codigo decimal del boton pulsado
while (ir.available())
{
ircode = ir.read(); //Leemos el codigo del boton pulsado
Serial.print("got code: 0x") ;
Serial.println(ircode,HEX) ;
if (ircode == power) //Si el boton de power... apagamos el led
{
delay (50);//Invertimos todos los estados
estadopupete = !estadopupete;
estadorojo = !estadorojo;
estadoverde = !estadoverde;
estadoazul = !estadoazul;
estadoamarillo = !estadoamarillo;
estadoninoni = !estadoninoni;
estadofuxia = !estadofuxia;
estadomorado = !estadomorado;
estadogris = !estadogris;
estadonegro = !estadonegro;
estadohuevo = !estadohuevo;
estadochufa = !estadochufa;
estadogru = !estadogru;
estadokakel = !estadokakel;
digitalWrite(pupete, estadopupete);
digitalWrite(rojo, estadorojo);
digitalWrite(verde, estadoverde);
digitalWrite(azul, estadoazul);
digitalWrite(amarillo, estadoamarillo);
digitalWrite(ninoni, estadoninoni);
digitalWrite(fuxia, estadofuxia);
digitalWrite(morado, estadomorado);
digitalWrite(gris, estadogris);
digitalWrite(negro, estadonegro);
digitalWrite(huevo, estadohuevo);
digitalWrite(chufa, estadochufa);
digitalWrite(gru, estadogru);
digitalWrite(kakel, estadokakel);
}
else if (ircode == butpupete){
delay(100);
estadopupete = !estadopupete;
digitalWrite(pupete,estadopupete);
}
else if (ircode == butrojo){
delay(100);
estadorojo = !estadorojo;
digitalWrite(rojo,estadorojo);
}
else if (ircode == butverde){
delay (100);
estadoverde = !estadoverde;
digitalWrite(verde,estadoverde);
}
else if (ircode == butazul){
delay (100);
estadoazul = !estadoazul;
digitalWrite(azul,estadoazul);
}
else if (ircode == butamarillo){
delay (100);
estadoamarillo = !estadoamarillo;
digitalWrite(amarillo,estadoamarillo);
}
else if (ircode == butninoni){
delay(100);
estadoninoni = !estadoninoni;
digitalWrite(ninoni,estadoninoni);
}
else if (ircode == butfuxia){
delay(100);
estadofuxia = !estadofuxia;
digitalWrite(fuxia,estadofuxia);
}
else if (ircode == butmorado){
delay(100);
estadomorado = !estadomorado;
digitalWrite(morado,estadomorado);
}
else if (ircode == butgris){
delay(100);
estadogris = !estadogris;
digitalWrite(gris,estadogris);
}
else if (ircode == butnegro){
delay(100);
estadonegro = !estadonegro;
digitalWrite(negro,estadonegro);
}
else if (ircode == buthuevo){
delay(100);
estadohuevo = !estadohuevo;
digitalWrite(huevo,estadohuevo);
}
else if (ircode == butchufa){
delay(100);
estadochufa = !estadochufa;
digitalWrite(chufa,estadochufa);
}
else if (ircode == butgru){
delay(100);
estadogru = !estadogru;
digitalWrite(gru,estadogru);
}
else if (ircode == butkakel){
delay(100);
estadokakel = !estadokakel;
digitalWrite(kakel,estadokakel);
}
else if (ircode ==butstop){
delay(1000);
digitalWrite(pupete, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(azul, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(ninoni, LOW);
digitalWrite(fuxia, LOW);
digitalWrite(morado, LOW);
digitalWrite(gris, LOW);
digitalWrite(negro, LOW);
digitalWrite(huevo, LOW);
digitalWrite(chufa, LOW);
digitalWrite(gru, LOW);
digitalWrite(kakel, LOW);
}
}
}
Tomaaaaaaa cognazooooooo.
Aquí el código en rojo:
// Sketch para controlar 14 reles con un
// mando a distancia IR con protocolo NEC
#include <Arduino.h>
#include <NECIRrcv.h> //Libreria del protocolo NEC
#define IRPIN 8
// Pin del receptor IR
NECIRrcv ir(IRPIN);
int pupete = 14; //pin de otra ventana
int rojo = 12; //Pin del color ROJO del led RGB
int verde = 15; //Pin del color VERDE del led RGB
int azul = 10; //Pin del color AZUL del led RGB
int amarillo = 9; // pin nuevo
int ninoni = 16; //pin mando st
int fuxia = 7; //Pin del numero 5 del mando
int morado = 6; //Pin del numero 6 del mando
int gris = 5; //Pin del numero 7 del mando
int negro = 4; //Pin del numero 8 del mando
int huevo = 3; //Pin del numero 9 del mando
int chufa = 2; //Pin del numero 0 del mando
int gru = 17; //pin del numero abajo del mando
int kakel = 18; // pin del mando vol-
boolean estadopupete = false;
boolean estadorojo = false;
boolean estadoverde = false;
boolean estadoazul = false;
boolean estadoamarillo = false;
boolean estadopower = false;
boolean estadoninoni = false;
boolean estadofuxia = false;
boolean estadomorado = false;
boolean estadogris = false;
boolean estadonegro = false;
boolean estadohuevo = false;
boolean estadochufa = false;
boolean estadogru = false;
boolean estadokakel = false;
long power = 0xFF00BF00; //Codigo correspondiente al boton POWER del mando a distancia
long butpupete =0xF20DBF00;// codigo boton eq
long butrojo = 0xEF10BF00; //Codigo correspondiente al boton 1 del mando a distancia
long butverde = 0xEE11BF00; //Codigo correspondiente al boton 2 del mando a distancia
long butazul = 0xED12BF00; //Codigo correspondiente al boton 3 del mando a distancia
long butamarillo = 0xEB14BF00; // codigo boton 4
long butninoni = 0xF10EBF00; // codigo boton st
long butfuxia = 0xEA15BF00; // codigo boton 5
long butmorado = 0xE916BF00; // codigo boton 6
long butgris = 0xE718BF00; // codigo boton 7
long butnegro = 0xE619BF00; // codigo boton 8
long buthuevo = 0xE51ABF00; // codigo boton 9
long butchufa = 0xF30CBF00; // codigo boton 0
long butstop = 0xFD02BF00; // codigo boton stop
long butgru = 0xF708BF00; // codigo boton abajo
long butkakel = 0xF50ABF00; // codigo boton vol-
void setup()
{
Serial.begin(9600); //Iniciamos comunicacion serie
Serial.println("NEC IR code reception") ;
ir.begin(); //Iniciamos la recepcion IR
pinMode(pupete, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(verde,OUTPUT);
pinMode(azul, OUTPUT);
pinMode(amarillo,OUTPUT);
pinMode(ninoni,OUTPUT);
pinMode(fuxia,OUTPUT);
pinMode(morado,OUTPUT);
pinMode(gris,OUTPUT);
pinMode(negro,OUTPUT);
pinMode(huevo,OUTPUT);
pinMode(chufa,OUTPUT);
pinMode(gru,OUTPUT);
pinMode(kakel,OUTPUT);
}
void loop()
{
unsigned long ircode; //Variable que contendra el codigo decimal del boton pulsado
while (ir.available())
{
ircode = ir.read(); //Leemos el codigo del boton pulsado
Serial.print("got code: 0x") ;
Serial.println(ircode,HEX) ;
if (ircode == power) //Si el boton de power... apagamos el led
{
delay (50);//Invertimos todos los estados
estadopupete = !estadopupete;
estadorojo = !estadorojo;
estadoverde = !estadoverde;
estadoazul = !estadoazul;
estadoamarillo = !estadoamarillo;
estadoninoni = !estadoninoni;
estadofuxia = !estadofuxia;
estadomorado = !estadomorado;
estadogris = !estadogris;
estadonegro = !estadonegro;
estadohuevo = !estadohuevo;
estadochufa = !estadochufa;
estadogru = !estadogru;
estadokakel = !estadokakel;
digitalWrite(pupete, estadopupete);
digitalWrite(rojo, estadorojo);
digitalWrite(verde, estadoverde);
digitalWrite(azul, estadoazul);
digitalWrite(amarillo, estadoamarillo);
digitalWrite(ninoni, estadoninoni);
digitalWrite(fuxia, estadofuxia);
digitalWrite(morado, estadomorado);
digitalWrite(gris, estadogris);
digitalWrite(negro, estadonegro);
digitalWrite(huevo, estadohuevo);
digitalWrite(chufa, estadochufa);
digitalWrite(gru, estadogru);
digitalWrite(kakel, estadokakel);
}
else if (ircode == butpupete){
delay(100);
estadopupete = !estadopupete;
digitalWrite(pupete,estadopupete);
}
else if (ircode == butrojo){
delay(100);
estadorojo = !estadorojo;
digitalWrite(rojo,estadorojo);
}
else if (ircode == butverde){
delay (100);
estadoverde = !estadoverde;
digitalWrite(verde,estadoverde);
}
else if (ircode == butazul){
delay (100);
estadoazul = !estadoazul;
digitalWrite(azul,estadoazul);
}
else if (ircode == butamarillo){
delay (100);
estadoamarillo = !estadoamarillo;
digitalWrite(amarillo,estadoamarillo);
}
else if (ircode == butninoni){
delay(100);
estadoninoni = !estadoninoni;
digitalWrite(ninoni,estadoninoni);
}
else if (ircode == butfuxia){
delay(100);
estadofuxia = !estadofuxia;
digitalWrite(fuxia,estadofuxia);
}
else if (ircode == butmorado){
delay(100);
estadomorado = !estadomorado;
digitalWrite(morado,estadomorado);
}
else if (ircode == butgris){
delay(100);
estadogris = !estadogris;
digitalWrite(gris,estadogris);
}
else if (ircode == butnegro){
delay(100);
estadonegro = !estadonegro;
digitalWrite(negro,estadonegro);
}
else if (ircode == buthuevo){
delay(100);
estadohuevo = !estadohuevo;
digitalWrite(huevo,estadohuevo);
}
else if (ircode == butchufa){
delay(100);
estadochufa = !estadochufa;
digitalWrite(chufa,estadochufa);
}
else if (ircode == butgru){
delay(100);
estadogru = !estadogru;
digitalWrite(gru,estadogru);
}
else if (ircode == butkakel){
delay(100);
estadokakel = !estadokakel;
digitalWrite(kakel,estadokakel);
}
else if (ircode ==butstop){
delay(1000);
digitalWrite(pupete, LOW);
digitalWrite(rojo, LOW);
digitalWrite(verde, LOW);
digitalWrite(azul, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(ninoni, LOW);
digitalWrite(fuxia, LOW);
digitalWrite(morado, LOW);
digitalWrite(gris, LOW);
digitalWrite(negro, LOW);
digitalWrite(huevo, LOW);
digitalWrite(chufa, LOW);
digitalWrite(gru, LOW);
digitalWrite(kakel, LOW);
}
}
}
Tomaaaaaaa cognazooooooo.