Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement