30/5/2018 _a
Dependencies: BSP_DISCO_F469NI LCD_DISCO_F469NI Shifter2 TS_DISCO_F469NI max31865 mbed
main.cpp@1:309cda84edd4, 2018-06-01 (annotated)
- Committer:
- billycorgan123
- Date:
- Fri Jun 01 10:56:20 2018 +0000
- Revision:
- 1:309cda84edd4
- Parent:
- 0:c980456a5562
Project ORBE ver 2.a
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:309cda84edd4 | 118 | if (PT1.temperature( )>temp_safe || PT2.temperature( )>temp_safe) { |
billycorgan123 | 0:c980456a5562 | 119 | VTangenziale_acceso(); |
billycorgan123 | 0:c980456a5562 | 120 | temperature_update(); |
billycorgan123 | 1:309cda84edd4 | 121 | wait(0.4); |
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 | 1:309cda84edd4 | 236 | if (PT1.temperature( )>temp_safe || PT2.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 | 1:309cda84edd4 | 304 | while ( PT2.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 | 1:309cda84edd4 | 329 | if (PT2.temperature( )<=roast_temp) { |
billycorgan123 | 0:c980456a5562 | 330 | Resistenza1_acceso(); |
billycorgan123 | 0:c980456a5562 | 331 | } |
billycorgan123 | 1:309cda84edd4 | 332 | if (PT2.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 | 1:309cda84edd4 | 348 | if (PT2.temperature( )<=roast_temp) { |
billycorgan123 | 0:c980456a5562 | 349 | Resistenza1_acceso(); |
billycorgan123 | 0:c980456a5562 | 350 | } |
billycorgan123 | 1:309cda84edd4 | 351 | if (PT2.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 | 1:309cda84edd4 | 383 | if (PT2.temperature( )<=roast_temp) { |
billycorgan123 | 0:c980456a5562 | 384 | Resistenza1_acceso(); |
billycorgan123 | 0:c980456a5562 | 385 | } |
billycorgan123 | 1:309cda84edd4 | 386 | if (PT2.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 |