new version of AL96_OT

Dependencies:   mbed LCD_DISCO_F469NI TS_DISCO_F469NI BSP_DISCO_F469NI

Committer:
billycorgan123
Date:
Wed May 30 14:59:27 2018 +0000
Revision:
0:c980456a5562
Child:
1:309cda84edd4
30/5/2018 _a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
billycorgan123 0:c980456a5562 1 #include "mbed.h"
billycorgan123 0:c980456a5562 2 #include "TS_DISCO_F469NI.h"
billycorgan123 0:c980456a5562 3 #include "LCD_DISCO_F469NI.h"
billycorgan123 0:c980456a5562 4 #include "MAX31865.h"
billycorgan123 0:c980456a5562 5
billycorgan123 0:c980456a5562 6 #include "functions.h"
billycorgan123 0:c980456a5562 7 #include "display.h"
billycorgan123 0:c980456a5562 8 #include "colors.c"
billycorgan123 0:c980456a5562 9 #include "Output.h"
billycorgan123 0:c980456a5562 10
billycorgan123 0:c980456a5562 11 extern void clean(int, float, float);
billycorgan123 0:c980456a5562 12 extern void roast(int, int);
billycorgan123 0:c980456a5562 13 extern void stop(bool);
billycorgan123 0:c980456a5562 14
billycorgan123 0:c980456a5562 15 bool stato_porta=0; //da cancellare, solo per prova porta
billycorgan123 0:c980456a5562 16
billycorgan123 0:c980456a5562 17 int main()
billycorgan123 0:c980456a5562 18 {
billycorgan123 0:c980456a5562 19 setup_griglia(); //setup, parte grafica
billycorgan123 0:c980456a5562 20
billycorgan123 0:c980456a5562 21 while(1) {
billycorgan123 0:c980456a5562 22 getData();
billycorgan123 0:c980456a5562 23 temperature_update();
billycorgan123 0:c980456a5562 24 //acquisisco la pressione sullo schermo per attivare i vari oggetti
billycorgan123 0:c980456a5562 25 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 26 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 27 ///solo per prova, comandi vari
billycorgan123 0:c980456a5562 28 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=230 && TS_State.touchX[0]<300 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<90)) {
billycorgan123 0:c980456a5562 29 Lampadina.stato=!Lampadina.stato;
billycorgan123 0:c980456a5562 30 object_update();
billycorgan123 0:c980456a5562 31 }
billycorgan123 0:c980456a5562 32 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=300 && TS_State.touchX[0]<370 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<90)) {
billycorgan123 0:c980456a5562 33 Resistenza1.stato=!Resistenza1.stato;
billycorgan123 0:c980456a5562 34 object_update();
billycorgan123 0:c980456a5562 35 }
billycorgan123 0:c980456a5562 36 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=370 && TS_State.touchX[0]<440 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<90)) {
billycorgan123 0:c980456a5562 37 Resistenza2.stato=!Resistenza2.stato;
billycorgan123 0:c980456a5562 38 object_update();
billycorgan123 0:c980456a5562 39 }
billycorgan123 0:c980456a5562 40 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=440 && TS_State.touchX[0]<510 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<90)) {
billycorgan123 0:c980456a5562 41 Giracaffe.stato=!Giracaffe.stato;
billycorgan123 0:c980456a5562 42 object_update();
billycorgan123 0:c980456a5562 43 }
billycorgan123 0:c980456a5562 44 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=230 && TS_State.touchX[0]<300 && TS_State.touchY[0]>=90 && TS_State.touchY[0]<160)) {
billycorgan123 0:c980456a5562 45 Bloccoporta.stato=!Bloccoporta.stato;
billycorgan123 0:c980456a5562 46 (Bloccoporta.stato==1) ? Chiudo_porta() : Apro_porta();
billycorgan123 0:c980456a5562 47 }
billycorgan123 0:c980456a5562 48 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=300 && TS_State.touchX[0]<370 && TS_State.touchY[0]>=90 && TS_State.touchY[0]<160)) {
billycorgan123 0:c980456a5562 49 VTangenziale.stato=!VTangenziale.stato;
billycorgan123 0:c980456a5562 50 object_update();
billycorgan123 0:c980456a5562 51 }
billycorgan123 0:c980456a5562 52 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=370 && TS_State.touchX[0]<440 && TS_State.touchY[0]>=90 && TS_State.touchY[0]<160)) {
billycorgan123 0:c980456a5562 53 VRadiale.stato=!VRadiale.stato;
billycorgan123 0:c980456a5562 54 object_update();
billycorgan123 0:c980456a5562 55 }
billycorgan123 0:c980456a5562 56 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=440 && TS_State.touchX[0]<510 && TS_State.touchY[0]>=90 && TS_State.touchY[0]<160)) {
billycorgan123 0:c980456a5562 57 Ventola.stato=!Ventola.stato;
billycorgan123 0:c980456a5562 58 object_update();
billycorgan123 0:c980456a5562 59 }
billycorgan123 0:c980456a5562 60
billycorgan123 0:c980456a5562 61 ///------ Apertura e chiusura scarico caffè
billycorgan123 0:c980456a5562 62 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=620 && TS_State.touchX[0]<690 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<90)) {
billycorgan123 0:c980456a5562 63 Apro_scarico();
billycorgan123 0:c980456a5562 64 }
billycorgan123 0:c980456a5562 65 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=620 && TS_State.touchX[0]<690 && TS_State.touchY[0]>=100 && TS_State.touchY[0]<170)) {
billycorgan123 0:c980456a5562 66 Chiudo_scarico();
billycorgan123 0:c980456a5562 67 }
billycorgan123 0:c980456a5562 68 ///------
billycorgan123 0:c980456a5562 69 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 70 //if ROAST pressed
billycorgan123 0:c980456a5562 71 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=290 && TS_State.touchY[0]<410)) {
billycorgan123 0:c980456a5562 72 roast(temperatura_roast,tempo_roast);
billycorgan123 0:c980456a5562 73 }
billycorgan123 0:c980456a5562 74 //if CLEAN pressed
billycorgan123 0:c980456a5562 75 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=165 && TS_State.touchY[0]<285)) {
billycorgan123 0:c980456a5562 76 clean(clean_time, setpointLOW, setpointHIGH);
billycorgan123 0:c980456a5562 77 }
billycorgan123 0:c980456a5562 78 //if STOP pressed
billycorgan123 0:c980456a5562 79 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) {
billycorgan123 0:c980456a5562 80 stop(0);
billycorgan123 0:c980456a5562 81 }
billycorgan123 0:c980456a5562 82 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 83 //if TEMPERATURA UPPER pressed
billycorgan123 0:c980456a5562 84 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=200 && TS_State.touchX[0]<260 && TS_State.touchY[0]>=270 && TS_State.touchY[0]<330)) {
billycorgan123 0:c980456a5562 85 temperatura_roast = temperatura_roast+5;
billycorgan123 0:c980456a5562 86 if (temperatura_roast >300) temperatura_roast =300;
billycorgan123 0:c980456a5562 87 }
billycorgan123 0:c980456a5562 88 //if TEMPERATURA LOWER pressed
billycorgan123 0:c980456a5562 89 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=200 && TS_State.touchX[0]<260 && TS_State.touchY[0]>=350 && TS_State.touchY[0]<410)) {
billycorgan123 0:c980456a5562 90 temperatura_roast = temperatura_roast-5;
billycorgan123 0:c980456a5562 91 if (temperatura_roast <60) temperatura_roast =60;
billycorgan123 0:c980456a5562 92 }
billycorgan123 0:c980456a5562 93 //if TEMPO UPPER pressed
billycorgan123 0:c980456a5562 94 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=325 && TS_State.touchX[0]<385 && TS_State.touchY[0]>=270 && TS_State.touchY[0]<330)) {
billycorgan123 0:c980456a5562 95 tempo_roast = tempo_roast+15;
billycorgan123 0:c980456a5562 96 if (tempo_roast >3000) tempo_roast =3000;
billycorgan123 0:c980456a5562 97 }
billycorgan123 0:c980456a5562 98 //if TEMPO LOWER pressed
billycorgan123 0:c980456a5562 99 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=325 && TS_State.touchX[0]<385 && TS_State.touchY[0]>=350 && TS_State.touchY[0]<410)) {
billycorgan123 0:c980456a5562 100 tempo_roast = tempo_roast-15;
billycorgan123 0:c980456a5562 101 if (tempo_roast <120) tempo_roast =120;
billycorgan123 0:c980456a5562 102 }
billycorgan123 0:c980456a5562 103 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 104 //scrivo minuti e secondi
billycorgan123 0:c980456a5562 105 int minuti = tempo_roast/60;
billycorgan123 0:c980456a5562 106 int secondi = tempo_roast%60;
billycorgan123 0:c980456a5562 107 sprintf((char*)text, "%2d", minuti);
billycorgan123 0:c980456a5562 108 lcd.DisplayStringAt(295,LINE(8), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c980456a5562 109 sprintf((char*)text, "%2d", secondi);
billycorgan123 0:c980456a5562 110 lcd.DisplayStringAt(350,LINE(8), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c980456a5562 111 //scrivo temperatura
billycorgan123 0:c980456a5562 112 sprintf((char*)text, "%3d", temperatura_roast);
billycorgan123 0:c980456a5562 113 lcd.DisplayStringAt(295,LINE(10), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c980456a5562 114 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 115 //per sicurezza, se accendo la macchina e la temperatura è superiore a
billycorgan123 0:c980456a5562 116 //quella di safe (150) attivo la ventola tangenziale fino a quando la
billycorgan123 0:c980456a5562 117 //temperatura non scende sotto quella di sicurezza
billycorgan123 0:c980456a5562 118 if (PT1.temperature( )>temp_safe) {
billycorgan123 0:c980456a5562 119 VTangenziale_acceso();
billycorgan123 0:c980456a5562 120 temperature_update();
billycorgan123 0:c980456a5562 121 wait(1.0);
billycorgan123 0:c980456a5562 122 }
billycorgan123 0:c980456a5562 123 wait(0.1);
billycorgan123 0:c980456a5562 124 }
billycorgan123 0:c980456a5562 125 }
billycorgan123 0:c980456a5562 126 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 127 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 128 //-----CLEAN--------------------------------------------------------------------
billycorgan123 0:c980456a5562 129 void clean(int clean_time, float setpointLOW, float setpointHIGH)
billycorgan123 0:c980456a5562 130 {
billycorgan123 0:c980456a5562 131 Timer timer;
billycorgan123 0:c980456a5562 132 timer.start();
billycorgan123 0:c980456a5562 133 int previous_time, actual_time;
billycorgan123 0:c980456a5562 134 Lampadina_spento();
billycorgan123 0:c980456a5562 135 Ventola_spento();
billycorgan123 0:c980456a5562 136 VRadiale_spento();
billycorgan123 0:c980456a5562 137 VTangenziale_spento();
billycorgan123 0:c980456a5562 138 Giracaffe_spento();
billycorgan123 0:c980456a5562 139 Resistenza1_spento();
billycorgan123 0:c980456a5562 140 Resistenza2_spento();
billycorgan123 0:c980456a5562 141 //-------------------------
billycorgan123 0:c980456a5562 142 //non procedo fino a quando la porta non è chiusa e anche il tappo del caffè
billycorgan123 0:c980456a5562 143 /* do {
billycorgan123 0:c980456a5562 144 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 145 if ((TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) { //STOP
billycorgan123 0:c980456a5562 146 goto STOP_C;
billycorgan123 0:c980456a5562 147 }
billycorgan123 0:c980456a5562 148 wait(0.5);
billycorgan123 0:c980456a5562 149 } while ( Chiudo_porta() );
billycorgan123 0:c980456a5562 150 */
billycorgan123 0:c980456a5562 151 do {
billycorgan123 0:c980456a5562 152 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 153 if ((TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) { //STOP
billycorgan123 0:c980456a5562 154 goto STOP_C;
billycorgan123 0:c980456a5562 155 }
billycorgan123 0:c980456a5562 156 wait(0.5);
billycorgan123 0:c980456a5562 157 } while ( tappo_caffe() );
billycorgan123 0:c980456a5562 158 //-------------------------
billycorgan123 0:c980456a5562 159 //Chiudo_scarico(); //chiudo lo scarico del caffè
billycorgan123 0:c980456a5562 160 disegna_pulsanti(CLEAN_ATTIVO);
billycorgan123 0:c980456a5562 161 VTangenziale_acceso();
billycorgan123 0:c980456a5562 162 //VRadiale_acceso();
billycorgan123 0:c980456a5562 163 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"CLEAN ACTIVE ", LEFT_MODE);
billycorgan123 0:c980456a5562 164 previous_time = timer.read();
billycorgan123 0:c980456a5562 165 while(clean_time>0) {
billycorgan123 0:c980456a5562 166 //acquisisco la pressione sullo schermo per vedere se devo stoppare il ciclo mentre faccio il clean
billycorgan123 0:c980456a5562 167 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 168 if ((TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) { //STOP
billycorgan123 0:c980456a5562 169 goto STOP_C;
billycorgan123 0:c980456a5562 170 }
billycorgan123 0:c980456a5562 171
billycorgan123 0:c980456a5562 172 //countdown dal clean_time a zero
billycorgan123 0:c980456a5562 173 actual_time = timer.read();
billycorgan123 0:c980456a5562 174 if (actual_time-previous_time >=1) {
billycorgan123 0:c980456a5562 175 lcd.SetTextColor(black);
billycorgan123 0:c980456a5562 176 sprintf((char*)text, "%5d", clean_time);
billycorgan123 0:c980456a5562 177 lcd.DisplayStringAt(210,LINE(18), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c980456a5562 178 previous_time = actual_time;
billycorgan123 0:c980456a5562 179 clean_time--;
billycorgan123 0:c980456a5562 180
billycorgan123 0:c980456a5562 181 getData();
billycorgan123 0:c980456a5562 182 temperature_update();
billycorgan123 0:c980456a5562 183 //se la temperatura è sotto il setpoint high continuo a riscaldare, se la temperatura scende sotto il setpoint low ricomincio a riscaldare
billycorgan123 0:c980456a5562 184 if (PT1.temperature( )<=setpointLOW) {
billycorgan123 0:c980456a5562 185 Resistenza1_acceso();
billycorgan123 0:c980456a5562 186 Resistenza2_acceso();
billycorgan123 0:c980456a5562 187 }
billycorgan123 0:c980456a5562 188 if (PT1.temperature( )>setpointHIGH) {
billycorgan123 0:c980456a5562 189 Resistenza1_spento();
billycorgan123 0:c980456a5562 190 Resistenza2_spento();
billycorgan123 0:c980456a5562 191 }
billycorgan123 0:c980456a5562 192 }
billycorgan123 0:c980456a5562 193 }
billycorgan123 0:c980456a5562 194 //-------------------------
billycorgan123 0:c980456a5562 195 //avvio la procedura di stop, se il tempo di clean è finito oppure ho premuto STOP
billycorgan123 0:c980456a5562 196 STOP_C:
billycorgan123 0:c980456a5562 197 disegna_pulsanti(CLEAN_FINITO);
billycorgan123 0:c980456a5562 198 stop(0);
billycorgan123 0:c980456a5562 199 }
billycorgan123 0:c980456a5562 200 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 201 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 202 //-----STOP---------------------------------------------------------------------
billycorgan123 0:c980456a5562 203 void stop(bool clean_roast)
billycorgan123 0:c980456a5562 204 {
billycorgan123 0:c980456a5562 205 //stop(0) se era in esecuzione il cleaning
billycorgan123 0:c980456a5562 206 //stop(1) se era in esecuzione il roasting
billycorgan123 0:c980456a5562 207 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"STOP IN PROCESS ", LEFT_MODE);
billycorgan123 0:c980456a5562 208 lcd.DisplayStringAt(260,LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c980456a5562 209 //spengo le resistenze
billycorgan123 0:c980456a5562 210 Resistenza1_spento();
billycorgan123 0:c980456a5562 211 Resistenza2_spento();
billycorgan123 0:c980456a5562 212 getData();
billycorgan123 0:c980456a5562 213 temperature_update();
billycorgan123 0:c980456a5562 214 lcd.SetTextColor(black);
billycorgan123 0:c980456a5562 215 wait (2.0);
billycorgan123 0:c980456a5562 216
billycorgan123 0:c980456a5562 217 VRadiale_spento();
billycorgan123 0:c980456a5562 218 if (clean_roast) {
billycorgan123 0:c980456a5562 219 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"solo con roasting ", LEFT_MODE);
billycorgan123 0:c980456a5562 220 Ventola_acceso();
billycorgan123 0:c980456a5562 221 Apro_scarico();
billycorgan123 0:c980456a5562 222 Giracaffe_acceso();
billycorgan123 0:c980456a5562 223 for (int i=60; i>0; i--) { //tempo di raffreddamento caffè, da variare alla necessità
billycorgan123 0:c980456a5562 224 wait(1);
billycorgan123 0:c980456a5562 225 temperature_update();
billycorgan123 0:c980456a5562 226 }
billycorgan123 0:c980456a5562 227 Giracaffe_spento();
billycorgan123 0:c980456a5562 228 Chiudo_scarico();
billycorgan123 0:c980456a5562 229 for (int i=60; i>0; i--) { //tempo di raffreddamento caffè, da variare alla necessità
billycorgan123 0:c980456a5562 230 wait(1);
billycorgan123 0:c980456a5562 231 temperature_update();
billycorgan123 0:c980456a5562 232 }
billycorgan123 0:c980456a5562 233 Ventola_spento();
billycorgan123 0:c980456a5562 234 }
billycorgan123 0:c980456a5562 235 //lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"tempe magg o minore 150 ", LEFT_MODE);
billycorgan123 0:c980456a5562 236 if (PT1.temperature( )>temp_safe) {
billycorgan123 0:c980456a5562 237 do {
billycorgan123 0:c980456a5562 238 getData();
billycorgan123 0:c980456a5562 239 lcd.SetTextColor(red);
billycorgan123 0:c980456a5562 240 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"TEMPERATURE ABOVE 150", LEFT_MODE);
billycorgan123 0:c980456a5562 241 wait (1.5);
billycorgan123 0:c980456a5562 242 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"NOT POSSIBLE TO OPEN DOOR", LEFT_MODE);
billycorgan123 0:c980456a5562 243 wait (1.5);
billycorgan123 0:c980456a5562 244 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c980456a5562 245 getData();
billycorgan123 0:c980456a5562 246 temperature_update();
billycorgan123 0:c980456a5562 247 wait (1.5);
billycorgan123 0:c980456a5562 248 } while (PT1.temperature( )>temp_safe);
billycorgan123 0:c980456a5562 249 }
billycorgan123 0:c980456a5562 250 //Apro_porta();
billycorgan123 0:c980456a5562 251 Lampadina_spento();
billycorgan123 0:c980456a5562 252 VTangenziale_spento();
billycorgan123 0:c980456a5562 253 step_clean=0;
billycorgan123 0:c980456a5562 254 step_roast=0;
billycorgan123 0:c980456a5562 255 disegna_pulsanti(CLEAN);
billycorgan123 0:c980456a5562 256 disegna_pulsanti(ROAST);
billycorgan123 0:c980456a5562 257 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c980456a5562 258 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"STOP COMPLETED ", LEFT_MODE);
billycorgan123 0:c980456a5562 259 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 260 wait (2);
billycorgan123 0:c980456a5562 261 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c980456a5562 262 }
billycorgan123 0:c980456a5562 263 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 264 //------------------------------------------------------------------------------
billycorgan123 0:c980456a5562 265 //-----ROAST--------------------------------------------------------------------
billycorgan123 0:c980456a5562 266 void roast (int roast_temp, int roast_time)
billycorgan123 0:c980456a5562 267 {
billycorgan123 0:c980456a5562 268 Timer timer;
billycorgan123 0:c980456a5562 269 timer.start();
billycorgan123 0:c980456a5562 270 int previous_time, actual_time;
billycorgan123 0:c980456a5562 271 Lampadina_spento();
billycorgan123 0:c980456a5562 272 Ventola_spento();
billycorgan123 0:c980456a5562 273 VRadiale_spento();
billycorgan123 0:c980456a5562 274 VTangenziale_spento();
billycorgan123 0:c980456a5562 275 Giracaffe_spento();
billycorgan123 0:c980456a5562 276 Resistenza1_spento();
billycorgan123 0:c980456a5562 277 Resistenza2_spento();
billycorgan123 0:c980456a5562 278 Chiudo_scarico();
billycorgan123 0:c980456a5562 279 //-------------------------
billycorgan123 0:c980456a5562 280 //non procedo fino a quando la porta non è chiusa e anche il tappo del caffè
billycorgan123 0:c980456a5562 281 /* do {
billycorgan123 0:c980456a5562 282 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 283 if ((TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) { //STOP
billycorgan123 0:c980456a5562 284 goto STOP_R;
billycorgan123 0:c980456a5562 285 }
billycorgan123 0:c980456a5562 286 wait(0.5);
billycorgan123 0:c980456a5562 287 } while ( Chiudo_porta() );
billycorgan123 0:c980456a5562 288 */
billycorgan123 0:c980456a5562 289 do {
billycorgan123 0:c980456a5562 290 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 291 if ((TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) { //STOP
billycorgan123 0:c980456a5562 292 goto STOP_R;
billycorgan123 0:c980456a5562 293 }
billycorgan123 0:c980456a5562 294 wait(0.5);
billycorgan123 0:c980456a5562 295 } while ( tappo_caffe() );
billycorgan123 0:c980456a5562 296 //-------------------------
billycorgan123 0:c980456a5562 297
billycorgan123 0:c980456a5562 298 //PRE ROAST
billycorgan123 0:c980456a5562 299 disegna_pulsanti(ROAST_PRE);
billycorgan123 0:c980456a5562 300 temperature_update();
billycorgan123 0:c980456a5562 301 VRadiale_acceso();
billycorgan123 0:c980456a5562 302 VTangenziale_acceso();
billycorgan123 0:c980456a5562 303 Lampadina_acceso();
billycorgan123 0:c980456a5562 304 while ( PT1.temperature()<=roast_temp && step_roast==0) {
billycorgan123 0:c980456a5562 305 //if STOP pressed
billycorgan123 0:c980456a5562 306 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 307 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) {
billycorgan123 0:c980456a5562 308 goto STOP_R;
billycorgan123 0:c980456a5562 309 }
billycorgan123 0:c980456a5562 310 Resistenza1_acceso();
billycorgan123 0:c980456a5562 311 Resistenza2_acceso();
billycorgan123 0:c980456a5562 312 getData();
billycorgan123 0:c980456a5562 313 temperature_update();
billycorgan123 0:c980456a5562 314 }
billycorgan123 0:c980456a5562 315 Resistenza2_spento();
billycorgan123 0:c980456a5562 316 step_roast=1;
billycorgan123 0:c980456a5562 317
billycorgan123 0:c980456a5562 318 //APRI E CHIUDI IL TAPPO CAFFE e POI AVVII IL ROAST
billycorgan123 0:c980456a5562 319 Giracaffe_acceso();
billycorgan123 0:c980456a5562 320 do {
billycorgan123 0:c980456a5562 321 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"OPEN COFFE COVER ", LEFT_MODE);
billycorgan123 0:c980456a5562 322 //if STOP pressed
billycorgan123 0:c980456a5562 323 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 324 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) {
billycorgan123 0:c980456a5562 325 goto STOP_R;
billycorgan123 0:c980456a5562 326 }
billycorgan123 0:c980456a5562 327 getData();
billycorgan123 0:c980456a5562 328 temperature_update();
billycorgan123 0:c980456a5562 329 if (PT1.temperature( )<=roast_temp) {
billycorgan123 0:c980456a5562 330 Resistenza1_acceso();
billycorgan123 0:c980456a5562 331 }
billycorgan123 0:c980456a5562 332 if (PT1.temperature( )>roast_temp) {
billycorgan123 0:c980456a5562 333 Resistenza1_spento();
billycorgan123 0:c980456a5562 334 }
billycorgan123 0:c980456a5562 335 wait(1.0);
billycorgan123 0:c980456a5562 336 } while (myDataIn[0]==1 && step_roast==1);
billycorgan123 0:c980456a5562 337 step_roast=2;
billycorgan123 0:c980456a5562 338
billycorgan123 0:c980456a5562 339 do {
billycorgan123 0:c980456a5562 340 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"POOR COFFE, CLOSE COVER ", LEFT_MODE);
billycorgan123 0:c980456a5562 341 //if STOP pressed
billycorgan123 0:c980456a5562 342 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 343 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) {
billycorgan123 0:c980456a5562 344 stop(1);
billycorgan123 0:c980456a5562 345 }
billycorgan123 0:c980456a5562 346 getData();
billycorgan123 0:c980456a5562 347 temperature_update();
billycorgan123 0:c980456a5562 348 if (PT1.temperature( )<=roast_temp) {
billycorgan123 0:c980456a5562 349 Resistenza1_acceso();
billycorgan123 0:c980456a5562 350 }
billycorgan123 0:c980456a5562 351 if (PT1.temperature( )>roast_temp) {
billycorgan123 0:c980456a5562 352 Resistenza1_spento();
billycorgan123 0:c980456a5562 353 }
billycorgan123 0:c980456a5562 354 wait(1.0);
billycorgan123 0:c980456a5562 355 } while (myDataIn[0]==0 && step_roast==2);
billycorgan123 0:c980456a5562 356 step_roast=3;
billycorgan123 0:c980456a5562 357 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c980456a5562 358 //lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"ades dovr avv roast ", LEFT_MODE);
billycorgan123 0:c980456a5562 359 wait(1.0);
billycorgan123 0:c980456a5562 360
billycorgan123 0:c980456a5562 361 //ROAST
billycorgan123 0:c980456a5562 362 disegna_pulsanti(ROAST_ACTIVE);
billycorgan123 0:c980456a5562 363 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"ROASTING IN PROCESS ", LEFT_MODE);
billycorgan123 0:c980456a5562 364 timer.start();
billycorgan123 0:c980456a5562 365 previous_time = timer.read();
billycorgan123 0:c980456a5562 366 while ( roast_time>0 && step_roast==3) {
billycorgan123 0:c980456a5562 367 //if STOP pressed
billycorgan123 0:c980456a5562 368 ts.GetState(&TS_State);
billycorgan123 0:c980456a5562 369 if ( (TS_State.touchDetected) && (TS_State.touchX[0]>=20 && TS_State.touchX[0]<140 && TS_State.touchY[0]>=20 && TS_State.touchY[0]<140)) {
billycorgan123 0:c980456a5562 370 goto STOP_R;
billycorgan123 0:c980456a5562 371 }
billycorgan123 0:c980456a5562 372
billycorgan123 0:c980456a5562 373 actual_time = timer.read();
billycorgan123 0:c980456a5562 374 if (actual_time-previous_time >=1) {
billycorgan123 0:c980456a5562 375 lcd.SetTextColor(black);
billycorgan123 0:c980456a5562 376 sprintf((char*)text, "%5d", roast_time);
billycorgan123 0:c980456a5562 377 lcd.DisplayStringAt(600,LINE(18), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c980456a5562 378 previous_time = actual_time;
billycorgan123 0:c980456a5562 379 roast_time--;
billycorgan123 0:c980456a5562 380
billycorgan123 0:c980456a5562 381 getData();
billycorgan123 0:c980456a5562 382 temperature_update();
billycorgan123 0:c980456a5562 383 if (PT1.temperature( )<=roast_temp) {
billycorgan123 0:c980456a5562 384 Resistenza1_acceso();
billycorgan123 0:c980456a5562 385 }
billycorgan123 0:c980456a5562 386 if (PT1.temperature( )>roast_temp) {
billycorgan123 0:c980456a5562 387 Resistenza1_spento();
billycorgan123 0:c980456a5562 388 }
billycorgan123 0:c980456a5562 389 }
billycorgan123 0:c980456a5562 390 }
billycorgan123 0:c980456a5562 391 //se ho completato il ciclo di preroasting e roasting e non ho premuto STOP
billycorgan123 0:c980456a5562 392 STOP_R:
billycorgan123 0:c980456a5562 393 lcd.DisplayStringAt(600, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c980456a5562 394 disegna_pulsanti(ROAST_FINITO);
billycorgan123 0:c980456a5562 395 stop(1);
billycorgan123 0:c980456a5562 396 }
billycorgan123 0:c980456a5562 397