Cargar un Array de datos con For, los datos están disponibles cada 15 seg en sincronía con Millis
Publicado por Cacu (1 intervención) el 24/02/2021 18:07:44
Hola a todos y gracias de antemano por la ayuda!!!
Explico desde cero el problema:
En el loop tengo un bloque que cuenta pulsos de un sensor:
(Este debe estar todo el tiempo funcionando por lo que debo evitar el uso de Delay en el resto del codigo)
El problema esta cuando quiero usar cada 15 segundos, los pulsos que conté en contPulsos e ir completando un array de datos.
Las aproximaciones que tengo que no resuelven el tema son la siguientes:
Calculo que lo estoy encarando mal, reconozco que nunca estudié programación. Cualquier ayuda o consejo que puedan darme será muy agradecido. Saludos!!!!
Explico desde cero el problema:
En el loop tengo un bloque que cuenta pulsos de un sensor:
(Este debe estar todo el tiempo funcionando por lo que debo evitar el uso de Delay en el resto del codigo)
1
2
3
4
5
6
7
8
int estado = digitalRead(D1);
if (estado == HIGH) {
estadoSalida = 1;
}
if (estadoSalida == 1 && estado == LOW) {
contPulsos++;
estadoSalida = 0;
}
El problema esta cuando quiero usar cada 15 segundos, los pulsos que conté en contPulsos e ir completando un array de datos.
Las aproximaciones que tengo que no resuelven el tema son la siguientes:
1
2
3
4
5
6
7
8
9
10
11
12
for (p = 0; p < N; p++)
{ if (millis() > (starTime + tiempoCiclo)) {
velPulsos = (contPulsos * 0.242);
datos[p] = velPulsos;
Serial.print("Posicion:");
Serial.print(p);
Serial.print("Velocidad:");
Serial.print(datos[p]);
starTime = millis();
contPulsos = 0;
}
}
Calculo que lo estoy encarando mal, reconozco que nunca estudié programación. Cualquier ayuda o consejo que puedan darme será muy agradecido. Saludos!!!!
Valora esta pregunta


0