Hola a todos,
Soy Juanma y estoy con un amigo en un proyecto con Arduino para poder programar el riego automático y que se dispare a la hora que nosotros queramos.
Antes de nada decir que somos muy novatos en esto de Arduino... jejeje
Estamos usando la libreria "Alarm" que trae Arduino, pero no nos acaba de funcionar como esperamos.... Os cuento nuestros problemas a ver si me podéis echar una mano.
Para crear la alarma usamos "Alarm.alarmrepeat" y funciona perfectamente incluso escribiendola varias veces, salvo cuando llega a 6, que deja de funcionar... (Entendemos que esto es porque tiene un total de 6 alarmas)
Y hemos visto que existe "Alarm.write" pero eso no nos funciona...
La alarma la cogemos de una web, y lo que queremos es poder cambiar una alarma para que se ejecute a la hora que queramos, sin necesidad de usar cada vez una alarma distinta.
Me explico bastante mal, asique pongo ejemplo:
void ResolverDatos(String cadena){
int posIni=cadena.indexOf('body');
int posFin=cadena.lastIndexOf('body');
S1=cadena.substring(cadena.indexOf("S1")+3,cadena.indexOf("-S1")-1);
S2=cadena.substring(cadena.indexOf("S2")+3,cadena.indexOf("-S2")-1);
S3=cadena.substring(cadena.indexOf("S3")+3,cadena.indexOf("-S3")-1);
time=S1.substring(0, S1.indexOf(';'));
laps=S1.substring(S1.indexOf(';')+1,S1.lastIndexOf(';'));
rep=S1.substring(S1.lastIndexOf(';')+1);
h=time.substring(0,2);
m=time.substring(3,5);
long alarm1Value=(ConvertStringtoLong(h)*3600)+ (ConvertStringtoLong(m)*60);
time=S2.substring(0, S2.indexOf(';'));
laps=S2.substring(S2.indexOf(';')+1,S2.lastIndexOf(';'));
rep=S2.substring(S2.lastIndexOf(';')+1);
h=time.substring(0,2);
m=time.substring(3,5);
long alarm2Value=(ConvertStringtoLong(h)*3600)+ (ConvertStringtoLong(m)*60);
time=S3.substring(0, S3.indexOf(';'));
laps=S3.substring(S3.indexOf(';')+1,S3.lastIndexOf(';'));
rep=S3.substring(S3.lastIndexOf(';')+1);
h=time.substring(0,2);
m=time.substring(3,5);
long alarm3Value=(ConvertStringtoLong(h)*3600)+ (ConvertStringtoLong(m)*60);
if (Alarm.read(myAlarm) != alarm1Value) {
myAlarm=Alarm.alarmRepeat(alarm1Value, MorningAlarm);
}
if (Alarm.read(myAlarm2) != alarm2Value) {
myAlarm2=Alarm.alarmRepeat(alarm2Value, MorningAlarm);
}
if (Alarm.read(myAlarm3) != alarm3Value) {
myAlarm3=Alarm.alarmRepeat(alarm3Value, MorningAlarm);
}
Asi es como lo tenemos ahora, pero al cambiar 6 veces la hora desde la web deja de funcionar, y lo que queremos es usar sólo 3 alarmas pero poder cambiar la hora cuantas veces queramos. Pero parece ser que el arduino cada cambio de hora la toma como una alarma nueva, y esto no nos vale...
Un saludo y muchas gracias de antemano