[Arduino + IR] Problemas al clonar el mando (Airzone) de mi AACC

Hola a todos,

Llevo 3 días liado intentando “clonar” el mando del aire acondicionado (IR) para encender/apagar el aire acondicionado de casa. Es la pimera vez que hago algo con Arduino así que soy novato… no, lo siguiente, y además mis conocimientos de C no son nada del otro mundo.

Estoy utilizando la librería tipica IRlibrary. Con el receptor he obtenido el código raw que envía el mando al pulsar ON:

D3BE5F73
Unknown encoding: D3BE5F73 (32 bits)
Raw (48): -5530 1050 -3100 1050 -800 1000 -2050 1000 -3200 1050 -800 1000 -800 1000 -4050 1000 -4400 1050 -3100 1000 -800 1050 -2050 1000 -3200 1000 -800 1000 -850 1000 -4000 1050 -4400 1050 -3100 1000 -800 1050 -2000 1000 -3250 1000 -800 1050 -750 1000 -4050 1000

Es curioso que el primer número, -5530, es diferente cada vez que le doy al botón del mando para encender el aire. Aun así lo copio todo y lo envío con irsend.sendRaw

unsigned int data[] = {-12740, 1050, -3100, 1050, -800, 1000, -2050, 1000, -3200, 1000, -850, 1000, -800, 1000, -4050, 1000, -4400, 1050, -3100, 1050, -800, 1000, -2000, 1050, -3200, 1000, -800, 1050, -800, 1000, -4000, 1050, -4400, 1000, -3150, 1000, -800, 1000, -2050, 1000, -3250, 1000, -800, 1050, -750, 1000, -4050, 1050};
irsend.sendRaw(data, 48, 38);

No funciona. Pensaba que pudiera haber un problema con la frecuencia (38kz, tercer param de sendRaw()), así que tambien he probado con un bucle for que envía el codigo a todas las frecuencias de 1-100 cada 0,5 seg, pero nada.

El AACC es de la marca Airzone, creo que viejete porque en la web no aparece mi modelo por ningún lado. En cada habitación tenemos un control remoto en la pared para activar/desactivar en esa instancia. Manual de uso en PDF: https://climaluxecostatropical.files.wordpress.com/2012/03/manual-sistema-de-zonas.pdf. El mando se ve en la parte derecha de la hoja 4.

No se si es suficiente con capturar el código raw y reenviarlo tal cual con sendRaw(). Por otro lado no se si habrá forma de obtener con el receiver de la librería la frecuencia del mando original de donde obtengo el código raw por si acaso utiliza alguna frecuencia “especial” tipo 56,7Kz o algo así.

Copio el código completo que estoy usando:

#include <IRremote.h>

const int btnPin = 2;

// Controlar click del botón
int timer = 0;

// Código RAW mando Airzone / ON
unsigned int data[] = {-12740, 1050, -3100, 1050, -800, 1000, -2050, 1000, -3200, 1000, -850, 1000, -800, 1000, -4050, 1000, -4400, 1050, -3100, 1050, -800, 1000, -2000, 1050, -3200, 1000, -800, 1050, -800, 1000, -4000, 1050, -4400, 1000, -3150, 1000, -800, 1000, -2050, 1000, -3250, 1000, -800, 1050, -750, 1000, -4050, 1050};
// 3552468851 // código hex (int)

//
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

//
IRsend irsend;

void setup() {
    Serial.begin(9600);
    irrecv.enableIRIn();
}

void loop() {
    timer++;

    if (digitalRead(btnPin) == HIGH) {
        if (timer > 1000) {
            Serial.println("ok");

            // probar con todas las frecuencias de 0-100
            int i;
            for (i=1; i<100; i++) {
                irsend.sendRaw(data, 48, i);
                irrecv.blink13(true);
                Serial.println(i);
                delay(500);
            }
        }
        timer = 0;
    }

    // reset timer
    if (timer > 2000) timer = 1000;
}

Gracias :slight_smile:

Hola Jordi, conseguiste hacer funcionar el sistema Airzone con Arduino al final ?

Saludos Andrés