CCCPaste

BlinkIncremental

//Blink Incremental
/*Iniciar con un led destellando en modo (a), luego de 10seg cambiar el destello a modo (b),
y 5 segundos más tarde cambiar el destello al modo (c), luego de 5 segundos,
repetir el ciclo, es decir retornar el destello al modo (a).
Modos:
a) t_on=200ms, período= 3seg (t_off=2800ms apagado)
b) t_on=250ms, periodo= 1seg (t_off=750ms apagado)
c) t_on=500ms, periodo= 1seg (t_off=500ms apagado)*/
 
#define PIN_LED 		  13
#define CONFIGURAR_LED    pinMode(PIN_LED, OUTPUT)
#define ENCENDER_LED      digitalWrite(PIN_LED, HIGH)
#define APAGAR_LED        digitalWrite(PIN_LED, LOW)  
 
int modo = 0;              
 
void setup()
  {  
  CONFIGURAR_LED;
  ENCENDER_LED;
  Serial.begin(9600);
  Serial.println("Iniciado...");
  }
 
void loop()
  {
  Modo();
  Led();
  delay(10);            
  }
 
 
 
void Modo (void)
  {
  const unsigned int modoA = 10000 , modoB = 5000 , modoC = 5000;
  static unsigned long millis_modo=0;
  static unsigned long tpo_modo= modoA;  
       
  if(millis()- millis_modo < tpo_modo) return;
  millis_modo = millis();
  
  modo++;

  switch(modo)
    {
    case 1: tpo_modo = modoB; break;
    case 2: tpo_modo = modoC; break;
    default: 
      modo=0;
      tpo_modo = modoA; break;
    }
    
  Serial.print("modo: ");
  Serial.println(modo);
  }
 
       
void Led(void)
  {
    const unsigned int t_offA = 2800 , t_onA = 200 , t_offB = 750 , t_onB= 250 , t_offC = 500 , t_onC = 500;
    static bool estado=1;
    static unsigned long millis_ant = 0;  
    static unsigned long tpo_espera = t_onA;
   
    if(millis() - millis_ant < tpo_espera) return;
    millis_ant =  millis();
    
    estado = !estado;
       
    switch (modo)
      {
      case 0: tpo_espera = estado ? t_onA : t_offA; break;
      case 1: tpo_espera = estado ? t_onB : t_offB; break;                
      case 2: tpo_espera = estado ? t_onC : t_offC; break;             
      }
     
  if(estado)  ENCENDER_LED;
  else        APAGAR_LED;
   
  }

  //Sketch=2658       --> 2642
  //Var. Globales=226 --> 226