YASS- ännu en annan Sous Vide lösning (6 / 8 steg)
Steg 6: Koden
Utanför temperaturkontroll försökte jag hålla andra funktioner så enkla som möjligt.Under installationen, hårdvaran är initierad, sedan temperaturgivaren är läst. I behandlingen används att fylla en cirkulär array används för utjämning. En välkomstskärm visas på LCD-skärmen och, efter förseningar, visas aktuell temperatur och börvärde.
Huvudloop är 100 ms.
I de viktigaste loop läses seriell in. Om en byte är närvarande, bearbetas det. Om det inte är en siffra, VAGNRETUR och radmatning, ignoreras det. Om det är en siffra, samlas dess värde i en tillfälliga variabeln och kontroll tillbaka till slingan. Om det är en VAGNRETUR och radmatning, behandlas de ackumulerade siffrorna som nya börvärdet. Observera att det inte finns någon rimlighet kontroll på börvärde spänna. Ta lite eget ansvar och var uppmärksam på din maskinskrivning. Du bör inte kunna skada något genom att skriva dåliga siffror.
Nästa, växlarna upp/ner tillfrågas och, om antingen trycks, en inre loop används för att öka eller minska börvärdet för så länge brytaren trycks. Den inledande uppdateringstiden är 500 ms, men efter fem iterationer, uppdateringstid halveras, för att snabba upp behandlingen.
Temperaturen är att läsa på varje femtonde loop eller 1,5 sekunder. Makro definitionen
#define FAHRENHEIT_UNITSär enheten standardvalet. Att producera skärmar av Celsius enheter, kommentera denna linje genom att lägga till dubbla snedstreck framför den.
Temperatur och börvärde skickas till seriell linje som enkel text, som standard när antingen ändras. För att producera XML skickas på den seriella porten, avkommentera makrodefinition
#define PRODUCE_XMLgenom att ta bort de dubbla snedstreck. Om du inte vet vad XML är, lämna den ensam.