Control de Arduino con mando infrarojos
#3
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.
   
Responder


Mensajes en este tema
RE: Control de Arduino con mando infrarojos - por Ficusrex - 26-12-2017, 14:36

Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Proyecto de pupitre para control simple DCC Kris Kelvin 28 1,974 13-03-2024, 13:18
Último mensaje: Kris Kelvin
  Mando Wlan de la Z21 tigrin 2 1,537 03-08-2022, 07:34
Último mensaje: jositoxtr
  Cable para el mando de MULTIMAUS JoseraGR1 2 1,666 30-05-2022, 16:57
Último mensaje: JoseraGR1
  Rocrail-arduino miguel 12 5,168 27-03-2021, 11:58
Último mensaje: miguel
  Segundo mando Multimaus leptrain 7 7,199 12-06-2019, 06:10
Último mensaje: leptrain
  decoder para desvíos fleischmann con arduino Pontedeume 3000 26 30,812 01-02-2019, 18:54
Último mensaje: Pecetero
  Novato Arduino y servos ray269 8 12,810 22-01-2019, 19:17
Último mensaje: Pochy
  Control de semáforos en digital con z21 quisn 4 8,192 25-09-2018, 20:19
Último mensaje: quisn
  Panel de control decoder TT-F9152 FLEISHMANN ray269 1 4,004 05-04-2018, 21:56
Último mensaje: s5jar
  Puente giratorio fleishmann 9152 con arduino ray269 10 13,024 07-03-2018, 07:49
Último mensaje: ray269

Salto de foro:


Usuarios navegando en este tema: 3 invitado(s)