Go Down

Topic: Problema con pausar pulsos  (Read 58 times) previous topic - next topic

rovalenz

Nov 15, 2017, 02:26 pm Last Edit: Nov 15, 2017, 03:01 pm by rovalenz
Hola a todos

soy estoy aprendiendo recian a usar arduino
estoy trabajando con un arduino uno, para hacer el cronometro de un marcador deportivo, generando un pulso cada segundo  y otro pulso cada un minuto, cuando se genera el pulso del minuto resetea el display de 7 segmentos para que los segundos cuenten hasta 60.
mi problema es la pausa, cuando activo la pausa solo corta los pulsos , pero no detiene el contador,

Code: [Select]
const int inputPin = A5;
const int ledPin2 =  A2;  // asigne pin A2 para minuto y el A1 para segundo
const int ledPin3 =  A1;
int ledState = LOW; 
int ledState1 = LOW;  // que partan apagados
long previousMillis = 0;   
long previousMillis1 = 0;
long intervalOn = 5;           
long intervalOff = 59995;       
long interval1On = 100;           
long interval1Off = 900;

unsigned long tiempo = 1000;

int val = 0; //val se emplea para almacenar el estado del boton
int state = 0; // 0 LED apagado, mientras que 1 encendido
int old_val = 0; // almacena el antiguo valor de val

int value = 0;
 
void setup() {

  pinMode(ledPin2, OUTPUT);
 pinMode(ledPin3, OUTPUT);
  pinMode(inputPin, INPUT);
 digitalWrite(ledPin2, LOW);
 digitalWrite(ledPin3, LOW);
}
 
void loop(){
     
  value = analogRead(inputPin);
    if (value == LOW) {
           unsigned long currentMillis1 = millis();
  if (ledState1 == LOW) {
    if(currentMillis1 - previousMillis1 > interval1Off) {
            previousMillis1 = currentMillis1;   
            ledState1 = HIGH;
    }
} else {
    if(currentMillis1 - previousMillis1 > interval1On) {
           previousMillis1 = currentMillis1;   
          ledState1 = LOW;
   
}
digitalWrite(ledPin2, ledState1);
 
       unsigned long currentMillis = millis();
  if (ledState == LOW) {
    if(currentMillis - previousMillis > intervalOff) {
            previousMillis = currentMillis;   
            ledState = HIGH;
    }
} else {
    if(currentMillis - previousMillis > intervalOn) {
           previousMillis = currentMillis;   
          ledState = LOW;
    }

digitalWrite(ledPin3, ledState);
 
       value = analogRead(inputPin);
    if (value == HIGH) {
    digitalWrite(ledPin2, LOW);
 digitalWrite(ledPin3, LOW);
       return;

}}}}}

saludos

Go Up