Paso 6: El código
Más allá del control de la temperatura, he tratado de mantener otras funciones tan simple como sea posible.Durante la instalación, se inicializa el hardware y, a continuación, se lee el sensor de temperatura. La lectura se utiliza para rellenar una matriz circular utilizada para alisar. Una pantalla de presentación aparece en la pantalla y, después de un retraso, se muestran la temperatura actual y el valor.
El período de bucle principal es de 100 ms.
En el bucle principal, se lee la entrada serial. Si hay un byte, se procesa. Si no es un dígito, retorno de carro o avance de línea, es ignorado. Si es un dígito, se acumula su valor en una variable temporal y volvió al lazo de control. Si es un retorno de carro o avance de línea, las cifras acumuladas son tratadas como el nuevo punto de ajuste. Tenga en cuenta que no hay ninguna verificación de razonabilidad en la gama del punto de ajuste. Tomar alguna responsabilidad personal y prestar atención a su escritura. No podrá dañar nada escribiendo números malos.
A continuación, se preguntan los interruptores de arriba/abajo y, si bien es presionado, un bucle interno se utiliza para aumentar o disminuir el set point para mientras se presiona el interruptor. El tiempo inicial de actualización es de 500 ms, pero después de cinco iteraciones, el tiempo de actualización es a la mitad, para acelerar el proceso.
La temperatura se lee en cada bucle de XV o 1,5 segundos. La definición de macro
#define FAHRENHEIT_UNITSes la selección de la unidad por defecto. Para producir pantallas de Celsius unidades, comentar esa línea mediante la adición de barras doble delante de él.
Temperatura y punto de ajuste se envían a la línea serie como texto simple, por defecto, cuando uno cambia. Para generar el XML que se enviará en el puerto serie, quite el comentario de la definición de macro
#define PRODUCE_XMLmediante la eliminación de las barras. Si no sabes lo que es XML, dejarlo solo.