Go Down

Topic: temporizado en enceder y apagar dos leds con efecto estroboscopicos (Read 493 times) previous topic - next topic

mmauronn

buenas agradecería si me ayudaran con el siguiente proyecto

el cual consiste en tener encendios dos leds con efecto estroboscopicos durante 15 segundos despues que pase los 15 segundos deberian apagarse y durar 45 segundos apagados y repetir este proceso inifinitamente

a continuacion dejo el codigo del efecto estroboscopico




int ledazul = 8;
int ledrojo = 7;
int tiempo   = 100;

void setup() {               
    pinMode(ledazul, OUTPUT);     
    pinMode(ledrojo, OUTPUT);
       
}

void loop() {

  digitalWrite(ledazul, HIGH);     
  delay(tiempo);                           
  digitalWrite(ledazul, LOW);     
  delay(tiempo);                     
  digitalWrite(ledazul, HIGH);     
  delay(tiempo);                           
  digitalWrite(ledazul, LOW);     
                       
 
  digitalWrite(ledrojo, HIGH);     
  delay(tiempo);                           
  digitalWrite(ledrojo, LOW);     
  delay(tiempo);                     
  digitalWrite(ledrojo, HIGH);     
  delay(tiempo);                     
  digitalWrite(ledrojo, LOW);     
 
 
 }


en pocas palabras quiero que este proceso se me repita por 15 segundos y despues quede apagado totalmente por 45 segundo apenas acabe los 45 segundo vuelve y empieza ,,, le agradeceria mucho si me colaboran con este proyecto

max_saeta

Saludos
Primero debes leer las normas del foro. Para publicar un codigo existe en la parte de edicion un icono que se muestra como una hoja con mayor y menor que <>;

El codigo queda de la siguiente manera:

Code: [Select]

#define ledazul  8
#define ledrojo  7
int tiempo   = 100;
int t_encendi=15000;
int t_apagado=45000;
unsigned long t_control;


void setup() {               
    pinMode(ledazul, OUTPUT);     
    pinMode(ledrojo, OUTPUT);
}

void loop() {
t_control=millis();
while(millis()-t_control < t_encendi){
  for (int i =0; i < 2; i++){
    digitalWrite(ledazul, HIGH);     
    delay(tiempo);                           
    digitalWrite(ledazul, LOW);     
    delay(tiempo);                     
  }
  for (int i =0; i < 2; i++){
    digitalWrite(ledrojo, HIGH);     
    delay(tiempo);                           
    digitalWrite(ledrojo, LOW);     
    delay(tiempo);                     
  }   
}
t_control=millis();
while(millis()-t_control < t_apagado){} 
 }


Prueba esta codigo y me dices que tal te funciona.

Go Up