Estou com o msm problema, será que poderiam me ajudar???
Acredito que a memoria ram esteja cheia tb.
tentei usar o progmem e msm assim não deu certo
#include <SPI.h>
#include <Ethernet.h>
#include <IRremote.h>
#include <ArdOSC.h> //inclui blibioteca ArdOSC
#include <Wire.h>
#include <avr/io.h>
#include <avr/interrupt.h>
int RECV_PIN = 11;
int ON = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
#define DETECT 2 //zero cross detect
#define GATE1 8 //triac gate
#define GATE2 12//triac gate
#define PULSE 4 //trigger pulse width (counts)
int i=513;
int j=513;
int led = 13;
byte myMac[]={ 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //define MAC para shield Ethernet
byte myIp[] = { 192, 168, 0, 99 }; //define IP da central automação
int serverPort = 8000; //define a porta de recepção do comando OSC
int destPort= 9000; //define a porta de envio do comando OSC
OSCServer server; //inicializa o servidor OSC (serviço que trata a recepção de mensagem OSC)
OSCClient client; //inicializa o cliente OSC (serviço que trata o envio de mensagem OSC)
unsigned int TVCABO_POWER[20] = {6050,1200,1200,1150,650,550,650,550,650,1150,650,550,650,550,650,1150,650,1150,650,};
unsigned int TVCABO_MENU[20] = {6050,1150,1200,1200,600,600,600,600,1200,550,650,550,650,550,1250,550,1200,600,600,};
unsigned int TVCABO_GUIA[20] = {6000,1200,1150,1200,650,550,650,550,1250,550,1250,550,650,550,650,550,650,550,650,};
//unsigned int TVCABO_VOLUME_MAIS[20] PROGMEM = {5950,1250,1250,1150,650,550,650,1150,650,1150,1200,600,600,1150,650,550,1250,1150,650,};
//unsigned int TVCABO_VOLUME_MENOS[20] PROGMEM = {6050,1150,1250,1150,650,550,650,1150,600,1200,1200,600,600,1200,600,600,1200,1200,600,};
//unsigned int TVCABO_CANAL_MAIS[20] PROGMEM = {6050,1150,1200,1200,600,550,650,550,650,550,1250,1150,600,1200,1200,600,1200,600,600,};
//unsigned int TVCABO_CANAL_MENOS[20] PROGMEM = {6000,1200,1200,1200,600,600,600,550,650,550,1250,1150,1250,550,1250,550,1250,1150,650,};
unsigned int TVCABO_ESQUERDA[20] = {6100,1150,1200,1150,650,550,650,550,1250,550,600,600,1200,1200,1200,1200,600,1200,600,};
unsigned int TVCABO_DIREITA[20] = {6000,1200,1150,1250,600,600,550,650,1150,650,550,1200,650,550,1200,1200,650,1150,600,};
unsigned int TVCABO_CIMA[20] = {6050,1150,1250,1150,650,550,650,550,1200,600,650,550,650,1150,1200,600,1200,1150,650,};
unsigned int TVCABO_BAIXO[20] = {6050,1150,1200,1200,600,600,650,550,1250,550,650,550,1250,550,1200,1200,600,600,600,};
unsigned int TVCABO_OK[20] = {5950,1250,1200,1200,600,600,600,600,1250,500,650,1150,650,1150,1250,1150,1200,600,650,};
unsigned int TVCABO_1[20] = {6050,1150,1200,1200,600,600,600,600,600,600,600,550,650,1150,650,550,650,1150,650,};
unsigned int TVCABO_2[20] = {6050,1150,1200,1200,600,550,650,550,650,550,600,600,1200,600,600,600,1200,600,600,};
unsigned int TVCABO_3[20] = {6050,1150,1250,1150,650,550,650,550,650,550,650,550,1250,1150,600,600,1200,1200,600,};
unsigned int TVCABO_4[20] = {6050,1150,1250,1150,650,550,650,550,650,550,650,1150,650,550,650,550,1250,1150,600,};
unsigned int TVCABO_5[20] = {6050,1150,1150,1250,550,650,600,600,600,600,600,1200,600,1200,600,1200,600,550,650,};
unsigned int TVCABO_6[20] = {6050,1150,1250,1150,650,550,650,550,650,550,650,1150,1250,550,650,1150,650,1150,600,};
unsigned int TVCABO_7[20] = {6050,1150,1150,1250,550,650,600,600,600,600,600,1200,1200,1150,600,1200,1250,550,650,};
unsigned int TVCABO_8[20] = {6050,1200,1200,1200,600,550,650,550,650,550,1250,550,650,550,650,1150,1250,550,650,};
unsigned int TVCABO_9[20] = {6050,1200,1200,1150,650,550,650,550,600,600,1200,600,600,1200,600,1200,1200,1200,550,};
unsigned int TVCABO_0[20] = {6050,1200,1150,1200,600,600,650,550,650,1150,600,600,600,1200,650,1150,1200,600,600,};
unsigned int TVCABO_SAIR[20] = {6050,1150,1250,1150,600,600,600,600,1200,600,600,1200,1200,600,1200,1200,1200,1150,650,6050,};
IRsend irsend;
String readString;
void setup(){
Serial.begin(9600);
// set up pins
pinMode(DETECT, INPUT); //zero cross detect
digitalWrite(DETECT, HIGH); //enable pull-up resistor
pinMode(GATE1, OUTPUT); //triac gate control
pinMode(GATE2, OUTPUT); //triac gate control
pinMode(led, OUTPUT);
irrecv.enableIRIn(); // Start the receiver
// set up Timer1
//(see ATMEGA 328 data sheet pg 134 for more details)
OCR1A = 100; //initialize the comparator
OCR1B = 100;
TIMSK1 = 0x03; //enable comparator A and overflow interrupts
TCCR1A = 0x00; //timer control registers set for
TCCR1B = 0x00; //normal operation, timer disabled
// set up zero crossing interrupt
attachInterrupt(0,zeroCrossingInterrupt, RISING);
//IRQ0 is pin 2. Call zeroCrossingInterrupt
//on rising signal
Ethernet.begin(myMac ,myIp); //inicializa a interface ethernet
server.begin(serverPort); //inicializa o servidor OSC definindo a porta de RX
//set callback function & oscaddress
}
void loop()
{
if(server.aviableCheck()>0){ //verifica se existe alguma mensagem OSC disponível para leitura
}
OCR1A = i; //set the compare register brightness desired.
OCR1B = j;
}
void func23(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_POWER,20,38);
}
void func24(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_GUIA,20,38);
}
void func25(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_MENU,20,38);
}
void func26(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_ESQUERDA,20,38);
}
void func27(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_DIREITA,20,38);
}
void func28(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_CIMA,20,38);
}
void func29(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_BAIXO,20,38);
}
void func30(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_OK,20,38);
}
void func31(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_1,20,38);
}
void func32(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_2,20,38);
}
void func33(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_3,20,38);
}
void func34(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_4,20,38);
}
void func35(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_5,20,38);
}
void func36(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_6,20,38);
}
void func37(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_7,20,38);
}
void func38(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_8,20,38);
}
void func39(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_9,20,38);
}
void func40(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_0,20,38);
}
void func41(OSCMessage *_mes){ ///TVCABO/POWER
irsend.sendRaw(TVCABO_SAIR,20,38);
}
void func42(OSCMessage *_mes){ //rotina que trata comando OSC "/ard/led2" recebido do ANDROID
int value=(int)_mes->getArgFloat(0); //armazena em "value" o argumento do comando OSC "/ard/led2"
i = value;
}
void func43(OSCMessage *_mes){ //rotina que trata comando OSC "/ard/led2" recebido do ANDROID
int value=(int)_mes->getArgFloat(0); //armazena em "value" o argumento do comando OSC "/ard/led2"
j = value;
}
void func44(OSCMessage *_mes){ //rotina que trata comando OSC "/ard/led2" recebido do ANDROID
int value=(int)_mes->getArgFloat(0); //armazena em "value" o argumento do comando OSC "/ard/led2"
digitalWrite(led,value);
}
void zeroCrossingInterrupt(){ //zero cross detect
TCCR1B=0x04; //start timer with divide by 256 input
TCNT1 = 0; //reset timer - count from zero
}
ISR(TIMER1_COMPA_vect){ //comparator match
digitalWrite(GATE1,HIGH); //set triac gate to high
digitalWrite(GATE2,HIGH); //set triac gate to high
TCNT1 = 65536-PULSE; //trigger pulse width
}
ISR(TIMER1_OVF_vect){ //timer1 overflow
digitalWrite(GATE1,LOW); //turn off triac gate
digitalWrite(GATE2,LOW); //set triac gate to high
TCCR1B = 0x00; //disable timer stopd unintended triggers
}