Hola, soy nuevo en esto relacionado con Arduino,
bien les explico, estoy trabajando en un proyecto escolar, este consta en caída libre,
hay 8 sensores infrarrojos (emisor y receptor), de los cuales necesito calcular el tiempo de lo que tarda un objeto en pasar sobre cada sensor.
Sensor1
Sensor2
Sensor3
Sensor4
Sensor5
Sensor6
Sensor7
Sensor8
Lo que deseo calcular en segundos es el tiempo que tarda el objeto en pasar entre el sensor 1 y 2, 2 y 3, etc.
Tiempo12
Tiempo23
Tiempo34
Tiempo45
Tiempo56
Tiempo67
Tiempo78
Como les había dicho, apenas voy iniciando y no se mucho de programación.
Cualquier ayuda es bienvenida.
De antemano gracias.
Este mensaje fue movido por mi, porque donde lo publicaste no corresponde.
En donde escribiste tu mensaje original hay mensajes que debiste de haber leído.
No usar esta parte del foro
Normas del foro que más que normas a seguir con verticalidad son consejos para hacerte entender mejor.
Usa millis() para resolverlo.
millis() es un cronometro en milisegundos que te da el tiempo en mseg desde que se energiza el Arduino.
Define variables T1, T2 ... T8 como unsigned long y tambien un T0 el tiempo con el que arrancas que no será 0 sino que tendra un valor
Luego cuando arrancas indicalo con un pulsador y lo primero que debes hacer es tomar el tiempo que tiene millis() en ese instante.
Supongamos T0 = 1250 mseg por dar un valor.
Tambien supone que a los 2400 mseg pasa por el segundo y lo cargas al detectarlo con T2 = millis()
y asi lo mismo con T3 cuando se dispare y con T8 cuando termine.
Luego restando T1-T0 tienes el primer intervalo y asi contra T0 obtienes cada lectura.
Cada disparo será efectuado por tus detectores IR.
Dime si lo comprendes?
Muchisimas gracias por la respuesta surbyte
estuve escribiendo el codigo respecto a su respuesta
solamente lo hice para un tiempo, aqui dejo el codigo respecto a lo que entendi de su respuesta, si estoy equivocado en algo por favor hagamelo saber.
Gracias!
#include <LiquidCrystal.h>
//Definiendo los pines que se van a usar del LCD
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int sensor1= 0;
int sensor2 = 1;
int sensor3= 6;
int sensor4 = 7;
int sensor5= 8;
int sensor6 = 9;
int sensor7= 13;
int sensor8 = A0;
unsigned long tiempo1;
unsigned long tiempo2;
unsigned long tiempo3;
unsigned long tiempo4;
unsigned long tiempo5;
unsigned long tiempo6;
unsigned long tiempo7;
unsigned long tiempo8;
float tiempo12, tiempo23, tiempo34, tiempo45, tiempo56, tiempo67, tiempo78;
void setup()
//lcd.begin(16, 2);
{
lcd.begin(16, 2);
lcd.setCursor(0, 1);
pinMode(sensor1,INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3,INPUT);
pinMode(sensor4, INPUT);
pinMode(sensor5,INPUT);
pinMode(sensor6, INPUT);
pinMode(sensor7,INPUT);
pinMode(sensor8, INPUT);
}
void loop()
{
lcd.print("Detectando... ");
while (!digitalRead(sensor1)) { }
tiempo1=millis();
while (!digitalRead(sensor2)) { }
tiempo12 = millis()-tiempo1;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("T12: ");
lcd.println(tiempo12);
delay (10000);
lcd.clear();
}