Ayuda, mando a distancia no funciona

  • Iniciador del tema Iniciador del tema Joiba
  • Fecha de inicio Fecha de inicio
Registrado
5 Feb 2008
Mensajes
148
Ubicación
España
Provincia
Sevilla
Hola a todos, estoy liado con el controlador y la cuestión es que no consigo que funcione el mando a distancia, os pongo en antecedentes:
El código que estoy usando ya viene esta opción incluida, por lo que me he limitado a cambiar las constantes de los botones del mando ya definido en el código por los de mi mando, con el serial monitor y demás, para sacer las constantes funciona de maravilla, pero cuando copilo el codigo ya modificado, no hace nada, ni siquiera el parpadeo de los leds de transmisión.
Yo estoy en que es un problema de la libreria, pero me la he bajado de la pagina del fabricante del mando y sigue sin funcionar, al verificar el codigo no me da error y se instala bien.
Os pongo el codigo, por si me podeis echar una mano.

/*
D0 - RX
D1 - TX
D2 - PWMCanal1
D3 - PWMCanal2
D4 - PWMCanal3
D5 - PWMCanal4
D6 - PWMCanal5
D7 - PWMCanal6
D8 - PWMCanal7
D9 - SOLO H/L
D10- SOLO H/L
D11 - PWMCanal8
D12-
D13-
D22- Rele On/Off fuente canales
D23- Entrada datos mando a distancia
////////////////////////////////////////////////
A0 -
A1 -
A2 -
A3 -
A22 - BUS I2C-SDA (RELOJ + Pantalla LCD+ sensor temperatura 74c)
A21 - BUS I2C-SCL (RELOJ + Pantalla LCD+ sensor temperatura 74c)
CODIGOS MANDO DISTANCIA



*/
// librerias
#include <WProgram.h> // necesaria quita error de copilacion
#include <EEPROM.h> // read/write eeprom
#include <avr/wdt.h> //perro
#include <Wire.h> // comunicacion I2C
#include <IRremote.h> // Mando a Distacia
#include <OneWire.h> // temperatura
#include <DallasTemperature.h> //temperatura DS1820
#include <LiquidCrystal_I2C.h> // Pantalla LCD
// derecciones de memoria del I2C
#define Reloj_I2C 0x68
LiquidCrystal_I2C lcd(0x3f,20,4);
////// constantes Mando distancia

////////////////////////////////
///////// Variables/////////////
////////////////////////////////
////// constantes Mando distancia
#define mando_1 16582903
#define mando_2 16615543
#define mando_3 16599223
#define mando_4 16591063
#define mando_5 16623703
#define mando_6 16607383
#define mando_7 16586983
#define mando_8 16619623
#define mando_9 16603303
#define mando_0 16593103
#define mando_ok 16621663 // menu tecla play pausa
#define mando_Ro 16609423 // lcd init tecla st rept
#define mando_Ve 16597183 // display tecla func stop
#define mando_Am 16747125
#define mando_Az 16746615
#define mando_AB 16754775
#define mando_Search 16716015
#define mando_Slow 16732845
#define mando_Baja 16584943 // tecla abajo
#define mando_Sube 16601263 // tecla arriba
#define mando_Izq 16589023 // tecla izquierda
#define mando_Dch 16605343 // tecla derecha
#define mando_Power 16580863 //tecla on off
#define mando_Exit 16625743 //setup tecla eq
#define mando_Clear 16716525
#define mando_Menu 16613503 //escribe los dos puntos : tecla volumen mas
#define mando_EPG 16617583 // escribe slat / tecla volumen menos
//////////////////////////////////////////////////////
char dato[20]; // cadena de tomada datos mando distancia
int PowerE=1; // variable para encender y apagar la fuente manualmente
int i =0;
int UltimoCanal=7;// declararemos la variable indicando el nº maxiomo de canales de 0 al
//int ContadorCanal = 0;
int NCanal=0;
int NOpcion=0;
/////////////////////////////////////////////////////////////
unsigned long ircode ; //define variable del IR
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; //del reloj
int ValorHora = 0; // valor de la hora para poder comparar

