Control con tiempo

Buenas soy un nuevo usuario de arduino.

Me gustaría saber como puedo averiguar el tiempo entre que se active una entrada que dispare un temporizador y otra entrada lo corte y que se me muestre ese tiempo para usarlo para algunos calculos.

Saludos y gracias

Para comenzar este es un tema para Software no para Proyectos!

La respuesta es usando millis(). Millis() es como un reloj en milisegundos que se activa cuando el arduino se energiza. Lleva la cuenta asi hasta los 49 dias 17hs aprox. Asi que tu puedes usarlo para preguntarle como si fuera un cronometro. Tiempo parcial 1 Tiempo parcial 2 Restas y tienes lo que preguntas.

perdon por no encontrar el sitio exacto del post

quieres decir que millis arranca en el momento q yo arranco arduino?

he usado millis antes pero no entiendo muy bien lo q me dices surbyte me podrias poner un ejemplo de codigo. GRACIAS

Google Arduino millis o busca el ejemplo de tu IDE: BlinkWithoutDelay.ino

// constants won't change. Used here to set a pin number :
const int ledPin =  13;      // the number of the LED pin

// Variables will change :
int ledState = LOW;             // ledState used to set the LED

// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0;        // will store last time LED was updated

// constants won't change :
const long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the
  // difference between the current time and last time you blinked
  // the LED is bigger than the interval at which you want to
  // blink the LED.
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }
}

si surbyte esto lo conozco, pero no se usarlo como tu me dices

millis() es un cronometro que lleva la cuenta en milisegundos desde que se energíza arduino. Si tomas un tiempo1 parcial y lo restas de un tiempo2 final, tendrás tu tiempo no?

un disparo de una entrada por ejemplo

// antes del setup defines
unsigned long tiempo1, tiempo2;
bool valor1, valor2;
bool valor1Ant = false; 
bool valor2Ant = false;

const byte Pin1 = 2; // por ejemplo
const byte Pin2 = 3; // entrada que cierra la cuenta 
//
codigo del setup y loop

//

      valor1 = digitalRead(Pin1);
      if (valor1 == HIGH&& valor1Ant == LOW)  { // si paso de 0 a 1 entonces disparo
         tiempo1 = millis();  // cargo tiempo1 con los miliseg desde que arrancó arduino y es mi arranque
      }
      valor1Ant = valor1;
      
     valor2 = digitalRead(Pin2);
      if (valor2 == HIGH&& valor2Ant == LOW)  { // si paso de 0 a 1 entonces disparo
         tiempo2 = millis()-tiempo1;  // cargo tiempo1 con los miliseg desde que arrancó arduino y es mi arranque
        Serial.print("Tiempo final =");
        Serial.println(tiempo2);
      }
      valor2Ant = valor2;

Algo asi.

muchas gracias surbyte

Te daras cuenta que le faltan cosas, solo te puse lo relevante

No desvirtues temas. Tu tema ponlo en un nuevo tópico. como ya te vi y se paciente.