Hola
estoy en un proyecto y tengo varios sensores y tengo que contar el tiempo que se lleva en activar de un sensor al otro
eh realizado un contador y me imprime el tiempo cada segundo
por ejemplo se activa el sensor 1 e inicia a marcar el tiempo desde que se activo,luego se activa el sensor 2 sigue el contador desde donde quedo el contador del sensor 1
Si el sensor 1 queso en 5 segundos el sensor 2 continua e inicia en 6 segundos. Pero si el contador del sensor sigue hasta 10 segundos y se desactiva el Sensor 1 no prosigue en 11 como quiero si no que sigue en 6 ya que había quedado en 5 segundos anteriormente.
quisiera resolver esta duda para ya sea que se active un sensor o se desactive la secuencia del contador siga hasta llegar al ultimo sensor.
int contador[8]={0,0,0,0,0,0,0,0};
int sensor[8]={2,3,4,5,6,7,8,9};
int alarma=11;
#define cm 10;
void setup()
{
Serial.begin(9600);
for(int x=0;x<=7;x++)
{
pinMode(sensor[x],INPUT);
}
pinMode(alarma,OUTPUT);
}
void loop()
{
struct sensores
{
int No[8]={1,2,3,4,5,6,7,8};
char ubicacion[50]= "Ubicacion: 16°45'21.3''N 93 °09'22.8''W";
int altura[8]={5,25,45,65,85,105,125,145};
}st;
if(digitalRead(sensor[0])==1 && digitalRead(sensor[1])==0)
{
contador[0]++;
delay(1000);
Serial.print("Tiempo de lluvia: "); Serial.print(contador[0]); Serial.println(" Segundos");
Serial.print("Sensor No: "); Serial.println(st.No[0]);
Serial.println(st.ubicacion);
int a;
a=st.altura[0]*cm;
Serial.print("El nivel del agua es de: ");Serial.print(a); Serial.println(" mm de Precipitacion");
delay(1000); Serial.println("\n");
}
if(digitalRead(sensor[1])==1 && digitalRead(sensor[2])==0)
{
contador[1]=contador[0];
contador[1]++;
contador[0]=contador[1];
delay(1000);
Serial.print("Tiempo de lluvia: "); Serial.print(contador[1]); Serial.println(" Segundos");
Serial.print("Sensor No: "); Serial.println(st.No[1]);
Serial.println(st.ubicacion);
int a;
a=st.altura[1]*cm;
Serial.print("El nivel del agua es de: ");Serial.print(a); Serial.println(" mm de Precipitacion");
delay(1000); Serial.println("\n");
}
else
{
}
if(digitalRead(sensor[2])==1 && digitalRead(sensor[3])==0)
{
contador[2]=contador[1];
contador[2]++;
contador[1]=contador[2];
delay(1000);
Serial.print("Tiempo de lluvia: "); Serial.print(contador[2]); Serial.println(" Segundos");
Serial.print("Sensor No: "); Serial.println(st.No[2]);
Serial.println(st.ubicacion);
int a;
a=st.altura[2]*cm;
Serial.print("El nivel del agua es de: ");Serial.print(a); Serial.println(" mm de Precipitacion");
delay(1000); Serial.println("\n");
}