No, al hacer eso me lanza un error, he probado con un vector temporal pero me dice que tiene que ser unsigned y al mandarlo unsigned no lo lee bien... un lío. Le daré alguna vuelta a ver que se me ocurre.
Muchas gracias de nuevo surbyte.
EDIT
Arreglado, el vector estaba guardado como byte, al guardarlo como int funciona todo a la perfección.
Me gustaría poder mandar el vector como quería al principio, sin vector temporal, es un capricho... pero oye, ya tengo un mando a distancia totalmente funcional.
Muchas gracias en cualquier caso.
EDIT 2
Adjunto el código completo por si a alguien le sirve, en una pantalla puedes ver la opción entre las 6 del mando, sealternan con un botón (On/Off, + intensidad, - intensidad, calefactor, girar On/Off, temporizador) una vez seleccionada la opción se manda el código pertinente al pulsar el segundo botón:
#include <Wire.h>
#include <FastIO.h>
#include <I2CIO.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_SR2W.h>
#include <LiquidCrystal_SR3W.h>
#include <IRremote.h>
#include <IRremoteInt.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Función de configuración
IRsend irsend;
int flag=0; //0-5, 6 estados
char* inst[]={"On", "+", "-", "Giro", "Timer", "Heat" }; //Estados
int boton1=12; //Botón cambiar estado
int boton2=13; //Botón ejecutar acción
int Len=23;
int RC [6][23]={{1150,500,1150,500,350,1350,1150,500,1150,500,350,1350,300,1350,350,1300,350,1350,300,1350,350,1300,1200},
{1200,500,1150,500,350,1300,1200,500,1150,500,350,1300,350,1350,1150,500,350,1300,350,1350,300,1350,350},
{1200,500,1150,500,350,1300,1200,500,1200,450,350,1300,1200,500,350,1300,350,1300,400,1300,350,1300,350},
{1200,450,1200,450,400,1300,1200,450,1200,450,400,1300,350,1300,350,1350,1150,500,350,1300,350,1350,350},
{1150,550,1100,550,300,1350,1150,550,1100,550,300,1350,300,1400,300,1350,300,1350,300,1400,1100,550,300},
{1150,500,1200,500,300,1350,1150,500,1200,500,300,1350,350,1350,300,1350,350,1300,1200,500,300,1350,350}};
bool estado1=HIGH;
bool estado2=HIGH;
bool estado1ant=HIGH;
bool estado2ant=HIGH;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(boton1,INPUT);
pinMode(boton2,INPUT);
lcd.begin(16,2);
lcd.clear();
}
void loop() {
// put your main code here, to run repeatedly:
lcd.setCursor(0,0);
lcd.print(inst[flag]);
lcd.setCursor(0,1);
lcd.print(flag+1);
lcd.print("/6");
estado1=digitalRead(boton1); //Botón 1 presionado
if (estado1ant==HIGH && estado1==LOW) {
flag=flag+1;
lcd.clear();
if (flag==6) {
flag=0;
}
delay(250);
estado1=estado1ant;
}
estado2=digitalRead(boton2);
if (estado2ant==HIGH && estado2==LOW) {
unsigned int array[23]={};
for (int i=0; i<Len; i++){
array[i]=RC[flag][i];
}
irsend.sendRaw(array,Len,38);
estado2=estado2ant;
delay(250);
}
}