Solucionado Salir y continuar de blucle for

Por lo que dices ahí, creo entender que tienes un conmutador conectados a tres pines del Arduino, el común al pin 10 como entrada y los otros dos contactos al pin 8 como salida a nivel bajo y al pin 9 como salida al nivel alto. Y esto es para que de una señal alta o baja al pin 10 en función de si la posición del conmutador está uniendo el común con el pin 8 o 9. :man_facepalming:

No es necesario malgastar dos pines para eso. En principio basta con que conectes sólo el común al pin 10 y los otros dos contactos a masa (GND) y 5 voltios (Vcc) respectivamente. Aunque también se puede hacer con un simple interruptor, aprovechando la resistencia interna pull-up que se puede activar en el pin de entrada. Para que entiendas qué es una resistencia pull-up y su necesidad, puedes ver Leer un pulsador con Arduino en la web de Luis Llamas. Aunque en la web habla de pulsadores, se aplica igualmente a interruptores (a efectos prácticos, la única diferencia entre un pulsador y un interruptor es que en este último no has de mantener el dedo encima de él para que permanezca en uno de los estados). Puedes utilizar tu conmutador como un interruptor conectando el común al pin 10 y uno de los otros dos contactos a masa (GND) y el otro dejándolo al aire (sin conectar a ningún lado). Sólo tienes que configurar el pin 10 como entrada con la resistencia pull-up interna activa. En una posición del interruptor (o conmutador) tendrás una lectura a nivel bajo (LOW) y en la otra una a nivel alto (HIGH).


pinMode(10, INPUT_PULLUP) // Esto configura el pin 10 como entrada y activa su resistencia pull-up interna

Una pregunta por curiosidad: ¿tan a menudo vas a cambiar la temperatura máxima del «último calentamiento» como para tener que poner ese conmutador? Porque por lo que has dicho, tienes pensado reprogramar el Arduino cada vez que vayas a cambiar de fruta. Y no sé si ese cambio de temperatura final (que ahora es de 40 o 42 grados) era un intento de ahorrarte tener que reprogramar el Arduino al inicio de cada temporada.

Yo, personalmente, me haría el programa de tal manera que pudiera parametrizar las temperaturas y el número de “ciclos intermedios” diréctamente en el Arduino con unos cuantos pulsadores, aprovechando que se dispone de una pantalla LCD de 20x4. ¿O me equivoco en lo del LCD?

Yo haría un menú que me permitiera elegir las temperaturas máximas y mínimas de los ciclos intermedio (39 y 36 grados, siguiendo como ejemplo lo que has dicho). Así como el número de veces que ha de hacer ese ciclo (1, 2, 3, 4, 5 o los que se quiera. Pudiendo ser incluso cero). Y por último la temperatura máxima que ha de alcanzar para el ciclo final. Siguiendo el ejemplo, habría que elegir una entre 40 o 42 grados, sin necesidad de utilizar el conmutador ya que si se quiere que para el siguiente secado sea distinto, basta con volver a ir al menú de configuración y ajustar la temperatura antes de iniciar el secado.

Más preguntas por curiosidad: ¿cuál es la temperatura máxima a la que podría llegar finalmente? ¿Hasta cuántos decimales quieres que se vea en el LCD al indicar la temperatura? Estas dos preguntas són más bien estéticas, para a la hora de diseñar la presentación de los datos, tener claro cuántos caracteres hay que reservar para mostrar la temperatura.

Otra pregunta más: ¿se va a tener que estar cambiando muy a menudo los ciclos de secado o sólo de vez en cuando, en el «inicio de temporada» que es cuando se cambia de producto?

Además del LCD, el conmutador, los dos relé y el sensor de temperatura, ¿hay conectado o se tiene pensado conectar algo más?