// para todos los canales TiempoDimeoCanal en segundos por el delay 1000 del loop aumentar para que dure mas el dimeo
// se calcula FadeValueMaxCanal1 x TiempoDimeoCanal = al tiempo que tarda en segundos
//// varibles array/////
int HoraONCanal[]={11, 11, 11, 11, 11, 11, 11, 11, 0, 0,}; //posiciones de memoria 0 al 9
int MinutoONCanal[]={20, 20, 20, 20, 20, 20, 20, 20, 0, 0,}; //posiciones de memoria 10 al 19
int ONCanal[] = {660, 660, 660, 660, 660,660, 660, 660, 0, 0}; // el tiempo en minutos ONCanal = (HoraONCanal*60)+ MinutoONcanal;
int HoraOFFCanal[] ={21, 21, 21, 21, 21, 21, 21, 21, 0, 0}; //posiciones del 20 al 29
int MinutoOFFCanal[] = {45, 45, 45, 45, 45, 45, 45, 45, 0, 0}; //posiciones del 30 al 39
int OFFCanal[] = {1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 0, 0};
int FadeValueMaxCanal[] = {180, 180, 180, 180, 180, 180, 180, 180, 0, 0};
int FadeValueCanal[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; //variable que contiene el valor del fader segun canal
int TiempoDimeoCanal[] = {20, 20, 20, 20, 20, 20, 20, 20, 0, 0,};
int ContadorCanal[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int ContadorDiaCanal[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // con este contador diferenciamos el tiempo de encender, nunca puede ser mayor TiempoDimeoCanal
int ContadorNocheCanal[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // con este contador diferenciamos el tiempo de apagar, nunca puede ser mayor TiempoDimeoCanal
//////////////////////////////////
//// Pines (I/O) /////
/////////////////////////////////
int PWMCanal[] = {2, 3, 4, 5, 6, 7, 8, 11,}; //faltarian poner el 12 canal 9 y el 13? canal 10
int PowerFuente = 22; // conectar rele para encender y apagar la fuente
int RECV_PIN = 23; // pin IR entrada datos mando
//////////////////////////////////////////
///////////OTROS//////////////
////////////////////////////////////
IRrecv irrecv(RECV_PIN);
decode_results results;
// Convierte números normales decimales a BCD (binario decimal codificado)
byte decToBcd(byte val) {return ( (val/10*16) + (val%10) );}
// Convierte BCD (binario decimal codificado) a números normales decimales
byte bcdToDec(byte val) {return ( (val/16*10) + (val%16) );}
/////////////////
/////SETUP///////
////////////////
void setup()
{
/// lectura de EEPROM //////////
for (int n=0; n<=9; n++){
HoraONCanal[n]=EEPROM.read(n); //posiciones del 0 al 9
MinutoONCanal[n]=EEPROM.read(n+10); //posiciones del 10 al 19
HoraOFFCanal[n]=EEPROM.read(n+20); //posiciones del 20 al 29
MinutoOFFCanal[n]=EEPROM.read(n+30); //posiciones del 30 al 39
FadeValueMaxCanal[n]=EEPROM.read(n+40); //posiciones del 40 al 49
TiempoDimeoCanal[n]=EEPROM.read(n+50); //posiciones del 50 al 59
ContadorCanal[n]=EEPROM.read(n+60); //posiciones del 60 al 69
ContadorDiaCanal[n]=EEPROM.read(n+70); //posiciones del 70 al 79
ContadorNocheCanal[n]=EEPROM.read(n+80); //posiciones del 80 al 89
}
/////////////////////////////////
pinMode(PowerFuente,OUTPUT);
Serial.end();
irrecv.enableIRIn(); // inicia la cominicacion del mando
Wire.begin(); // inico el puerto I2C como maestro este Arduino
lcd.init(); // inicia la pantalla
lcd.clear(); // limpiar pantalla
lcd.backlight(); // enciende la pantalla
}
//////////////////
///// LOOP////////
/////////////////
void loop()
{
Leer_Reloj(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
ValorHora = (hour*60)+minute;
/////////////////////////////////////
PantallaPrincipal();
/////////////////////////////////////////
////Pulsacion de mando y opciones /////////
//////////////////////////////////////////
if (irrecv.decode(&results)) {
ircode = results.value;
irrecv.resume(); // Receive the next value
}
if (ircode == mando_ok) Menu();
if (ircode == mando_Ro) lcd.init();
if (ircode == mando_Power) lcd.backlight();

///////////////////////////////////////////
///// codiciones de los canales /////
for (NCanal=0; NCanal<=UltimoCanal; NCanal++) {
if (ContadorCanal[NCanal] ==TiempoDimeoCanal[NCanal])
{
Canal(); // funcion de dimeo canal
}
ContadorCanal[NCanal]=ContadorCanal[NCanal]+1;
}
delay(1000);
}
////// fin de la funcion loop ///////////
//////// leer la hora /////////////
void Leer_Reloj(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
// Resetea el registro puntero
Wire.beginTransmission(Reloj_I2C);
Wire.send(0);
Wire.endTransmission();
Wire.requestFrom(Reloj_I2C, 7);
// Alguno de estos necesitan enmascarar porque ciertos bits son bits de control
*second = bcdToDec(Wire.receive() & 0x7f);
*minute = bcdToDec(Wire.receive());
*hour = bcdToDec(Wire.receive() & 0x3f); // Need to change this if 12 hour am/pm
*dayOfWeek = bcdToDec(Wire.receive());
*dayOfMonth = bcdToDec(Wire.receive());
*month = bcdToDec(Wire.receive());
*year = bcdToDec(Wire.receive());
}
///////////////////////////////////////////////////////////////////////////
// funciones de encendido y apagado de los Cnales 1 al 8 /////
////////////////////////////////////////////////////////////////////////
void Canal()
{
ContadorCanal[NCanal]=0; // se reinicia contador si no cumple ninguna de las condiciones
// ON canal 1///////
if (ValorHora >= ONCanal[NCanal] && ValorHora <= (OFFCanal[NCanal]-((FadeValueMaxCanal[NCanal]*TiempoDimeoCanal[NCanal])/60)) && FadeValueCanal[NCanal] < FadeValueMaxCanal[NCanal])
{
if (FadeValueCanal[0] == 0) { // esta condicion la pondremos en el canal que se encienda primero que es el 0
// hay que tener en cuenta que el primer canal que se tiene que encender y el ultimo en apagarse es el 0
digitalWrite(PowerFuente,HIGH); // enciende el rele de la fuente puede ser LOW dependera de la conexion del rele
}
analogWrite (PWMCanal[NCanal],FadeValueCanal[NCanal]);
FadeValueCanal[NCanal]=FadeValueCanal[NCanal]+1;
ContadorCanal[NCanal]=ContadorDiaCanal[NCanal];
}
/// OFF Canal1 //////
if (ValorHora >= (OFFCanal[NCanal]-((FadeValueMaxCanal[NCanal]*TiempoDimeoCanal[NCanal])/60)) && FadeValueCanal[NCanal] != 0 )
{
FadeValueCanal[NCanal]=FadeValueCanal[NCanal]-1;
analogWrite (PWMCanal[NCanal],FadeValueCanal[NCanal]);
if (FadeValueCanal[0] == 0) { // esta condicion la pondremos en el canal que se apaga el ultimo que es el 0
// hay que tener en cuenta que el primer canal que se tiene que encender y el ultimo en apagarse es el 0
digitalWrite(PowerFuente,LOW); // enciende el rele de la fuente puede ser HIGH dependera de la conexion del rele
}
ContadorCanal[NCanal]=ContadorNocheCanal[NCanal]; // cambiando el valor cambia el tiempo de dimeo entre amanecer y atardecer
}
}
///////////////////////////////////////////////////////////////////////////////////////////////

/////////Funcion de pintado pantalla principal////////////
void PantallaPrincipal() {
lcd.setCursor(0, 0);
if (dayOfMonth < 10) lcd.print ("0");
lcd.print(dayOfMonth, DEC);
lcd.print("/");
if (hour < 10) lcd.print ("0");
lcd.print(hour, DEC);
lcd.print(":");
if (minute < 10) lcd.print ("0");
lcd.print(minute, DEC);
lcd.print(":");
if (second < 10) lcd.print ("0");
lcd.print(second, DEC);
lcd.print(" T Ac:");
//dimeo en LCD/
lcd.setCursor(0, 1);
lcd.print("B1:"); //// canal 1
if (FadeValueCanal[0]<10) lcd.print ("00");
if (FadeValueCanal[0]<100 && FadeValueCanal[0]>9 ) lcd.print ("0");
lcd.print(FadeValueCanal[0]);
lcd.print(" B2:"); //// canal2
if (FadeValueCanal[1]<10) lcd.print ("00");
if (FadeValueCanal[1]<100 && FadeValueCanal[1]>9 ) lcd.print ("0");
lcd.print(FadeValueCanal[1]);
lcd.print(" B3:"); ////canal3
if (FadeValueCanal[2]<10) lcd.print ("00");
if (FadeValueCanal[2]<100 && FadeValueCanal[2]>9 ) lcd.print ("0");
lcd.print(FadeValueCanal[2]);
lcd.setCursor(0, 2);
lcd.print("B4:"); //// canal 4
if (FadeValueCanal[3]<10) lcd.print ("00");
if (FadeValueCanal[3]<100 && FadeValueCanal[3]>9 ) lcd.print ("0");
lcd.print(FadeValueCanal[3]);
lcd.print(" B5:"); //// canal5
if (FadeValueCanal[4]<10) lcd.print ("00");
if (FadeValueCanal[4]<100 && FadeValueCanal[4]>9 ) lcd.print ("0");
lcd.print(FadeValueCanal[4]);
lcd.print(" B6:"); ////canal6
if (FadeValueCanal[5]<10) lcd.print ("00");
if (FadeValueCanal[5]<100 && FadeValueCanal[5]>9 ) lcd.print ("0");
lcd.print(FadeValueCanal[5]);
lcd.setCursor(0, 3);
lcd.print("B7:"); //// canal 7
if (FadeValueCanal[6]<10) lcd.print ("00");
if (FadeValueCanal[6]<100 && FadeValueCanal[6]>9 ) lcd.print ("0");
lcd.print(FadeValueCanal[6]);
lcd.print(" B8:"); //// canal 8
if (FadeValueCanal[7]<10) lcd.print ("00");
if (FadeValueCanal[7]<100 && FadeValueCanal[7]>9 ) lcd.print ("0");
lcd.print(FadeValueCanal[7]); //
lcd.print(" OK men"); //

}
////////////////////////////////////////////////////////
////// Fumcion toma datos desde el mado /////
void TomaDatos()
{
lcd.setCursor(0, 1);
lcd.print(" ");
for (int i=0; i<19; i++){dato=' ';}
i=0;
ircode=0;
do
{
if (irrecv.decode(&results)) {
ircode = results.value;
irrecv.resume(); // Receive the next value
}
switch (ircode) {
case mando_Menu:
dato= '/';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_EPG:
dato= ':';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_1:
dato='1';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_2:
dato='2';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_3:
dato= '3';
i++;;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_4:
dato= '4';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_5:
dato= '5';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_6:
dato= '6';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_7:
dato= '7';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_8:
dato= '8';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_9:
dato= '9';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_0:
dato= '0';
i++;
lcd.setCursor(0, 1);
lcd.print(dato);
ircode=0;
break;
case mando_Clear:
lcd.setCursor(0, 1);
lcd.print(" ");
for (int i=0; i<15; i++){dato=' ';}
i=0;
ircode=0;
break;
}
//wdt_reset(); // reinicia el perro
} while (ircode != mando_Exit);
}
//////////////////////////////////////////////////////
/////////////////// Menu Prinipal ////////////
void Menu(){
lcd.clear();
ircode=0;
lcd.print("Menu Principal Setup");
lcd.setCursor(0, 1);
lcd.print("1-Canales 2-Sin USO ");
lcd.setCursor(0, 2);
lcd.print("3-Sin USO 4-Sin USO ");
lcd.setCursor(0, 3);
lcd.print("5-Sin USO 6-Toma Dat");
do
{
//wdt_reset(); // reinicia el perro
if (irrecv.decode(&results)) {
ircode = results.value;
irrecv.resume(); // Receive the next value
}
switch (ircode) {
case mando_1:
MenuCanales();
break;
case mando_2:
/// sin uso
break;
case mando_3:
///opcion 1
break;
case mando_4:
///opcion 1
break;
case mando_5:
///opcion 1
break;
case mando_6:
CambioHora();
break;
}
}while (ircode != mando_Exit);

lcd.clear();
}
/////////////////Opcion cambio de hora//////////////////////
void CambioHora()
{
lcd.clear();
int minuteDato, hourDato, dayOfMonthDato, monthDato, yearDato;
lcd.setCursor(0, 0);
if (hour < 10) lcd.print ("0");
lcd.print(hour, DEC);
if (minute < 10) lcd.print ("0");
lcd.print(":");
lcd.print(minute, DEC);
lcd.print("/");
if (dayOfMonth < 10) lcd.print ("0");
lcd.print(dayOfMonth, DEC);
lcd.print("/");
if (month < 10) lcd.print ("0");
lcd.print(month, DEC);
lcd.print("/");
lcd.print(year, DEC);
TomaDatos();
hourDato = atoi(strtok (dato,":/"));
minuteDato=atoi(strtok (NULL,":/"));
dayOfMonthDato=atoi(strtok (NULL,":/"));
monthDato=atoi(strtok (NULL,":/"));
yearDato =atoi(strtok (NULL,":/"));
second = 00;
minute = minuteDato;
hour = hourDato;
dayOfWeek = 6;
dayOfMonth = dayOfMonthDato;
month = monthDato;
year = yearDato;
/* setDateDs1307(byte second, // 0-59
byte minute, // 0-59
byte hour, // 1-23
byte dayOfWeek, // 1-7
byte dayOfMonth, // 1-28/29/30/31
byte month, // 1-12
byte year) // 0-99
*/
Wire.beginTransmission(Reloj_I2C);
Wire.send(0);
Wire.send(decToBcd(second));
Wire.send(decToBcd(minute));
Wire.send(decToBcd(hour));
Wire.send(decToBcd(dayOfWeek));
Wire.send(decToBcd(dayOfMonth));
Wire.send(decToBcd(month));
Wire.send(decToBcd(year));
Wire.endTransmission();
}
////////////////////////Menu canales//////////////////////////////////
void MenuCanales() {
lcd.clear();
ircode=0;
NOpcion=0;
//NCanal=0;
lcd.print("Selec Canal 1-8 Para");
lcd.setCursor(0, 1);
lcd.print(" -Modifica Parametro");
lcd.setCursor(0, 2);
lcd.print(" -Sub/Baj Potencia ");
lcd.setCursor(0, 3);
lcd.print(" -Power ON/OFF ");
do
{
//wdt_reset(); // reinicia el perro
if (irrecv.decode(&results)) {
ircode = results.value;
irrecv.resume(); // Receive the next value
}

switch (ircode) {
case mando_1:
NOpcion=0;
break;
case mando_2:
NOpcion=1;
break;
case mando_3:
NOpcion=2;
break;
case mando_4:
NOpcion=3;
break;
case mando_5:
NOpcion=4;
break;
case mando_6:
NOpcion=5;
break;
case mando_7:
NOpcion=6;
break;
case mando_8:
NOpcion=7;
break;
}
}while (NOpcion == 0);

lcd.clear();
ircode=0;
lcd.print("Selec Opicion Can: ");
lcd.print(NOpcion+1);
lcd.setCursor(0, 1);
lcd.print("1-Modifica Parametro");
lcd.setCursor(0, 2);
lcd.print("2-Sub/Baj Potencia ");
lcd.setCursor(0, 3);
lcd.print("3-Power ON/OFF ");
do
{

//wdt_reset(); // reinicia el perro
if (irrecv.decode(&results)) {
ircode = results.value;
irrecv.resume(); // Receive the next value
}
switch (ircode) {
case mando_1:
ModParametroCanal();
break;
case mando_2:
ValorFader();
break;
case mando_3:
// NCanal=3;
if (PowerE ==1)
{
digitalWrite(PowerFuente,HIGH);
PowerE = 0;
//ircode =0;
}
else
{
digitalWrite(PowerFuente,LOW);
PowerE =1;
//ircode =0;
}
break;
}
}while (ircode != mando_Exit);
}
///////////////Menu Modificar Parametros////////////////////////////////
void ModParametroCanal() {
lcd.clear();
ircode=0;
lcd.print("Mod. Opc 1-6 Canal ");
lcd.print(NOpcion+1);
lcd.setCursor(0, 1);
lcd.print("1-Hora OFF 2-Hora ON");
lcd.setCursor(0, 2);
lcd.print("3-Fade Max 4-Ti Dime");
lcd.setCursor(0, 3);
lcd.print("5-T D Noch 6-T D Amc");
do
{
//wdt_reset(); // reinicia el perro
if (irrecv.decode(&results)) {
ircode = results.value;
irrecv.resume(); // Receive the next value
}
switch (ircode) {
case mando_1:
lcd.clear();
lcd.setCursor(0, 2);
lcd.print("Hora ON: ");
lcd.print (HoraONCanal[NOpcion]);
lcd.print (" :");
lcd.print (MinutoONCanal[NOpcion]);
lcd.setCursor(0, 3);
lcd.print("CLEAR SETUP");
lcd.setCursor(0, 0);
lcd.print("Hora OFF: ");
lcd.print (HoraOFFCanal[NOpcion]);
lcd.print (":");
lcd.print (MinutoOFFCanal[NOpcion]);
TomaDatos();
HoraOFFCanal[NOpcion] = atoi(strtok (dato,":/"));
MinutoONCanal[NOpcion]=atoi(strtok (NULL,":/"));
analogWrite (PWMCanal[NOpcion],HoraOFFCanal[NOpcion]);
////////////
////////////
break;
case mando_2:
lcd.clear();
lcd.setCursor(0, 2);
lcd.print("Hora OFF: ");
lcd.print (HoraOFFCanal[NOpcion]);
lcd.print (":");
lcd.print (MinutoOFFCanal[NOpcion]);
lcd.setCursor(0, 3);
lcd.print("CLEAR SETUP");
lcd.setCursor(0, 0);
lcd.print("Hora ON : ");
lcd.print (HoraONCanal[NOpcion]);
lcd.print (":");
lcd.print (MinutoONCanal[NOpcion]);
TomaDatos();
HoraONCanal[NOpcion] = atoi(strtok (dato,":/"));
MinutoONCanal[NOpcion]=atoi(strtok (NULL,":/"));
//////////////
break;
case mando_3:
lcd.clear();
lcd.setCursor(0, 3);
lcd.print("CLEAR SETUP");
lcd.setCursor(0, 0);
lcd.print("Valor Fader Max: ");
lcd.print (FadeValueMaxCanal[NOpcion]);
TomaDatos();
FadeValueMaxCanal[NOpcion] = atol (dato);
//////////////////////
break;
case mando_4:
lcd.clear();
lcd.setCursor(0, 3);
lcd.print("CLEAR SETUP");
lcd.setCursor(0, 2);
lcd.print("T Amc: ");
if (ContadorDiaCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (ContadorDiaCanal[NOpcion]);
lcd.print(" T Noch: ");
if (ContadorNocheCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (ContadorNocheCanal[NOpcion]);
lcd.setCursor(0, 0);
lcd.print("Tiempo Dimeo: ");
if (TiempoDimeoCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (TiempoDimeoCanal[NOpcion]);
TomaDatos();
TiempoDimeoCanal[NOpcion] = atol (dato);
///////////////////////
break;
case mando_5:
lcd.clear();

lcd.setCursor(0, 3);
lcd.print("CLEAR SETUP");
lcd.setCursor(0, 2);
lcd.print("T Dim: ");
if (TiempoDimeoCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (TiempoDimeoCanal[NOpcion]);
lcd.print(" T Amc: ");
if (ContadorDiaCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (ContadorDiaCanal[NOpcion]);
lcd.setCursor(0, 0);
lcd.print("Tiempo Noch: ");
if (ContadorNocheCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (ContadorNocheCanal[NOpcion]);
TomaDatos();
ContadorNocheCanal[NOpcion] = atol (dato);
//////////////////////
break;
case mando_6:
lcd.clear();
lcd.setCursor(0, 3);
lcd.print("CLEAR SETUP");
lcd.setCursor(0, 2);
lcd.print("T Dim: ");
if (TiempoDimeoCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (TiempoDimeoCanal[NOpcion]);
lcd.print(" T Noch: ");
if (ContadorNocheCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (ContadorNocheCanal[NOpcion]);
lcd.setCursor(0, 0);
lcd.print("Tiempo Amc: ");
if (ContadorDiaCanal[NOpcion] < 10) lcd.print ("0");
lcd.print (ContadorDiaCanal[NOpcion]);
TomaDatos();
ContadorDiaCanal[NOpcion] = atol (dato);
///////////////////////
}
}while (ircode != mando_Exit);
lcd.clear();
}
////////////////////menu subir potencia con cursor//////////
void ValorFader() {
lcd.clear();
lcd.setCursor(0, 3);
lcd.print(" SETUP");
lcd.setCursor(0, 0);
lcd.print("Cnal ");
lcd.print((NOpcion+1));
lcd.print(" En PotMax ");
lcd.print(FadeValueMaxCanal[NOpcion]);
analogWrite (PWMCanal[NOpcion],FadeValueMaxCanal[NOpcion]);
do
{
//wdt_reset(); // reinicia el perro
if (irrecv.decode(&results)) {
ircode = results.value;
irrecv.resume(); // Receive the next value
}
if (ircode == mando_Sube) {
FadeValueMaxCanal[NOpcion]=FadeValueMaxCanal[NOpcion]+1;
ircode=0;
analogWrite (PWMCanal[NOpcion],FadeValueMaxCanal[NOpcion]);
lcd.setCursor(0, 1);
lcd.print("Potencia Max Act");
lcd.print(FadeValueMaxCanal[NOpcion]);
}
if (ircode == mando_Baja) {
FadeValueMaxCanal[NOpcion]=FadeValueMaxCanal[NOpcion]-1;
ircode=0;
analogWrite (PWMCanal[NOpcion],FadeValueMaxCanal[NOpcion]);
lcd.setCursor(0, 1);
lcd.print("Potencia Max Act");
lcd.print(FadeValueMaxCanal[NOpcion]);
}
}while (ircode != mando_Exit);
analogWrite (PWMCanal[NOpcion],FadeValueCanal[NOpcion]);
}

Gracias.
 
Ya he conseguido que funcione el mando.
Ahora a configurar los menus.
Saludos.
 
Atrás
Arriba