Duda con condicional de arduino

Tengo una duda respecto a arduino.

Lo que quiero lograr es que una función espere cierto tiempo hasta que se cumpla la condicional para continuar con la otra y no sé si me servirá el "if"
Por ejemplo: quiero que espere a que le llegue tres pulsos con 1 segundo de diferencia cada uno del pin analógico para que continúe.
if (estadol > 400)
Esto es más o menos lo que tenía pensado pero no me sirve porque apenas llega el primer pulso continua con las siguientes funciones.

Postdata: soy nuevo en esto agradecería la ayuda, por-favor.
 
Tengo una duda respecto a una duda con arduino
:oops: :oops: :oops: :oops: :oops: :oops: :unsure: :unsure: :unsure:

lo que quiero lograr es que una funcion espere cierto tiempo hasta que se cumpla la condicional para continuar con la otra y no se si me servira el "if"
Depende...

por ejemplo quiero que espere a q le llegue tres pulsos con 1 segundo de diferencia cada uno del pin analogico para que continue

if (estadol > 400)
Y...si vos decís....
Como nosotros no sabemos cual es el problema que tenes que resolver, te imaginarás que no sabemos que decirte.
post: soy nuevo en esto agradeceria la ayuda porfa
Me suena a un trabajo de clase que tenes que resolver y no tenés NPI por donde empezar, lo que se soluciona ESTUDIANDO o buscando los montones de temas que hablan de eso.
 
Escribe de manera correcta y legible. Estás en un Foro, no en un chat.
¿De qué?

Y...si vos decís....
Como nosotros no sabemos cual es el problema que tenes que resolver, te imaginarás que no sabemos que decirte.
Por ejemplo: quiero que la función espere a que le llegue tres pulsos con 1 segundo de diferencia cada uno del pin analógico para que continúe con la siguiente función.

Me suena a un trabajo de clase que tenes que resolver y no tenés NPI por donde empezar, lo que se soluciona ESTUDIANDO o buscando los montones de temas que hablan de eso.
Lo de trabajo de clase, no, porque ya me gradué hace algunos años, solo que de otra carrera.
Soy hobista porque me encanta el tema y lo de no tener idea, eso sí es verdad. :LOL:
Por eso pregunto a ver si me horientan por dónde comenzar o alguna idea de cómo hacerlo.

Y lo de if (estadol > 400) es para que sepan qué señal recibe "estadol" que es la variable de la entrada y que se active cuando supere el valor de 400
 
La forma patatera de esperar es poner un retardo o delay.

Llamas a la función:
Func1(parámetros);


Func1(Parámetros){
Delay(el tiempos que sea);
Func1(parámetros); // llamas a la segunda función.

}


La absurderia de las absurdancias. No entiendo nada tu planteamiento, si explicas para qué sirve esa cosa a lo mejor te proponemos una solución.


Tu respuesta del segundo post la entiendo menos que el primero:

"Depende" es que depende de todo y como tú explicas nada, pues no sabemos por dónde ni hacia adónde vas.

"Por ejemplo", no pongas ejemplos, explica lo que quieres hacer.
Hablas de picos en un pin analógico, ¿Que pulsos, de que forma, de que amplitud, que es pico y que no es pico?
La forma más sencilla es leer una entrada analógica y superado cierto nivel eso cuenta por pico y por debajo no cuenta... Pero si el pico es muy largo se mantendrá mucho rato por encima del nivel y tendrás las tres lecturas mayores que x en un solo pico. Así que después de contar un pico tienes que verificar la ausencia de pico para contar el siguiente pico. Pero si el pico es rápido, la entrada analógica del Arduino es leeeeeeeeeeeetiiiiiiiiiiisiiiiiiiiimaaaaaaaa por algún motivo que alguien sabrá, y entondes es más que probable que pierdas el pico entero entre lectura y lectura.
Pero según sea el resto de tu código de exigente es probable que puedas leer aún más lento que eso el pin.
Pero si puedes convertir la señal analógica a digital con un trigger entonces podrás usar una interrupción.
Pero después del contador de picos aparece por ahí if estadio>400 que no sabemos de dónde viene, si de contar 400 picos, 400ms o 400 que

Osea "depende" la respuesta es lo que viene siendo "depende". Sobre todo depende de como expliques qué es lo que quieres hacer y que llevas hecho.
 
Y... Ya que estas y mientras respondes "para qué sirve lo que estas queriendo hacer", publica el codigo que estas usando, quizas en el contexto se entienda mejor.

Yo creo que con alguna interrupcion, o maquina de estado, quizas con switch-case, o similar.

PD: Mira mi firma para saber cómo subir o formatear el codigo
 
Tengo una duda respecto a arduino.

Lo que quiero lograr es que una función espere cierto tiempo hasta que se cumpla la condicional para continuar con la otra y no sé si me servirá el "if"
Por ejemplo: quiero que espere a que le llegue tres pulsos con 1 segundo de diferencia cada uno del pin analógico para que continúe.
if (estadol > 400)
Esto es más o menos lo que tenía pensado pero no me sirve porque apenas llega el primer pulso continua con las siguientes funciones.

Postdata: soy nuevo en esto agradecería la ayuda, por-favor.
Hay algo que me resuena de lo que comentas. Si decís que por ejemplo, queres esperar a que lleguen 3 pulsos con un segundo de diferencia, y lo haces leyendo el pin analógico, por definición el pulso es una señal digital, o sea 1 y 0, con lo cual la lectura por un pin analógico se vería como un valor de 1023 para un 1 digital y un 0 para un 0 digital, quizás ahí está la cuestión. Pero bueno, sin más datos, más no se puede decir.
 
Hay muchas maneras de resolver un problema. Una opción sería que, al producirse los tres eventos que mencionas, se active una variable indicando tal suceso.
Entonces, cuándo esa variable cambie de estado, continúas haciendo lo que pretendes.
 
Tengo una duda respecto a arduino.

Lo que quiero lograr es que una función espere cierto tiempo hasta que se cumpla la condicional para continuar con la otra y no sé si me servirá el "if"
Por ejemplo: quiero que espere a que le llegue tres pulsos con 1 segundo de diferencia cada uno del pin analógico para que continúe.
if (estadol > 400)
Esto es más o menos lo que tenía pensado pero no me sirve porque apenas llega el primer pulso continua con las siguientes funciones.

Postdata: soy nuevo en esto agradecería la ayuda, por-favor.
con banderas o Flags lo puedes hacer, aunque dependiendo de la condición que esperes, podrías llegar a usar interrupciones lo cual haría mas eficiente el código
 
Veamos:
Aún no está claro el contexto del problema, así que poco es lo que se te puede ayudar. peeeeeeeero:
1-Los pines de Arduino son TODOS digitales, excepto los que "pueden configurarse" como analógicos, pero si manejás los pines a mano y no con la API de Arduino podés hacer lo que se te ocurra.
2-No recuerdo si ese port tiene la capacidad de interrupt-on-change, pero probablemente la tenga aunque hay que buscar alguna forma de manejar esas interrupciones (por alguna parte recuerdo haber visto una bilioteca para eso :unsure: )...habrá que averiguar o programar los registros a pedal.
3- Y así es muuuuuy fácil hacerlo: programas la interrupt-on-change para que te cuente UNO cada vez que llega un pulso...y cuando contó tres dispara el cohete a la Luna.
4- Ahora hay que estudiar si eso se puede hacer...
 
Atrás
Arriba