nuova versione
Dependencies: BSP_DISCO_F746NG CD74HC165E LCD_DISCO_F746NG Shifter2 TS_DISCO_F746NG mbed
Fork of Enrico_newproject by
main.cpp@2:6b24c77e16b6, 2018-03-07 (annotated)
- Committer:
- billycorgan123
- Date:
- Wed Mar 07 21:14:46 2018 +0000
- Revision:
- 2:6b24c77e16b6
- Parent:
- 1:8a54b7de2617
nuova versione
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
billycorgan123 | 0:d421f2c38453 | 1 | #include "mbed.h" |
billycorgan123 | 1:8a54b7de2617 | 2 | #include "TS_DISCO_F746NG.h" |
billycorgan123 | 0:d421f2c38453 | 3 | #include "LCD_DISCO_F746NG.h" |
billycorgan123 | 1:8a54b7de2617 | 4 | |
billycorgan123 | 1:8a54b7de2617 | 5 | #include "Bloccoporta_acceso.c" |
billycorgan123 | 1:8a54b7de2617 | 6 | #include "Bloccoporta_spento.c" |
billycorgan123 | 1:8a54b7de2617 | 7 | #include "Girarrosto_acceso.c" |
billycorgan123 | 1:8a54b7de2617 | 8 | #include "Girarrosto_spento.c" |
billycorgan123 | 1:8a54b7de2617 | 9 | #include "Lampadina_acceso.c" |
billycorgan123 | 1:8a54b7de2617 | 10 | #include "Lampadina_spento.c" |
billycorgan123 | 2:6b24c77e16b6 | 11 | #include "Ventilatore_turbo_acceso.c" |
billycorgan123 | 2:6b24c77e16b6 | 12 | #include "Ventilatore_turbo_spento.c" |
billycorgan123 | 1:8a54b7de2617 | 13 | #include "Resistenza1_acceso.c" |
billycorgan123 | 1:8a54b7de2617 | 14 | #include "Resistenza1_spento.c" |
billycorgan123 | 1:8a54b7de2617 | 15 | #include "Resistenza2_acceso.c" |
billycorgan123 | 1:8a54b7de2617 | 16 | #include "Resistenza2_spento.c" |
billycorgan123 | 2:6b24c77e16b6 | 17 | #include "Cooling_acceso.c" |
billycorgan123 | 2:6b24c77e16b6 | 18 | #include "Cooling_spento.c" |
billycorgan123 | 1:8a54b7de2617 | 19 | #include "Ventilatore2_acceso.c" |
billycorgan123 | 1:8a54b7de2617 | 20 | #include "Ventilatore2_spento.c" |
billycorgan123 | 1:8a54b7de2617 | 21 | |
billycorgan123 | 1:8a54b7de2617 | 22 | #include "Clean.c" |
billycorgan123 | 1:8a54b7de2617 | 23 | #include "Roast.c" |
billycorgan123 | 1:8a54b7de2617 | 24 | #include "Stop.c" |
billycorgan123 | 1:8a54b7de2617 | 25 | |
billycorgan123 | 1:8a54b7de2617 | 26 | #include "functions.h" |
billycorgan123 | 1:8a54b7de2617 | 27 | #include "colors.c" |
billycorgan123 | 1:8a54b7de2617 | 28 | #include "Output.h" |
billycorgan123 | 1:8a54b7de2617 | 29 | #include "Shifter.h" |
billycorgan123 | 0:d421f2c38453 | 30 | |
billycorgan123 | 0:d421f2c38453 | 31 | LCD_DISCO_F746NG lcd; |
billycorgan123 | 1:8a54b7de2617 | 32 | TS_DISCO_F746NG ts; |
billycorgan123 | 1:8a54b7de2617 | 33 | |
billycorgan123 | 2:6b24c77e16b6 | 34 | extern void clean(int, float, float); |
billycorgan123 | 2:6b24c77e16b6 | 35 | extern void roast(int, int); |
billycorgan123 | 1:8a54b7de2617 | 36 | extern void stop(); |
billycorgan123 | 2:6b24c77e16b6 | 37 | extern void sportello_scarico(bool); |
billycorgan123 | 1:8a54b7de2617 | 38 | extern void object_update(); |
billycorgan123 | 1:8a54b7de2617 | 39 | |
billycorgan123 | 1:8a54b7de2617 | 40 | TS_StateTypeDef TS_State; |
billycorgan123 | 1:8a54b7de2617 | 41 | uint16_t X, Y; |
billycorgan123 | 1:8a54b7de2617 | 42 | uint8_t idx; |
billycorgan123 | 1:8a54b7de2617 | 43 | uint8_t status; |
billycorgan123 | 1:8a54b7de2617 | 44 | uint8_t cleared = 0; |
billycorgan123 | 1:8a54b7de2617 | 45 | uint8_t prev_nb_touches = 0; |
billycorgan123 | 1:8a54b7de2617 | 46 | int numerotappe=0; |
billycorgan123 | 1:8a54b7de2617 | 47 | uint8_t text[30]; |
billycorgan123 | 1:8a54b7de2617 | 48 | |
billycorgan123 | 2:6b24c77e16b6 | 49 | Output Bloccoporta; // |
billycorgan123 | 2:6b24c77e16b6 | 50 | Output Girarrosto; // palette agita caffé |
billycorgan123 | 2:6b24c77e16b6 | 51 | Output Lampadina; // |
billycorgan123 | 2:6b24c77e16b6 | 52 | Output Ventilatore_turbo; // ventilatore turbo |
billycorgan123 | 2:6b24c77e16b6 | 53 | Output Scarico_caffe; // motore scarico caffé |
billycorgan123 | 2:6b24c77e16b6 | 54 | Output Resistenza1; // |
billycorgan123 | 2:6b24c77e16b6 | 55 | Output Resistenza2; // |
billycorgan123 | 2:6b24c77e16b6 | 56 | Output Cooling; // cooling |
billycorgan123 | 2:6b24c77e16b6 | 57 | Output Ventilatore2; // cassetto |
billycorgan123 | 2:6b24c77e16b6 | 58 | |
billycorgan123 | 2:6b24c77e16b6 | 59 | AnalogIn Temperatura_forno(A0); |
billycorgan123 | 2:6b24c77e16b6 | 60 | AnalogIn Temperatura_sonda1(A1); //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 61 | AnalogIn Temperatura_sonda2(A2); //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 62 | AnalogIn Temperatura_sonda3(A3); //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 63 | AnalogIn Temperatura_sonda4(A4); //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 64 | AnalogIn Temperatura_sonda5(A5); //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 65 | |
billycorgan123 | 2:6b24c77e16b6 | 66 | CD74HC165E Sensore(D12, D10, D9); //(PinName PL, PinName CP, PinName Q7); |
billycorgan123 | 2:6b24c77e16b6 | 67 | bool* sensori; |
billycorgan123 | 2:6b24c77e16b6 | 68 | bool switch1=sensori[0]; //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 69 | bool switch2=sensori[1]; //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 70 | bool switch3=sensori[2]; //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 71 | bool switch4=sensori[3]; //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 72 | bool switch5=sensori[4]; //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 73 | bool switch6=sensori[5]; //da dare un nome |
billycorgan123 | 2:6b24c77e16b6 | 74 | |
billycorgan123 | 2:6b24c77e16b6 | 75 | int switch_aperto; |
billycorgan123 | 2:6b24c77e16b6 | 76 | int switch_chiuso; |
billycorgan123 | 1:8a54b7de2617 | 77 | |
billycorgan123 | 1:8a54b7de2617 | 78 | Shifter scheda_8relay; //!! pinout defined in library |
billycorgan123 | 0:d421f2c38453 | 79 | |
billycorgan123 | 0:d421f2c38453 | 80 | int main() |
billycorgan123 | 0:d421f2c38453 | 81 | { |
billycorgan123 | 1:8a54b7de2617 | 82 | setup_griglia(); |
billycorgan123 | 2:6b24c77e16b6 | 83 | lcd.SetBackColor(light_sky_blue); |
billycorgan123 | 2:6b24c77e16b6 | 84 | lcd.SetFont(&Font24); |
billycorgan123 | 2:6b24c77e16b6 | 85 | lcd.SetTextColor(black); |
billycorgan123 | 0:d421f2c38453 | 86 | while(1) { |
billycorgan123 | 1:8a54b7de2617 | 87 | //acquisisco la pressione sullo schermo per attivare i vari oggetti |
billycorgan123 | 1:8a54b7de2617 | 88 | ts.ResetTouchData(&TS_State); |
billycorgan123 | 1:8a54b7de2617 | 89 | ts.GetState(&TS_State); |
billycorgan123 | 1:8a54b7de2617 | 90 | X = TS_State.touchX[0]; //acquisisco la X |
billycorgan123 | 1:8a54b7de2617 | 91 | Y = TS_State.touchY[0]; //acquisisco la Y |
billycorgan123 | 2:6b24c77e16b6 | 92 | |
billycorgan123 | 2:6b24c77e16b6 | 93 | if (X>=20 && X<120 && Y>=20 && Y<80) { //ROAST |
billycorgan123 | 2:6b24c77e16b6 | 94 | roast(160,900); |
billycorgan123 | 0:d421f2c38453 | 95 | } |
billycorgan123 | 2:6b24c77e16b6 | 96 | if (X>=20 && X<120 && Y>=90 && Y<150) { //CLEAN |
billycorgan123 | 2:6b24c77e16b6 | 97 | clean(7200, 430.0, 460.0); |
billycorgan123 | 1:8a54b7de2617 | 98 | } |
billycorgan123 | 2:6b24c77e16b6 | 99 | if (X>=20 && X<120 && Y>=160 && Y<220) { //STOP |
billycorgan123 | 1:8a54b7de2617 | 100 | |
billycorgan123 | 1:8a54b7de2617 | 101 | } |
billycorgan123 | 1:8a54b7de2617 | 102 | if (TS_State.touchDetected) wait(0.1); |
billycorgan123 | 2:6b24c77e16b6 | 103 | |
billycorgan123 | 1:8a54b7de2617 | 104 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 105 | |
billycorgan123 | 1:8a54b7de2617 | 106 | wait(0.1); |
billycorgan123 | 0:d421f2c38453 | 107 | }//close while(1) |
billycorgan123 | 0:d421f2c38453 | 108 | }//close main |
billycorgan123 | 1:8a54b7de2617 | 109 | |
billycorgan123 | 2:6b24c77e16b6 | 110 | //CLEAN |
billycorgan123 | 2:6b24c77e16b6 | 111 | void clean(int clean_time, float setpointLOW, float setpointHIGH) |
billycorgan123 | 1:8a54b7de2617 | 112 | { |
billycorgan123 | 1:8a54b7de2617 | 113 | Timer timer; |
billycorgan123 | 1:8a54b7de2617 | 114 | timer.start(); |
billycorgan123 | 1:8a54b7de2617 | 115 | int previous_time, actual_time; |
billycorgan123 | 1:8a54b7de2617 | 116 | previous_time = timer.read(); |
billycorgan123 | 2:6b24c77e16b6 | 117 | Lampadina.stato=0; |
billycorgan123 | 1:8a54b7de2617 | 118 | Resistenza1.stato=1; |
billycorgan123 | 1:8a54b7de2617 | 119 | Resistenza2.stato=1; |
billycorgan123 | 2:6b24c77e16b6 | 120 | Cooling.stato=1; //accendo ventilazione raffreddamento |
billycorgan123 | 2:6b24c77e16b6 | 121 | Bloccoporta.stato=1; // chiudo porta |
billycorgan123 | 2:6b24c77e16b6 | 122 | lcd.DisplayStringAt(0, LINE(10), (uint8_t *)"CLEAN ATTIVO ", LEFT_MODE); |
billycorgan123 | 2:6b24c77e16b6 | 123 | // dovrei verificare se il tappo caffé è chiuso ma per ora non ho switch, aggiungere oggetto switch1 |
billycorgan123 | 2:6b24c77e16b6 | 124 | |
billycorgan123 | 2:6b24c77e16b6 | 125 | // dovrei verificare se sportello caffé chiuso, aggiungere oggetto switch2 |
billycorgan123 | 1:8a54b7de2617 | 126 | |
billycorgan123 | 1:8a54b7de2617 | 127 | while(1) { |
billycorgan123 | 1:8a54b7de2617 | 128 | actual_time = timer.read(); |
billycorgan123 | 1:8a54b7de2617 | 129 | uint8_t text[30]; |
billycorgan123 | 1:8a54b7de2617 | 130 | //acquisisco la pressione sullo schermo per attivare i vari oggetti |
billycorgan123 | 1:8a54b7de2617 | 131 | ts.ResetTouchData(&TS_State); |
billycorgan123 | 1:8a54b7de2617 | 132 | ts.GetState(&TS_State); |
billycorgan123 | 1:8a54b7de2617 | 133 | int X = TS_State.touchX[0]; //acquisisco la X |
billycorgan123 | 1:8a54b7de2617 | 134 | int Y = TS_State.touchY[0]; //acquisisco la Y |
billycorgan123 | 1:8a54b7de2617 | 135 | if (X>=20 && X<120 && Y>=160 && Y<220) { //STOP |
billycorgan123 | 1:8a54b7de2617 | 136 | stop(); |
billycorgan123 | 1:8a54b7de2617 | 137 | break; |
billycorgan123 | 1:8a54b7de2617 | 138 | } |
billycorgan123 | 1:8a54b7de2617 | 139 | //countdown dal clean_time a zero |
billycorgan123 | 1:8a54b7de2617 | 140 | if (actual_time-previous_time >=1) { |
billycorgan123 | 1:8a54b7de2617 | 141 | lcd.SetTextColor(black); |
billycorgan123 | 1:8a54b7de2617 | 142 | sprintf((char*)text, "%5d", clean_time); |
billycorgan123 | 1:8a54b7de2617 | 143 | lcd.DisplayStringAt(130,100, (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 1:8a54b7de2617 | 144 | previous_time = actual_time; |
billycorgan123 | 1:8a54b7de2617 | 145 | clean_time--; |
billycorgan123 | 1:8a54b7de2617 | 146 | } |
billycorgan123 | 1:8a54b7de2617 | 147 | //se il tempo di clean è finito porto gli output a zero e aggiorno, poi esco dal ciclo |
billycorgan123 | 1:8a54b7de2617 | 148 | if (clean_time<0) { |
billycorgan123 | 1:8a54b7de2617 | 149 | stop(); |
billycorgan123 | 1:8a54b7de2617 | 150 | break; |
billycorgan123 | 1:8a54b7de2617 | 151 | } |
billycorgan123 | 2:6b24c77e16b6 | 152 | |
billycorgan123 | 2:6b24c77e16b6 | 153 | // regolo temperatura clean |
billycorgan123 | 2:6b24c77e16b6 | 154 | if (Temperatura_forno.read() < setpointLOW) { |
billycorgan123 | 2:6b24c77e16b6 | 155 | Resistenza1.stato=1; |
billycorgan123 | 2:6b24c77e16b6 | 156 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 157 | //acquisisco la pressione sullo schermo per attivare i vari oggetti |
billycorgan123 | 2:6b24c77e16b6 | 158 | ts.ResetTouchData(&TS_State); |
billycorgan123 | 2:6b24c77e16b6 | 159 | ts.GetState(&TS_State); |
billycorgan123 | 2:6b24c77e16b6 | 160 | int X = TS_State.touchX[0]; //acquisisco la X |
billycorgan123 | 2:6b24c77e16b6 | 161 | int Y = TS_State.touchY[0]; //acquisisco la Y |
billycorgan123 | 2:6b24c77e16b6 | 162 | if (X>=20 && X<120 && Y>=160 && Y<220) { //STOP |
billycorgan123 | 2:6b24c77e16b6 | 163 | stop(); |
billycorgan123 | 2:6b24c77e16b6 | 164 | break; |
billycorgan123 | 2:6b24c77e16b6 | 165 | } |
billycorgan123 | 2:6b24c77e16b6 | 166 | } |
billycorgan123 | 2:6b24c77e16b6 | 167 | if (Temperatura_forno.read() > setpointHIGH) { |
billycorgan123 | 2:6b24c77e16b6 | 168 | Resistenza1.stato=0; |
billycorgan123 | 2:6b24c77e16b6 | 169 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 170 | //acquisisco la pressione sullo schermo per attivare i vari oggetti |
billycorgan123 | 2:6b24c77e16b6 | 171 | ts.ResetTouchData(&TS_State); |
billycorgan123 | 2:6b24c77e16b6 | 172 | ts.GetState(&TS_State); |
billycorgan123 | 2:6b24c77e16b6 | 173 | int X = TS_State.touchX[0]; //acquisisco la X |
billycorgan123 | 2:6b24c77e16b6 | 174 | int Y = TS_State.touchY[0]; //acquisisco la Y |
billycorgan123 | 2:6b24c77e16b6 | 175 | if (X>=20 && X<120 && Y>=160 && Y<220) { //STOP |
billycorgan123 | 2:6b24c77e16b6 | 176 | stop(); |
billycorgan123 | 2:6b24c77e16b6 | 177 | break; |
billycorgan123 | 2:6b24c77e16b6 | 178 | } |
billycorgan123 | 2:6b24c77e16b6 | 179 | } |
billycorgan123 | 1:8a54b7de2617 | 180 | object_update(); |
billycorgan123 | 1:8a54b7de2617 | 181 | } |
billycorgan123 | 1:8a54b7de2617 | 182 | } |
billycorgan123 | 2:6b24c77e16b6 | 183 | |
billycorgan123 | 2:6b24c77e16b6 | 184 | //STOP |
billycorgan123 | 1:8a54b7de2617 | 185 | void stop() |
billycorgan123 | 2:6b24c77e16b6 | 186 | { |
billycorgan123 | 2:6b24c77e16b6 | 187 | //imposto TUTTI gli output, poi aggiorno |
billycorgan123 | 2:6b24c77e16b6 | 188 | Bloccoporta.stato=1; |
billycorgan123 | 2:6b24c77e16b6 | 189 | Cooling.stato=1; |
billycorgan123 | 2:6b24c77e16b6 | 190 | Ventilatore_turbo.stato=0; |
billycorgan123 | 1:8a54b7de2617 | 191 | Lampadina.stato=0; |
billycorgan123 | 1:8a54b7de2617 | 192 | Resistenza1.stato=0; |
billycorgan123 | 1:8a54b7de2617 | 193 | Resistenza2.stato=0; |
billycorgan123 | 2:6b24c77e16b6 | 194 | Girarrosto.stato=0; |
billycorgan123 | 2:6b24c77e16b6 | 195 | Scarico_caffe.fermo(); |
billycorgan123 | 2:6b24c77e16b6 | 196 | Ventilatore2.stato=0; |
billycorgan123 | 2:6b24c77e16b6 | 197 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 198 | lcd.DisplayStringAt(0, LINE(10), (uint8_t *)" S T O P ", LEFT_MODE); |
billycorgan123 | 2:6b24c77e16b6 | 199 | //da correggere, mettere le 2 grandezze nella stessa dimensione |
billycorgan123 | 2:6b24c77e16b6 | 200 | while (Temperatura_forno.read()>150) { |
billycorgan123 | 2:6b24c77e16b6 | 201 | wait(1.0); |
billycorgan123 | 2:6b24c77e16b6 | 202 | // scrivo qualcosa a video?? |
billycorgan123 | 2:6b24c77e16b6 | 203 | } |
billycorgan123 | 2:6b24c77e16b6 | 204 | Cooling.stato=0; // spengo ventilazione raffreddamento |
billycorgan123 | 2:6b24c77e16b6 | 205 | Bloccoporta.stato=0; // apro porta |
billycorgan123 | 2:6b24c77e16b6 | 206 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 207 | } |
billycorgan123 | 2:6b24c77e16b6 | 208 | |
billycorgan123 | 2:6b24c77e16b6 | 209 | //SPORTELLO_SCARICO |
billycorgan123 | 2:6b24c77e16b6 | 210 | void sportello_scarico(bool isDoorOpen) |
billycorgan123 | 2:6b24c77e16b6 | 211 | { |
billycorgan123 | 2:6b24c77e16b6 | 212 | if (isDoorOpen) { |
billycorgan123 | 2:6b24c77e16b6 | 213 | while (switch_aperto==0) { |
billycorgan123 | 2:6b24c77e16b6 | 214 | Scarico_caffe.avanti(); |
billycorgan123 | 2:6b24c77e16b6 | 215 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 216 | lcd.DisplayStringAt(0, LINE(10), (uint8_t *)"MOTORE AVANTI ", LEFT_MODE); |
billycorgan123 | 2:6b24c77e16b6 | 217 | } |
billycorgan123 | 2:6b24c77e16b6 | 218 | } else { |
billycorgan123 | 2:6b24c77e16b6 | 219 | while (switch_aperto==0) { |
billycorgan123 | 2:6b24c77e16b6 | 220 | Scarico_caffe.indietro(); |
billycorgan123 | 2:6b24c77e16b6 | 221 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 222 | lcd.DisplayStringAt(0, LINE(10), (uint8_t *)"MOTORE INDIETRO ", LEFT_MODE); |
billycorgan123 | 2:6b24c77e16b6 | 223 | } |
billycorgan123 | 2:6b24c77e16b6 | 224 | } |
billycorgan123 | 2:6b24c77e16b6 | 225 | Scarico_caffe.fermo(); |
billycorgan123 | 1:8a54b7de2617 | 226 | object_update(); |
billycorgan123 | 1:8a54b7de2617 | 227 | } |
billycorgan123 | 2:6b24c77e16b6 | 228 | |
billycorgan123 | 2:6b24c77e16b6 | 229 | //ROAST |
billycorgan123 | 2:6b24c77e16b6 | 230 | void roast (int roast_temp, int roast_time) |
billycorgan123 | 2:6b24c77e16b6 | 231 | { |
billycorgan123 | 2:6b24c77e16b6 | 232 | Timer timer; |
billycorgan123 | 2:6b24c77e16b6 | 233 | timer.start(); |
billycorgan123 | 2:6b24c77e16b6 | 234 | int previous_time, actual_time; |
billycorgan123 | 2:6b24c77e16b6 | 235 | previous_time = timer.read(); |
billycorgan123 | 2:6b24c77e16b6 | 236 | // ************* PREHEATING ***************** |
billycorgan123 | 2:6b24c77e16b6 | 237 | lcd.DisplayStringAt(0, LINE(10), (uint8_t *)"ROAST PREHEATING", LEFT_MODE); |
billycorgan123 | 2:6b24c77e16b6 | 238 | bool pre=1; |
billycorgan123 | 2:6b24c77e16b6 | 239 | Lampadina.stato=1; // accendo lampadina |
billycorgan123 | 2:6b24c77e16b6 | 240 | Ventilatore_turbo.stato=1; // accendo ventilazione raffreddamento |
billycorgan123 | 2:6b24c77e16b6 | 241 | Bloccoporta.stato=1; // chiudo porta |
billycorgan123 | 2:6b24c77e16b6 | 242 | // dovrei verificare se il tappo caffé è chiuso ma per ora non ho switch, aggiungere oggetto switch1 |
billycorgan123 | 2:6b24c77e16b6 | 243 | // dovrei verificare se sportello caffé chiuso, aggiungere oggetto switch2 |
billycorgan123 | 2:6b24c77e16b6 | 244 | |
billycorgan123 | 2:6b24c77e16b6 | 245 | while(Temperatura_forno.read()<roast_temp and pre) { |
billycorgan123 | 2:6b24c77e16b6 | 246 | Resistenza1.stato=1; |
billycorgan123 | 2:6b24c77e16b6 | 247 | Resistenza2.stato=1; |
billycorgan123 | 2:6b24c77e16b6 | 248 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 249 | actual_time = timer.read(); |
billycorgan123 | 2:6b24c77e16b6 | 250 | uint8_t text[30]; |
billycorgan123 | 2:6b24c77e16b6 | 251 | |
billycorgan123 | 2:6b24c77e16b6 | 252 | // scrivo a video qualcosa .... |
billycorgan123 | 2:6b24c77e16b6 | 253 | |
billycorgan123 | 2:6b24c77e16b6 | 254 | //acquisisco la pressione sullo schermo per attivare i vari oggetti |
billycorgan123 | 2:6b24c77e16b6 | 255 | ts.ResetTouchData(&TS_State); |
billycorgan123 | 2:6b24c77e16b6 | 256 | ts.GetState(&TS_State); |
billycorgan123 | 2:6b24c77e16b6 | 257 | int X = TS_State.touchX[0]; //acquisisco la X |
billycorgan123 | 2:6b24c77e16b6 | 258 | int Y = TS_State.touchY[0]; //acquisisco la Y |
billycorgan123 | 2:6b24c77e16b6 | 259 | if (X>=20 && X<120 && Y>=160 && Y<220) { //STOP |
billycorgan123 | 2:6b24c77e16b6 | 260 | stop(); |
billycorgan123 | 2:6b24c77e16b6 | 261 | break; |
billycorgan123 | 2:6b24c77e16b6 | 262 | } |
billycorgan123 | 2:6b24c77e16b6 | 263 | } |
billycorgan123 | 2:6b24c77e16b6 | 264 | |
billycorgan123 | 2:6b24c77e16b6 | 265 | pre=0; |
billycorgan123 | 2:6b24c77e16b6 | 266 | // ************* ROAST ******************* |
billycorgan123 | 2:6b24c77e16b6 | 267 | lcd.DisplayStringAt(0, LINE(10), (uint8_t *)"ROAST ", LEFT_MODE); |
billycorgan123 | 2:6b24c77e16b6 | 268 | Resistenza2.stato=0; // spengo extra resistenza |
billycorgan123 | 2:6b24c77e16b6 | 269 | Girarrosto.stato=1; // faccio partire motore mescolatore |
billycorgan123 | 2:6b24c77e16b6 | 270 | Ventilatore_turbo.stato=1; // faccio partire turbo |
billycorgan123 | 2:6b24c77e16b6 | 271 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 272 | |
billycorgan123 | 2:6b24c77e16b6 | 273 | // aspetto carico caffé |
billycorgan123 | 2:6b24c77e16b6 | 274 | /* |
billycorgan123 | 2:6b24c77e16b6 | 275 | while (switch_carico=aperto) |
billycorgan123 | 2:6b24c77e16b6 | 276 | { |
billycorgan123 | 2:6b24c77e16b6 | 277 | } |
billycorgan123 | 2:6b24c77e16b6 | 278 | */ |
billycorgan123 | 2:6b24c77e16b6 | 279 | |
billycorgan123 | 2:6b24c77e16b6 | 280 | //se il tempo di roast è finito porto gli output a zero e aggiorno, poi esco dal ciclo |
billycorgan123 | 2:6b24c77e16b6 | 281 | while (roast_time>0) { |
billycorgan123 | 2:6b24c77e16b6 | 282 | actual_time = timer.read(); |
billycorgan123 | 2:6b24c77e16b6 | 283 | uint8_t text[30]; |
billycorgan123 | 2:6b24c77e16b6 | 284 | //acquisisco la pressione sullo schermo per attivare i vari oggetti |
billycorgan123 | 2:6b24c77e16b6 | 285 | ts.ResetTouchData(&TS_State); |
billycorgan123 | 2:6b24c77e16b6 | 286 | ts.GetState(&TS_State); |
billycorgan123 | 2:6b24c77e16b6 | 287 | int X = TS_State.touchX[0]; //acquisisco la X |
billycorgan123 | 2:6b24c77e16b6 | 288 | int Y = TS_State.touchY[0]; //acquisisco la Y |
billycorgan123 | 2:6b24c77e16b6 | 289 | if (X>=20 && X<120 && Y>=160 && Y<220) { //STOP |
billycorgan123 | 2:6b24c77e16b6 | 290 | // stop(); |
billycorgan123 | 2:6b24c77e16b6 | 291 | break; |
billycorgan123 | 2:6b24c77e16b6 | 292 | } |
billycorgan123 | 2:6b24c77e16b6 | 293 | //countdown dal roast_time a zero |
billycorgan123 | 2:6b24c77e16b6 | 294 | if (actual_time-previous_time >=1) { |
billycorgan123 | 2:6b24c77e16b6 | 295 | lcd.SetFont(&Font24); |
billycorgan123 | 2:6b24c77e16b6 | 296 | lcd.SetTextColor(black); |
billycorgan123 | 2:6b24c77e16b6 | 297 | sprintf((char*)text, "%5d", roast_time); |
billycorgan123 | 2:6b24c77e16b6 | 298 | lcd.DisplayStringAt(130,100, (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 2:6b24c77e16b6 | 299 | previous_time = actual_time; |
billycorgan123 | 2:6b24c77e16b6 | 300 | roast_time--; |
billycorgan123 | 2:6b24c77e16b6 | 301 | // regolo temperatura roast |
billycorgan123 | 2:6b24c77e16b6 | 302 | if (Temperatura_sonda1.read()<roast_temp-5) { |
billycorgan123 | 2:6b24c77e16b6 | 303 | Resistenza1.stato=1; |
billycorgan123 | 2:6b24c77e16b6 | 304 | // aggiorno stato video |
billycorgan123 | 2:6b24c77e16b6 | 305 | } |
billycorgan123 | 2:6b24c77e16b6 | 306 | if (Temperatura_sonda1.read()>roast_temp+5) { |
billycorgan123 | 2:6b24c77e16b6 | 307 | Resistenza1.stato=0; |
billycorgan123 | 2:6b24c77e16b6 | 308 | // aggiorno stato video |
billycorgan123 | 2:6b24c77e16b6 | 309 | } |
billycorgan123 | 2:6b24c77e16b6 | 310 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 311 | } |
billycorgan123 | 2:6b24c77e16b6 | 312 | |
billycorgan123 | 2:6b24c77e16b6 | 313 | // *************** scarico caffè *********** |
billycorgan123 | 2:6b24c77e16b6 | 314 | Resistenza1.stato=0; //spengo forno |
billycorgan123 | 2:6b24c77e16b6 | 315 | Ventilatore2.stato=1; // accendo raffreddamento cassetto |
billycorgan123 | 2:6b24c77e16b6 | 316 | object_update(); |
billycorgan123 | 2:6b24c77e16b6 | 317 | wait(2); |
billycorgan123 | 2:6b24c77e16b6 | 318 | sportello_scarico(1); // apro scarico |
billycorgan123 | 2:6b24c77e16b6 | 319 | wait(2); |
billycorgan123 | 2:6b24c77e16b6 | 320 | sportello_scarico(0); // chiudo scarico |
billycorgan123 | 2:6b24c77e16b6 | 321 | // aspetto 1 minuto e spengo raffreddamento caffé |
billycorgan123 | 2:6b24c77e16b6 | 322 | wait(60); |
billycorgan123 | 2:6b24c77e16b6 | 323 | } |
billycorgan123 | 2:6b24c77e16b6 | 324 | // spengo tutto |
billycorgan123 | 2:6b24c77e16b6 | 325 | stop(); |
billycorgan123 | 2:6b24c77e16b6 | 326 | } |
billycorgan123 | 2:6b24c77e16b6 | 327 | |
billycorgan123 | 2:6b24c77e16b6 | 328 | //OBJECT_UPDATE |
billycorgan123 | 1:8a54b7de2617 | 329 | void object_update() |
billycorgan123 | 2:6b24c77e16b6 | 330 | { |
billycorgan123 | 2:6b24c77e16b6 | 331 | //update delle immagini e dello stato delle uscite |
billycorgan123 | 1:8a54b7de2617 | 332 | //disegno lo stato dei vari oggetti |
billycorgan123 | 1:8a54b7de2617 | 333 | Lampadina.draw_image (&_acLampadina_acceso[0], &_acLampadina_spento[0], Lampadina.stato, 310, 0); |
billycorgan123 | 2:6b24c77e16b6 | 334 | Ventilatore_turbo.draw_image (&_acVentilatore_turbo_acceso[0], &_acVentilatore_turbo_spento[0], Ventilatore_turbo.stato, 310, 60); |
billycorgan123 | 2:6b24c77e16b6 | 335 | Cooling.draw_image (&_acCooling_acceso[0], &_acCooling_spento[0], Cooling.stato, 310, 120); |
billycorgan123 | 1:8a54b7de2617 | 336 | Ventilatore2.draw_image (&_acVentilatore2_acceso[0], &_acVentilatore2_spento[0], Ventilatore2.stato, 310, 180); |
billycorgan123 | 1:8a54b7de2617 | 337 | Bloccoporta.draw_image (&_acBloccoporta_acceso[0], &_acBloccoporta_spento[0], Bloccoporta.stato, 360, 0); |
billycorgan123 | 1:8a54b7de2617 | 338 | Girarrosto.draw_image (&_acGirarrosto_acceso[0], &_acGirarrosto_spento[0], Girarrosto.stato, 360, 60); |
billycorgan123 | 1:8a54b7de2617 | 339 | Resistenza1.draw_image (&_acResistenza1_acceso[0], &_acResistenza1_spento[0], Resistenza1.stato, 360, 120); |
billycorgan123 | 1:8a54b7de2617 | 340 | Resistenza2.draw_image (&_acResistenza2_acceso[0], &_acResistenza2_spento[0], Resistenza2.stato, 360, 180); |
billycorgan123 | 1:8a54b7de2617 | 341 | //update uscita 74HC595 |
billycorgan123 | 2:6b24c77e16b6 | 342 | bool array[16]= {Bloccoporta.stato, Girarrosto.stato, Lampadina.stato, Ventilatore_turbo.stato, Resistenza1.stato, Resistenza2.stato, Cooling.stato, Ventilatore2.stato, Scarico_caffe.DCmotorA1, Scarico_caffe.DCmotorA2, 0,0,0,0,0,0}; |
billycorgan123 | 1:8a54b7de2617 | 343 | for (int i=0; i<16; i++) scheda_8relay.setPin(i,array[i]); |
billycorgan123 | 1:8a54b7de2617 | 344 | scheda_8relay.write(); |
billycorgan123 | 2:6b24c77e16b6 | 345 | //update sensori ingresso |
billycorgan123 | 2:6b24c77e16b6 | 346 | sensori=Sensore.Read(); |
billycorgan123 | 2:6b24c77e16b6 | 347 | /* |
billycorgan123 | 2:6b24c77e16b6 | 348 | for (int i=7; i>=0; i--) { //D7,D6,.....,D1,D0 |
billycorgan123 | 2:6b24c77e16b6 | 349 | sprintf((char*)text, "%d", sensori[0+i]); |
billycorgan123 | 2:6b24c77e16b6 | 350 | lcd.DisplayStringAt(10,LINE(i), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 2:6b24c77e16b6 | 351 | printf(" %d", sensori[0+i]); |
billycorgan123 | 2:6b24c77e16b6 | 352 | }*/ |
billycorgan123 | 1:8a54b7de2617 | 353 | } |