jueves, 27 de mayo de 2021

Encender 2 leds en arduino

 Imagen del montaje



img.png

Código

PUEDES HACER COPÌA Y PEGA DEL CÓDIGO.

Se escribe en el IDE de ARDUINO, se le da a VERIFICAR y luego a CARGAR.


int led_1 = 11; //Led (1) para 3 seg
int led_2 = 12; //Led (2)para 1 seg
bool state_1 = LOW; //Estado led_1
bool state_2 = HIGH; //Esatdo led_2

/*
 * Variables auxiliares para intervalo
 * Tiempo
 */
unsigned long previousMillis = 0; 
unsigned long previousMillis_2 = 0;    

void setup() {
  /*Salida¨*/
  pinMode(led_1, OUTPUT); 
  pinMode(led_2, OUTPUT);
  /* LOW (led encendido) HIGH(led apagado)*/
  digitalWrite(led_1 , state_1); 
  digitalWrite(led_2 , state_2);
}


void loop() {
  unsigned long currentMillis = millis();
  /*
   * Intervalo de 3 segundos para encender y apagar led_1
   */
  if(currentMillis - previousMillis >= 3000){
      previousMillis = currentMillis;
      if(state_1){
        state_1 = LOW; // Led_1 ON
        state_2 = HIGH;// Led_2 OFF  
      }else{
        state_1 = HIGH;  // Led_1 OFF
        state_2 = LOW;   // Led_2 ON
      }
       digitalWrite(led_1, state_1);
       digitalWrite(led_2, state_2);
    }

    unsigned long currentMillis_2 = millis(); 
    /*
   * Intervalo de 1 segundo para encender y apagar led_2
   */
    if(currentMillis_2 - previousMillis_2 >= 1000){
      previousMillis_2 = currentMillis_2;
      if(state_2){
        state_2 = LOW;  // Led_2 ON
        state_1 = HIGH; // Led_1 OFF
      }else{
        state_2 = HIGH; // Led_2 OFF
        state_1 = LOW;  // Led_1 ON
      }
       digitalWrite(led_1, state_1);
       digitalWrite(led_2, state_2);
    }
}
La función Millis() retorna el número de milisegundos desde que el Arduino comenzó a correr el programa. 

Como se puede notar, con la condición if(currentMillis - previousMillis >= intervalo) se enciende y se apaga el LED. Esta condición depende del valor que retorna Millis() y se guarda en la variable currentMillis. Mientras no se cumpla el intervalo asignado un LED permanecerá encendido y el otro apagado según sea el caso. Este código se encarga de hacer retardos sin necesidad de usar la función delay(). 


REALIZA LO MISMO PERO AHORA EN VEZ DE 3 SEGUNDOS PARA 5 SEGUNDOS Y PARA 1 SEGUNDO

No hay comentarios:

Publicar un comentario