//https://pastebin.com/9fEnxkgr
30/06/2020
char fecha[]={"200630"}; //AAMMDD
char hora[]={"0959"}; //
IncrementarFecha(); //Incrementa en un día, la variable fecha
bool transmitir_hora=0;
loop()
{
ActualizarHora(); //Se encarga de mantener actualizada la hora
TransmisionSerie();
RecepcionSerie();
ActualizaDisplay();
SupervisaMenu();
ActualizarMenu();
CtrlAlarma();
}
voir ActualizarMenu(void)
{
static unsigned char opcion_ant=-1;
//Sigue en el menu
//se cambió de opción
if(opcion != opcion_)
switch(opcion)
{
}
opcion_ant=opcion;
}
#define ADC_PIN A5
#define LEER_ADC AnalogRead(ADC_PIN)
void SupervisaADC(void)
{
adc=LEER_ADC; //adc va de 0 a 1023
opcion=DeterminarPosicion(adc);
if(opcion==opcion_ant) return;
}
DeterminarPosicion(unsigned int valor)
{
if(valor < 250) return(OPCION_1); //0-25%
if(valor < 500) return(OPCION_2); //25-50%
if(valor < 750) return(OPCION_3); //50-75%
return(OPCION_4); //75-100%
}
void RecepcionSerie(void)
{
if(!Serial.available()) return;
if(!se_recibio_encabezado)
{
dato=Serial.read();
if(dato!='#') return;
se_recibio_encabezado=1;
return;
}
//#Actualiza--> Activar Alarma
//#FL
//#FA0923
dato=Serial.read();
switch(dato)
{
case 'F':
case 'A': armar=1; se_recibio_encabezado=0; break;
}
}
void TransmisionSerie(void)
{
if(tramisitir_hora)
{
transmitir_hora=0;
Serial.print(hora);
}
}
void ActualizarHora(void) //Actualiza la variable hora
{
//Si no pasaron 60 segundos, salir
if(millis() - millis_ini < 60000) return;
millis_ini=millis();
imprimir_hora=1;
if(hora[3]<'9')
{
hora[3]++;
return;
}
//las unidades de los minutos es 9
hora[3]='0';
if(hora[2]<'5')
{
hora[2]++; //Decenas de los minutos
return;
}
hora[2]=0;
//Incrementar la hora
//...
//Cuando llegue al final del día
IncrementarFecha();
}