Contador

Buenas, me llamo César y bueno, es mi primera vez en el foro.
Necesito ayuda, tengo una variable llamada angulo que su valor inicial es 0, quiero que cada vez que un potenciometro marque < 600 esa variable aumente en 1 su valor y que cada vez que el potenciometro sea > 400 la variable disminuya en 1 su valor.
No sé si se entiende mi idea, hace dos años logre hacer que esa variable funcionara pero no recuerdo y el código donde logre hacerlo, lo perdí:(

Muchas gracias y espero una respuesta <3

¿Y cuál es la pregunta? Tú mismo te estás diciendo cómo se hace.
Quizá debas refrescarte la memoria respecto a analogRead() e if

Lucario448:
¿Y cuál es la pregunta? Tú mismo te estás diciendo cómo se hace.
Quizá debas refrescarte la memoria respecto a analogRead() e if

Si, mi idea es hacerlo con analogRead(pot) if (pot < 600) { angulo + 1} else (pot > 400) { angulo - 1} no sé si esta bien o no :frowning: quiero que cada vez que el pot llegue a 600 el angulo suba 1 así hasta llegar al angulo deseado y si se quiere baja un angulo cuando el pot sea > 400 el angulo baje 1.

Y ponte a programarlo y cuando veas lo que esta mal piensa como resolverlo!!

Como Lucario no entiendo la pregunta, pretendes que te lo hagamos?

Solo una sugerencia. Cuando llegues a <600 debes tener un flag que detenga el contador en su incremento porque de lo contrario estará incrementandose a cada momento.

Lo mismo en la otra situación.
Tu problema es que cuando llegue a <600 incrementa el contador pero que detiene ese incremento... un flag bien, lo hace la primera vez y luego como cambia? como vuelve a incrementar, para ello debe salir de <600? Eso basta.. y que pasa cuando este en el umbral de 600
El AD no es muy exacto y estara 599 600 601 599 600 o sea tienes varios incrementos ahi, lo ves?

Lo que se suele hacer es establecer una histeresis o sea.. un valor que debe superarse para evitar esto por ejemplo.
Digamos que ese valor podria ser 10 o 20. Entonces si es 599 incrementa y activas un flag que dice incrementé.. luego hasta que no llegue a 610 o 620 no desactivas el flag para permitir que vuelva a poder incrementarse el contador.
Espero haber sido claro.

O sea lo que quiero hacer es una variable int angulo = 0 cada vez que el valor del joystick sea mayor a 600 por ejemplo, este incremente a (angulo + 1) quedando así la variable angulo = 1, entonces cuando el joystick este en 485 que seria su valor en el medio sin que nadie lo mueva la variable angulo quede en el valor que uno le dio al momento de mover a 600. No sé si ahora me explico mejor...
Cada vez que el joystick este en 600 el angulo debe incrementar en + 1.

Hice esto

if (analogRead (joystick) < 600)
{ 
angulo = angulo + 1;
}

Y al momento de imprimir angulo este subía sin parar siendo que el joystick estaba en 485 :frowning:

La comparación está al revés; se incrementa si la lectura es menor a 600