Hola @victorjam, en esta liga esta el código original, al que yo le quería agregar los ciclo for, Salir y continuar de blucle for - #27 by gonpezzi la @gonpezzi me ayudo a integrar el ciclo for, al código original y funciona bien, luego @IgnoranteAbsoluto propuso la maquina de estados y fue mucho mas fácil modificar los parámetros de ciclos y temperatura y tiene una alarma que lo hace que sea muy seguro al apagar el equipo en caso de emergencia. Pero ahora veo que seria mas fácil implementar botones al que creo @gonpezzi. fue @IgnoranteAbsoluto el que propuso agregar los botones en un nuevo tema, cosa que ya no se realizo, yo e querido quitar los caracteres de las flechas que consumen muchos renglones como 200, intentando hacer ingeniería inversa para usar el código en otros proyectos, y nunca lo e conseguido. voy a cargar la librería #include <BotonSimple.h> y poner 4 botones a un que creo con 3 seria suficiente seria menu, aumentar y disminuir y salir si no se oprime ninguna tecla en 30 segundos.
const byte CANTIDAD_CICLOS = 12; // Cantidad de ciclos intermedios que se quiere
const int MAXIMO_CALENTANDO = 58.0; // Temperatura hasta que se ha de calentar en los ciclos intermedios
const int MINIMO_ENFRIANDO = 48.0; // Temperatura hasta que se ha de enfriar en los ciclos intermedios
const int MAXIMO_CALENTANDO_FINAL_A = 60.0; // Temperatura hasta que se ha de calentar al final (opción A)
const int MAXIMO_CALENTANDO_FINAL_B = 70.0; // Temperatura hasta que se ha de calentar al final (opción B)
const int MINIMO_ENFRIANDO_FINAL = 36.0; // Temperatura hasta que se ha de enfriar para apagar el ventilador
Explicacion de Ignorante Absoluto
el primer parametro seria el numero de ciclos y luego el maximo y el minimo de el ciclo for luego maximo final minimo final que es un "operador ternario" y minimo enfriando que tiene que ser comparado con la temperatura ambiental para que el al envasar el producto haga cierto vacio el empaque te agrego la explicación de @IgnoranteAbsoluto. de como funciona su código.
-
CANTIDAD_CICLOSdetermina el número de veces que se han de alcanzar la temperatura máxima y mínima de los ciclos antes de pasar a alcanzar la temperatura máxima final. Puede ser cualquier valor entre cero y 99. Si es cero, no aparecerá en el LCD ni el número de ciclos ni los valores de las temperaturas máxima y mínima de los ciclos. Tan sólo aparecerá la temperatura máxima final y la temperatura mínima a la que se ha de apagar. -
MAXIMO_CALENTANDOes la temperatura máxima que se ha de alcanzar en los ciclos al calentar. -
MINIMO_ENFRIANDOes la temperatura mínima que se ha de alcanzar en los ciclos en el enfriado. -
MAXIMO_CALENTANDO_FINAL_AyMAXIMO_CALENTANDO_FINAL_Bson las dos temperaturas que se pueden seleccionar con el conmutador a la que ha de llegar en el calentamiento final. -
MINIMO_ENFRIANDO_FINALes la temperatura a la que se ha de llegar para finalizar el proceso y apagar el ventilador en el enfriamiento final. -
INTERVALO_ENTRE_LECTURASindica cada cuántos milisegundos se ha de tomar una muestra de temperatura. Es aconsejable ponerle el sufijo UL a ese número, para indicarle al compilador que esunsigned longporque por defecto trata los literales numéricos comointy nos podríamos llevar una sorpresa si la cantidad de milisegundos fuera mayor a 65535. Supongo que no será este el caso, pero es bueno acostumbrarse a ponerlo. -
FLECHASlos caracteres animados que indican si se está calentando o enfriando serán otros dependiendo de si se indica untrueo unfalseen la definición de esta constante. Prueba a cambiar el valor y ya me dirás si finalmente has dejado las flechas o has preferido «los otros». Siempre podrás cambiar el código y definir otras animaciones. Lo que está puesto a fuego que son 4 los «pasos» de cada animación.
Lo creas o no, esta es la versión «rápida» y sin muchas florituras (aunque algunas hay). Creo que la versión «buena» debería de permitir que se pudieran configurar las temperaturas desde el mismo Arduino, sin tener que estar modificando, compilando y cargando el programa al Arduino cada vez que vas a cambiar las temperaturas. Yo quitaría el conmutador que tienes para seleccionar entre las dos temperaturas máximas finales y le pondría tres pulsadores. Uno para incrementar el valor de cada temperatura, otro para decrementar y un tercero para «avanzar» a la siguiente temperatura. No hace falta más, ni tan siquiera para «volver» a la anterior. Bastaría con pulsar varias veces hasta «pasar» por todas y «volver» a la primera cíclicamente. Pero si se quiere se pueden poner más pulsadores con más funcionalidades. Quien dice que son para configurar las temperaturas, también sirven para cambiar el número de ciclos a realizar. Así como para indicar que empiece el proceso una vez configurado o que lo interrumpa por si se quiere empezar de nuevo o cambiar algún parámetro. Y ya, para hacerlo más cómodo aún, que pueda guardar en la EEPROM al menos los últimos valores configurados para tenerlos ya al encender el Arduino. Aunque yo no me quedaría ahí, sino que también se puedan guardar varias configuraciones distintas en la EEPROM.