roasting
Dependencies: BSP_DISCO_F469NI LCD_DISCO_F469NI Shifter2 TS_DISCO_F469NI max31865 mbed
functions.h@0:f2c01a50c329, 2018-05-23 (annotated)
- Committer:
- billycorgan123
- Date:
- Wed May 23 09:17:17 2018 +0000
- Revision:
- 0:f2c01a50c329
roasting
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
billycorgan123 | 0:f2c01a50c329 | 1 | #ifndef FUCTIONS_H |
billycorgan123 | 0:f2c01a50c329 | 2 | #define FUNCTIONS_H |
billycorgan123 | 0:f2c01a50c329 | 3 | |
billycorgan123 | 0:f2c01a50c329 | 4 | #include "colors.c" |
billycorgan123 | 0:f2c01a50c329 | 5 | #include "mbed.h" |
billycorgan123 | 0:f2c01a50c329 | 6 | #include "Output.h" |
billycorgan123 | 0:f2c01a50c329 | 7 | #include "Shifter.h" |
billycorgan123 | 0:f2c01a50c329 | 8 | #include "LCD_DISCO_F469NI.h" |
billycorgan123 | 0:f2c01a50c329 | 9 | |
billycorgan123 | 0:f2c01a50c329 | 10 | LCD_DISCO_F469NI lcd; |
billycorgan123 | 0:f2c01a50c329 | 11 | TS_DISCO_F469NI ts; |
billycorgan123 | 0:f2c01a50c329 | 12 | uint16_t X, Y; |
billycorgan123 | 0:f2c01a50c329 | 13 | uint8_t status; |
billycorgan123 | 0:f2c01a50c329 | 14 | uint8_t cleared = 0; |
billycorgan123 | 0:f2c01a50c329 | 15 | uint8_t prev_nb_touches = 0; |
billycorgan123 | 0:f2c01a50c329 | 16 | uint8_t text[30]; |
billycorgan123 | 0:f2c01a50c329 | 17 | |
billycorgan123 | 0:f2c01a50c329 | 18 | TS_StateTypeDef TS_State; |
billycorgan123 | 0:f2c01a50c329 | 19 | |
billycorgan123 | 0:f2c01a50c329 | 20 | Serial pc(SERIAL_TX, SERIAL_RX); |
billycorgan123 | 0:f2c01a50c329 | 21 | //MAX31865_RTD( ptd_type type,PinName mosi, PinName miso, PinName sclk, PinName nss); |
billycorgan123 | 0:f2c01a50c329 | 22 | MAX31865_RTD PT1(MAX31865_RTD::RTD_PT100, D11, D12, D13, A0); |
billycorgan123 | 0:f2c01a50c329 | 23 | MAX31865_RTD PT2(MAX31865_RTD::RTD_PT100, D11, D12, D13, A1); |
billycorgan123 | 0:f2c01a50c329 | 24 | MAX31865_RTD PT3(MAX31865_RTD::RTD_PT100, D11, D12, D13, A2); |
billycorgan123 | 0:f2c01a50c329 | 25 | |
billycorgan123 | 0:f2c01a50c329 | 26 | int temp_safe=150; |
billycorgan123 | 0:f2c01a50c329 | 27 | float setpointLOW = 430; |
billycorgan123 | 0:f2c01a50c329 | 28 | float setpointHIGH = 450; |
billycorgan123 | 0:f2c01a50c329 | 29 | int clean_time=7200; |
billycorgan123 | 0:f2c01a50c329 | 30 | int tempo =1200; |
billycorgan123 | 0:f2c01a50c329 | 31 | int temperatura_roast = 250; |
billycorgan123 | 0:f2c01a50c329 | 32 | |
billycorgan123 | 0:f2c01a50c329 | 33 | /// dichiarazione variabili //////////////////////////////////////////////////// |
billycorgan123 | 0:f2c01a50c329 | 34 | //per i sensori |
billycorgan123 | 0:f2c01a50c329 | 35 | static bool myDataIn[8] = {1,0,1,0,1,0,1,0}; |
billycorgan123 | 0:f2c01a50c329 | 36 | //myDataIn[0] tappo caffè chiuso; |
billycorgan123 | 0:f2c01a50c329 | 37 | //myDataIn[1] sensore porta chiusa; |
billycorgan123 | 0:f2c01a50c329 | 38 | //myDataIn[2] finecorsa sarico aperto; |
billycorgan123 | 0:f2c01a50c329 | 39 | //myDataIn[3] finecorsa scarico chiuso; |
billycorgan123 | 0:f2c01a50c329 | 40 | //myDataIn[4]; //da dare un nome |
billycorgan123 | 0:f2c01a50c329 | 41 | //myDataIn[5]; //da dare un nome |
billycorgan123 | 0:f2c01a50c329 | 42 | //myDataIn[6]; //da dare un nome |
billycorgan123 | 0:f2c01a50c329 | 43 | //myDataIn[7]; //da dare un nome |
billycorgan123 | 0:f2c01a50c329 | 44 | |
billycorgan123 | 0:f2c01a50c329 | 45 | //per i relay |
billycorgan123 | 0:f2c01a50c329 | 46 | Shifter scheda_8relay; //!! pinout defined in library |
billycorgan123 | 0:f2c01a50c329 | 47 | Output Bloccoporta; // |
billycorgan123 | 0:f2c01a50c329 | 48 | Output Giracaffe; // palette agita caffé |
billycorgan123 | 0:f2c01a50c329 | 49 | Output Lampadina; // Lampadina |
billycorgan123 | 0:f2c01a50c329 | 50 | Output VTangenziale; // 1 |
billycorgan123 | 0:f2c01a50c329 | 51 | Output VRadiale; // 2 |
billycorgan123 | 0:f2c01a50c329 | 52 | Output Scarico_caffe; // motore scarico caffé |
billycorgan123 | 0:f2c01a50c329 | 53 | Output Resistenza1; // |
billycorgan123 | 0:f2c01a50c329 | 54 | Output Resistenza2; // |
billycorgan123 | 0:f2c01a50c329 | 55 | Output Ventola; // cooling |
billycorgan123 | 0:f2c01a50c329 | 56 | |
billycorgan123 | 0:f2c01a50c329 | 57 | bool Activate_Door; //sul SSR per comandare il bloccoporta |
billycorgan123 | 0:f2c01a50c329 | 58 | enum {STOP, CLEAN, ROAST, PULSANTI, CLEAN_ATTIVO, ROAST_PRE, ROAST_ACTIVE}; |
billycorgan123 | 0:f2c01a50c329 | 59 | /// funzioni /////////////////////////////////////////////////////////////////// |
billycorgan123 | 0:f2c01a50c329 | 60 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 61 | void disegna_pulsanti(int pulsante) |
billycorgan123 | 0:f2c01a50c329 | 62 | { |
billycorgan123 | 0:f2c01a50c329 | 63 | int riga, colonna, contatore=0; |
billycorgan123 | 0:f2c01a50c329 | 64 | switch (pulsante) { |
billycorgan123 | 0:f2c01a50c329 | 65 | case 0: //STOP |
billycorgan123 | 0:f2c01a50c329 | 66 | contatore=0; |
billycorgan123 | 0:f2c01a50c329 | 67 | for (riga=0; riga<120; riga++) { |
billycorgan123 | 0:f2c01a50c329 | 68 | for ( colonna=0; colonna<120; colonna++) { |
billycorgan123 | 0:f2c01a50c329 | 69 | lcd.DrawPixel (20+colonna, 20+ riga, _acAPower[contatore]); |
billycorgan123 | 0:f2c01a50c329 | 70 | contatore++; |
billycorgan123 | 0:f2c01a50c329 | 71 | } |
billycorgan123 | 0:f2c01a50c329 | 72 | colonna=0; |
billycorgan123 | 0:f2c01a50c329 | 73 | } |
billycorgan123 | 0:f2c01a50c329 | 74 | //lcd.DrawRect (20, 20, 120, 120); |
billycorgan123 | 0:f2c01a50c329 | 75 | break; |
billycorgan123 | 0:f2c01a50c329 | 76 | case 1: //CLEAN |
billycorgan123 | 0:f2c01a50c329 | 77 | contatore=0; |
billycorgan123 | 0:f2c01a50c329 | 78 | for (riga=0; riga<120; riga++) { |
billycorgan123 | 0:f2c01a50c329 | 79 | for ( colonna=0; colonna<120; colonna++) { |
billycorgan123 | 0:f2c01a50c329 | 80 | lcd.DrawPixel (20+colonna, 165+ riga, _acAClean_0[contatore]); |
billycorgan123 | 0:f2c01a50c329 | 81 | contatore++; |
billycorgan123 | 0:f2c01a50c329 | 82 | } |
billycorgan123 | 0:f2c01a50c329 | 83 | colonna=0; |
billycorgan123 | 0:f2c01a50c329 | 84 | } |
billycorgan123 | 0:f2c01a50c329 | 85 | //lcd.DrawRect (20, 165, 120, 120); |
billycorgan123 | 0:f2c01a50c329 | 86 | break; |
billycorgan123 | 0:f2c01a50c329 | 87 | case 2: //ROAST |
billycorgan123 | 0:f2c01a50c329 | 88 | contatore=0; |
billycorgan123 | 0:f2c01a50c329 | 89 | for (riga=0; riga<120; riga++) { |
billycorgan123 | 0:f2c01a50c329 | 90 | for ( colonna=0; colonna<120; colonna++) { |
billycorgan123 | 0:f2c01a50c329 | 91 | lcd.DrawPixel (20+colonna, 290+ riga, _acARoast_0[contatore]); |
billycorgan123 | 0:f2c01a50c329 | 92 | contatore++; |
billycorgan123 | 0:f2c01a50c329 | 93 | } |
billycorgan123 | 0:f2c01a50c329 | 94 | colonna=0; |
billycorgan123 | 0:f2c01a50c329 | 95 | } |
billycorgan123 | 0:f2c01a50c329 | 96 | //lcd.DrawRect (20, 290, 120, 120); |
billycorgan123 | 0:f2c01a50c329 | 97 | break; |
billycorgan123 | 0:f2c01a50c329 | 98 | case 3: //pulsanti regolazione tempo e temperatura |
billycorgan123 | 0:f2c01a50c329 | 99 | for (riga=0; riga<140; riga++) { |
billycorgan123 | 0:f2c01a50c329 | 100 | for ( colonna=0; colonna<200; colonna++) { |
billycorgan123 | 0:f2c01a50c329 | 101 | lcd.DrawPixel (180+colonna, 270+ riga, _acAPulsanti[contatore]); |
billycorgan123 | 0:f2c01a50c329 | 102 | contatore++; |
billycorgan123 | 0:f2c01a50c329 | 103 | } |
billycorgan123 | 0:f2c01a50c329 | 104 | colonna=0; |
billycorgan123 | 0:f2c01a50c329 | 105 | } |
billycorgan123 | 0:f2c01a50c329 | 106 | break; |
billycorgan123 | 0:f2c01a50c329 | 107 | case 4: //CLEAN ATTIVO |
billycorgan123 | 0:f2c01a50c329 | 108 | contatore=0; |
billycorgan123 | 0:f2c01a50c329 | 109 | for (riga=0; riga<120; riga++) { |
billycorgan123 | 0:f2c01a50c329 | 110 | for ( colonna=0; colonna<120; colonna++) { |
billycorgan123 | 0:f2c01a50c329 | 111 | lcd.DrawPixel (20+colonna, 165+ riga, _acAClean_1[contatore]); |
billycorgan123 | 0:f2c01a50c329 | 112 | contatore++; |
billycorgan123 | 0:f2c01a50c329 | 113 | } |
billycorgan123 | 0:f2c01a50c329 | 114 | colonna=0; |
billycorgan123 | 0:f2c01a50c329 | 115 | } |
billycorgan123 | 0:f2c01a50c329 | 116 | //lcd.DrawRect (20, 165, 120, 120); |
billycorgan123 | 0:f2c01a50c329 | 117 | break; |
billycorgan123 | 0:f2c01a50c329 | 118 | case 5: //ROAST PRE |
billycorgan123 | 0:f2c01a50c329 | 119 | contatore=0; |
billycorgan123 | 0:f2c01a50c329 | 120 | for (riga=0; riga<120; riga++) { |
billycorgan123 | 0:f2c01a50c329 | 121 | for ( colonna=0; colonna<120; colonna++) { |
billycorgan123 | 0:f2c01a50c329 | 122 | lcd.DrawPixel (20+colonna, 290+ riga, _acARoast_1[contatore]); |
billycorgan123 | 0:f2c01a50c329 | 123 | contatore++; |
billycorgan123 | 0:f2c01a50c329 | 124 | } |
billycorgan123 | 0:f2c01a50c329 | 125 | colonna=0; |
billycorgan123 | 0:f2c01a50c329 | 126 | } |
billycorgan123 | 0:f2c01a50c329 | 127 | //lcd.DrawRect (20, 290, 120, 120); |
billycorgan123 | 0:f2c01a50c329 | 128 | break; |
billycorgan123 | 0:f2c01a50c329 | 129 | case 6: //ROAST ACTIVE |
billycorgan123 | 0:f2c01a50c329 | 130 | contatore=0; |
billycorgan123 | 0:f2c01a50c329 | 131 | for (riga=0; riga<120; riga++) { |
billycorgan123 | 0:f2c01a50c329 | 132 | for ( colonna=0; colonna<120; colonna++) { |
billycorgan123 | 0:f2c01a50c329 | 133 | lcd.DrawPixel (20+colonna, 290+ riga, _acARoast_2[contatore]); |
billycorgan123 | 0:f2c01a50c329 | 134 | contatore++; |
billycorgan123 | 0:f2c01a50c329 | 135 | } |
billycorgan123 | 0:f2c01a50c329 | 136 | colonna=0; |
billycorgan123 | 0:f2c01a50c329 | 137 | } |
billycorgan123 | 0:f2c01a50c329 | 138 | //lcd.DrawRect (20, 290, 120, 120); |
billycorgan123 | 0:f2c01a50c329 | 139 | break; |
billycorgan123 | 0:f2c01a50c329 | 140 | } |
billycorgan123 | 0:f2c01a50c329 | 141 | } |
billycorgan123 | 0:f2c01a50c329 | 142 | |
billycorgan123 | 0:f2c01a50c329 | 143 | bool setup_griglia() |
billycorgan123 | 0:f2c01a50c329 | 144 | { |
billycorgan123 | 0:f2c01a50c329 | 145 | lcd.Clear(light_sky_blue); |
billycorgan123 | 0:f2c01a50c329 | 146 | lcd.SetBackColor(light_sky_blue); |
billycorgan123 | 0:f2c01a50c329 | 147 | lcd.SetFont(&Font24); |
billycorgan123 | 0:f2c01a50c329 | 148 | lcd.SetTextColor(black); |
billycorgan123 | 0:f2c01a50c329 | 149 | lcd.DisplayStringAt(670, LINE(0), (uint8_t *)"Ver 1.0", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 150 | // disegno bottoni |
billycorgan123 | 0:f2c01a50c329 | 151 | disegna_pulsanti(STOP); |
billycorgan123 | 0:f2c01a50c329 | 152 | disegna_pulsanti(CLEAN); |
billycorgan123 | 0:f2c01a50c329 | 153 | disegna_pulsanti(ROAST); |
billycorgan123 | 0:f2c01a50c329 | 154 | disegna_pulsanti(PULSANTI); |
billycorgan123 | 0:f2c01a50c329 | 155 | |
billycorgan123 | 0:f2c01a50c329 | 156 | //lcd.DrawRect (180, 270, 200, 140); |
billycorgan123 | 0:f2c01a50c329 | 157 | //lcd.DrawRect (220, 270, 60, 60); |
billycorgan123 | 0:f2c01a50c329 | 158 | //lcd.DrawRect (325, 270, 60, 60); |
billycorgan123 | 0:f2c01a50c329 | 159 | //lcd.DrawRect (220, 350, 60, 60); |
billycorgan123 | 0:f2c01a50c329 | 160 | //lcd.DrawRect (325, 350, 60, 60); |
billycorgan123 | 0:f2c01a50c329 | 161 | |
billycorgan123 | 0:f2c01a50c329 | 162 | lcd.DisplayStringAt(200, LINE( 8), (uint8_t *)"Time:", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 163 | lcd.DisplayStringAt(330, LINE(8), (uint8_t *)"'", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 164 | lcd.DisplayStringAt(385, LINE(8), (uint8_t *)"''", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 165 | lcd.DisplayStringAt(200, LINE( 10), (uint8_t *)"Temp:", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 166 | lcd.DrawCircle(355, LINE(10)+3, 4); |
billycorgan123 | 0:f2c01a50c329 | 167 | lcd.DisplayStringAt(360, LINE( 10), (uint8_t *)"C", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 168 | lcd.DisplayStringAt(620, LINE( 9), (uint8_t *)"T1:", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 169 | lcd.DisplayStringAt(620, LINE(11), (uint8_t *)"T2:", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 170 | lcd.DisplayStringAt(620, LINE(13), (uint8_t *)"T3:", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 171 | |
billycorgan123 | 0:f2c01a50c329 | 172 | //per prova, da togliere dopo |
billycorgan123 | 0:f2c01a50c329 | 173 | lcd.SetTextColor(red); |
billycorgan123 | 0:f2c01a50c329 | 174 | lcd.FillRect (620, 20, 70, 70); |
billycorgan123 | 0:f2c01a50c329 | 175 | lcd.SetTextColor(green); |
billycorgan123 | 0:f2c01a50c329 | 176 | lcd.FillRect (620, 100, 70, 70); |
billycorgan123 | 0:f2c01a50c329 | 177 | lcd.SetTextColor(black); |
billycorgan123 | 0:f2c01a50c329 | 178 | //fino qui |
billycorgan123 | 0:f2c01a50c329 | 179 | |
billycorgan123 | 0:f2c01a50c329 | 180 | PT1.configure( true, true, false, false, MAX31865_FAULT_DETECTION_NONE, |
billycorgan123 | 0:f2c01a50c329 | 181 | true, true, 0x0000, 0x7fff ); |
billycorgan123 | 0:f2c01a50c329 | 182 | PT2.configure( true, true, false, false, MAX31865_FAULT_DETECTION_NONE, |
billycorgan123 | 0:f2c01a50c329 | 183 | true, true, 0x0000, 0x7fff ); |
billycorgan123 | 0:f2c01a50c329 | 184 | PT3.configure( true, true, false, false, MAX31865_FAULT_DETECTION_NONE, |
billycorgan123 | 0:f2c01a50c329 | 185 | true, true, 0x0000, 0x7fff ); |
billycorgan123 | 0:f2c01a50c329 | 186 | |
billycorgan123 | 0:f2c01a50c329 | 187 | return 0; |
billycorgan123 | 0:f2c01a50c329 | 188 | } |
billycorgan123 | 0:f2c01a50c329 | 189 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 190 | bool * getData() |
billycorgan123 | 0:f2c01a50c329 | 191 | { |
billycorgan123 | 0:f2c01a50c329 | 192 | //define where your pins are |
billycorgan123 | 0:f2c01a50c329 | 193 | DigitalOut latchPin(D7); |
billycorgan123 | 0:f2c01a50c329 | 194 | DigitalOut clockPin(D6); |
billycorgan123 | 0:f2c01a50c329 | 195 | DigitalIn dataPin(D5); |
billycorgan123 | 0:f2c01a50c329 | 196 | float tempoattesa = 20; |
billycorgan123 | 0:f2c01a50c329 | 197 | //acquiring values |
billycorgan123 | 0:f2c01a50c329 | 198 | latchPin.write(1); |
billycorgan123 | 0:f2c01a50c329 | 199 | wait_us(tempoattesa); |
billycorgan123 | 0:f2c01a50c329 | 200 | //read values acquired and store in array |
billycorgan123 | 0:f2c01a50c329 | 201 | latchPin.write(0); |
billycorgan123 | 0:f2c01a50c329 | 202 | for (int i=7; i>=0; i--) { |
billycorgan123 | 0:f2c01a50c329 | 203 | wait_us(tempoattesa); |
billycorgan123 | 0:f2c01a50c329 | 204 | clockPin.write(0); |
billycorgan123 | 0:f2c01a50c329 | 205 | wait_us(tempoattesa); |
billycorgan123 | 0:f2c01a50c329 | 206 | myDataIn[i] = dataPin.read(); //1 if OT open, 0 if OT close |
billycorgan123 | 0:f2c01a50c329 | 207 | clockPin.write(1); |
billycorgan123 | 0:f2c01a50c329 | 208 | } |
billycorgan123 | 0:f2c01a50c329 | 209 | //per prova da togliere dopo |
billycorgan123 | 0:f2c01a50c329 | 210 | for (int i=7; i>=0; i--) { // D7,D6,.....,D1,D0 |
billycorgan123 | 0:f2c01a50c329 | 211 | sprintf((char*)text, "%d", myDataIn[0+i]); |
billycorgan123 | 0:f2c01a50c329 | 212 | lcd.DisplayStringAt(580+20*i,LINE(8), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 213 | } |
billycorgan123 | 0:f2c01a50c329 | 214 | // |
billycorgan123 | 0:f2c01a50c329 | 215 | return myDataIn; |
billycorgan123 | 0:f2c01a50c329 | 216 | } |
billycorgan123 | 0:f2c01a50c329 | 217 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 218 | void object_update() |
billycorgan123 | 0:f2c01a50c329 | 219 | { |
billycorgan123 | 0:f2c01a50c329 | 220 | //update delle immagini e dello stato delle uscite |
billycorgan123 | 0:f2c01a50c329 | 221 | Lampadina.draw_image (&_acLampadina_acceso[0], &_acLampadina_spento[0], Lampadina.stato, 230, 20); |
billycorgan123 | 0:f2c01a50c329 | 222 | Resistenza1.draw_image (&_acResistenza1_acceso[0], &_acResistenza1_spento[0], Resistenza1.stato, 300, 20); |
billycorgan123 | 0:f2c01a50c329 | 223 | Resistenza2.draw_image (&_acResistenza2_acceso[0], &_acResistenza2_spento[0], Resistenza2.stato, 370, 20); |
billycorgan123 | 0:f2c01a50c329 | 224 | Giracaffe.draw_image (&_acGiracaffe_acceso[0], &_acGiracaffe_spento[0], Giracaffe.stato, 440, 20); |
billycorgan123 | 0:f2c01a50c329 | 225 | Bloccoporta.draw_image (&_acPorta_aperto[0], &_acPorta_chiuso[0], Bloccoporta.stato, 230, 90); |
billycorgan123 | 0:f2c01a50c329 | 226 | VTangenziale.draw_image (&_acVTangenziale_acceso[0], &_acVTangenziale_spento[0], VTangenziale.stato, 300, 90); |
billycorgan123 | 0:f2c01a50c329 | 227 | VRadiale.draw_image (&_acVRadiale_acceso[0], &_acVRadiale_spento[0], VRadiale.stato, 370, 90); |
billycorgan123 | 0:f2c01a50c329 | 228 | Ventola.draw_image (&_acVentola_acceso[0], &_acVentola_spento[0], Ventola.stato, 440, 90); |
billycorgan123 | 0:f2c01a50c329 | 229 | //update uscita 74HC595 |
billycorgan123 | 0:f2c01a50c329 | 230 | bool array[16]= {!Lampadina.stato, !Giracaffe.stato, !VTangenziale.stato, !Resistenza1.stato, !Resistenza2.stato, !VRadiale.stato, !Scarico_caffe.ON_OFF, !Scarico_caffe.CW_CCW, !Ventola.stato, Activate_Door,1,1,1,1,1,1}; |
billycorgan123 | 0:f2c01a50c329 | 231 | for (int i=0; i<16; i++) scheda_8relay.setPin(i,array[i]); |
billycorgan123 | 0:f2c01a50c329 | 232 | scheda_8relay.write(); |
billycorgan123 | 0:f2c01a50c329 | 233 | } |
billycorgan123 | 0:f2c01a50c329 | 234 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 235 | void temperature_update() |
billycorgan123 | 0:f2c01a50c329 | 236 | { |
billycorgan123 | 0:f2c01a50c329 | 237 | lcd.DisplayStringAt(680, LINE(9), (uint8_t *)" ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 238 | lcd.DisplayStringAt(680, LINE(11), (uint8_t *)" ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 239 | lcd.DisplayStringAt(680, LINE(13), (uint8_t *)" ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 240 | PT1.read_all( ); |
billycorgan123 | 0:f2c01a50c329 | 241 | if (PT1.temperature( )>150) lcd.SetTextColor(red); |
billycorgan123 | 0:f2c01a50c329 | 242 | else lcd.SetTextColor(black); |
billycorgan123 | 0:f2c01a50c329 | 243 | sprintf((char*)text, "%1.0f", PT1.temperature( )); |
billycorgan123 | 0:f2c01a50c329 | 244 | lcd.DisplayStringAt(680, LINE(9), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 245 | PT2.read_all( ); |
billycorgan123 | 0:f2c01a50c329 | 246 | if (PT2.temperature( )>150) lcd.SetTextColor(red); |
billycorgan123 | 0:f2c01a50c329 | 247 | else lcd.SetTextColor(black); |
billycorgan123 | 0:f2c01a50c329 | 248 | sprintf((char*)text, "%1.0f", PT2.temperature( )); |
billycorgan123 | 0:f2c01a50c329 | 249 | lcd.DisplayStringAt(680, LINE(11), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 250 | PT3.read_all( ); |
billycorgan123 | 0:f2c01a50c329 | 251 | if (PT3.temperature( )>150) lcd.SetTextColor(red); |
billycorgan123 | 0:f2c01a50c329 | 252 | else lcd.SetTextColor(black); |
billycorgan123 | 0:f2c01a50c329 | 253 | sprintf((char*)text, "%1.0f", PT3.temperature( )); |
billycorgan123 | 0:f2c01a50c329 | 254 | lcd.DisplayStringAt(680, LINE(13), (uint8_t *)&text, LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 255 | lcd.SetTextColor(black); |
billycorgan123 | 0:f2c01a50c329 | 256 | |
billycorgan123 | 0:f2c01a50c329 | 257 | //per sicurezza la temperatura non può superare i 450 gradi |
billycorgan123 | 0:f2c01a50c329 | 258 | if (PT1.temperature( )>450 || PT2.temperature( )>450) { |
billycorgan123 | 0:f2c01a50c329 | 259 | Resistenza1_spento(); |
billycorgan123 | 0:f2c01a50c329 | 260 | Resistenza2_spento(); |
billycorgan123 | 0:f2c01a50c329 | 261 | } |
billycorgan123 | 0:f2c01a50c329 | 262 | } |
billycorgan123 | 0:f2c01a50c329 | 263 | |
billycorgan123 | 0:f2c01a50c329 | 264 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 265 | /// Lampadina |
billycorgan123 | 0:f2c01a50c329 | 266 | void Lampadina_acceso() |
billycorgan123 | 0:f2c01a50c329 | 267 | { |
billycorgan123 | 0:f2c01a50c329 | 268 | Lampadina.stato=1; |
billycorgan123 | 0:f2c01a50c329 | 269 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 270 | } |
billycorgan123 | 0:f2c01a50c329 | 271 | void Lampadina_spento() |
billycorgan123 | 0:f2c01a50c329 | 272 | { |
billycorgan123 | 0:f2c01a50c329 | 273 | Lampadina.stato=0; |
billycorgan123 | 0:f2c01a50c329 | 274 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 275 | } |
billycorgan123 | 0:f2c01a50c329 | 276 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 277 | /// Resistenza 1 |
billycorgan123 | 0:f2c01a50c329 | 278 | void Resistenza1_acceso() |
billycorgan123 | 0:f2c01a50c329 | 279 | { |
billycorgan123 | 0:f2c01a50c329 | 280 | Resistenza1.stato=1; |
billycorgan123 | 0:f2c01a50c329 | 281 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 282 | } |
billycorgan123 | 0:f2c01a50c329 | 283 | void Resistenza1_spento() |
billycorgan123 | 0:f2c01a50c329 | 284 | { |
billycorgan123 | 0:f2c01a50c329 | 285 | Resistenza1.stato=0; |
billycorgan123 | 0:f2c01a50c329 | 286 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 287 | } |
billycorgan123 | 0:f2c01a50c329 | 288 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 289 | /// Resistenza 2 |
billycorgan123 | 0:f2c01a50c329 | 290 | void Resistenza2_acceso() |
billycorgan123 | 0:f2c01a50c329 | 291 | { |
billycorgan123 | 0:f2c01a50c329 | 292 | Resistenza2.stato=1; |
billycorgan123 | 0:f2c01a50c329 | 293 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 294 | } |
billycorgan123 | 0:f2c01a50c329 | 295 | void Resistenza2_spento() |
billycorgan123 | 0:f2c01a50c329 | 296 | { |
billycorgan123 | 0:f2c01a50c329 | 297 | Resistenza2.stato=0; |
billycorgan123 | 0:f2c01a50c329 | 298 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 299 | } |
billycorgan123 | 0:f2c01a50c329 | 300 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 301 | /// Ventola 12/24 volt |
billycorgan123 | 0:f2c01a50c329 | 302 | void Ventola_acceso() |
billycorgan123 | 0:f2c01a50c329 | 303 | { |
billycorgan123 | 0:f2c01a50c329 | 304 | Ventola.stato=1; |
billycorgan123 | 0:f2c01a50c329 | 305 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 306 | } |
billycorgan123 | 0:f2c01a50c329 | 307 | void Ventola_spento() |
billycorgan123 | 0:f2c01a50c329 | 308 | { |
billycorgan123 | 0:f2c01a50c329 | 309 | Ventola.stato=0; |
billycorgan123 | 0:f2c01a50c329 | 310 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 311 | } |
billycorgan123 | 0:f2c01a50c329 | 312 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 313 | /// Ventola Radiale |
billycorgan123 | 0:f2c01a50c329 | 314 | void VRadiale_acceso() |
billycorgan123 | 0:f2c01a50c329 | 315 | { |
billycorgan123 | 0:f2c01a50c329 | 316 | VRadiale.stato=1; |
billycorgan123 | 0:f2c01a50c329 | 317 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 318 | } |
billycorgan123 | 0:f2c01a50c329 | 319 | void VRadiale_spento() |
billycorgan123 | 0:f2c01a50c329 | 320 | { |
billycorgan123 | 0:f2c01a50c329 | 321 | VRadiale.stato=0; |
billycorgan123 | 0:f2c01a50c329 | 322 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 323 | } |
billycorgan123 | 0:f2c01a50c329 | 324 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 325 | /// Ventola Tangenziale |
billycorgan123 | 0:f2c01a50c329 | 326 | void VTangenziale_acceso() |
billycorgan123 | 0:f2c01a50c329 | 327 | { |
billycorgan123 | 0:f2c01a50c329 | 328 | VTangenziale.stato=1; |
billycorgan123 | 0:f2c01a50c329 | 329 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 330 | } |
billycorgan123 | 0:f2c01a50c329 | 331 | void VTangenziale_spento() |
billycorgan123 | 0:f2c01a50c329 | 332 | { |
billycorgan123 | 0:f2c01a50c329 | 333 | VTangenziale.stato=0; |
billycorgan123 | 0:f2c01a50c329 | 334 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 335 | } |
billycorgan123 | 0:f2c01a50c329 | 336 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 337 | /// Giracaffe |
billycorgan123 | 0:f2c01a50c329 | 338 | void Giracaffe_acceso() |
billycorgan123 | 0:f2c01a50c329 | 339 | { |
billycorgan123 | 0:f2c01a50c329 | 340 | Giracaffe.stato=1; |
billycorgan123 | 0:f2c01a50c329 | 341 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 342 | } |
billycorgan123 | 0:f2c01a50c329 | 343 | void Giracaffe_spento() |
billycorgan123 | 0:f2c01a50c329 | 344 | { |
billycorgan123 | 0:f2c01a50c329 | 345 | Giracaffe.stato=0; |
billycorgan123 | 0:f2c01a50c329 | 346 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 347 | } |
billycorgan123 | 0:f2c01a50c329 | 348 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 349 | ///Apro scarico caffe |
billycorgan123 | 0:f2c01a50c329 | 350 | bool Apro_scarico() |
billycorgan123 | 0:f2c01a50c329 | 351 | { |
billycorgan123 | 0:f2c01a50c329 | 352 | do { |
billycorgan123 | 0:f2c01a50c329 | 353 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"COFFE UNLOAD IS OPENING ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 354 | Scarico_caffe.CW_CCW=1; |
billycorgan123 | 0:f2c01a50c329 | 355 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 356 | wait(0.5); |
billycorgan123 | 0:f2c01a50c329 | 357 | Scarico_caffe.ON_OFF=1; |
billycorgan123 | 0:f2c01a50c329 | 358 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 359 | getData(); |
billycorgan123 | 0:f2c01a50c329 | 360 | } while(!myDataIn[2]); |
billycorgan123 | 0:f2c01a50c329 | 361 | Scarico_caffe.ON_OFF=0; |
billycorgan123 | 0:f2c01a50c329 | 362 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 363 | wait(0.4); |
billycorgan123 | 0:f2c01a50c329 | 364 | return 0; |
billycorgan123 | 0:f2c01a50c329 | 365 | } |
billycorgan123 | 0:f2c01a50c329 | 366 | ///Chiudo scarico |
billycorgan123 | 0:f2c01a50c329 | 367 | bool Chiudo_scarico() |
billycorgan123 | 0:f2c01a50c329 | 368 | { |
billycorgan123 | 0:f2c01a50c329 | 369 | do { |
billycorgan123 | 0:f2c01a50c329 | 370 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"COFFE UNLOAD IS CLOSING ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 371 | Scarico_caffe.CW_CCW=0; |
billycorgan123 | 0:f2c01a50c329 | 372 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 373 | wait(0.5); |
billycorgan123 | 0:f2c01a50c329 | 374 | Scarico_caffe.ON_OFF=1; |
billycorgan123 | 0:f2c01a50c329 | 375 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 376 | getData(); |
billycorgan123 | 0:f2c01a50c329 | 377 | } while(!myDataIn[3]); |
billycorgan123 | 0:f2c01a50c329 | 378 | Scarico_caffe.ON_OFF=0; |
billycorgan123 | 0:f2c01a50c329 | 379 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 380 | wait(0.4); |
billycorgan123 | 0:f2c01a50c329 | 381 | return 0; |
billycorgan123 | 0:f2c01a50c329 | 382 | } |
billycorgan123 | 0:f2c01a50c329 | 383 | //------------------------------------------------------------------------------ |
billycorgan123 | 0:f2c01a50c329 | 384 | ///Porta |
billycorgan123 | 0:f2c01a50c329 | 385 | bool apro_porta() |
billycorgan123 | 0:f2c01a50c329 | 386 | { |
billycorgan123 | 0:f2c01a50c329 | 387 | do { |
billycorgan123 | 0:f2c01a50c329 | 388 | temperature_update(); |
billycorgan123 | 0:f2c01a50c329 | 389 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"TEMPERATURE ABOVE T-SAFE ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 390 | } while (PT1.temperature( )>temp_safe+5); |
billycorgan123 | 0:f2c01a50c329 | 391 | //attivazione del relay |
billycorgan123 | 0:f2c01a50c329 | 392 | Activate_Door=0; |
billycorgan123 | 0:f2c01a50c329 | 393 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 394 | wait(0.100); |
billycorgan123 | 0:f2c01a50c329 | 395 | Activate_Door=1; |
billycorgan123 | 0:f2c01a50c329 | 396 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 397 | wait(0.050); |
billycorgan123 | 0:f2c01a50c329 | 398 | Activate_Door=0; |
billycorgan123 | 0:f2c01a50c329 | 399 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 400 | wait(0.200); |
billycorgan123 | 0:f2c01a50c329 | 401 | Activate_Door=1; |
billycorgan123 | 0:f2c01a50c329 | 402 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 403 | wait(0.050); |
billycorgan123 | 0:f2c01a50c329 | 404 | Activate_Door=0; |
billycorgan123 | 0:f2c01a50c329 | 405 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 406 | /// |
billycorgan123 | 0:f2c01a50c329 | 407 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"DOOR IS OPEN ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 408 | wait(1.0); |
billycorgan123 | 0:f2c01a50c329 | 409 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 410 | Bloccoporta.stato=0; |
billycorgan123 | 0:f2c01a50c329 | 411 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 412 | return 0; |
billycorgan123 | 0:f2c01a50c329 | 413 | } |
billycorgan123 | 0:f2c01a50c329 | 414 | bool chiudo_porta() |
billycorgan123 | 0:f2c01a50c329 | 415 | { |
billycorgan123 | 0:f2c01a50c329 | 416 | do { |
billycorgan123 | 0:f2c01a50c329 | 417 | } while (!Chiudo_scarico()); |
billycorgan123 | 0:f2c01a50c329 | 418 | do { |
billycorgan123 | 0:f2c01a50c329 | 419 | getData(); |
billycorgan123 | 0:f2c01a50c329 | 420 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"CLOSE THE COFFE COVER ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 421 | wait(0.1); |
billycorgan123 | 0:f2c01a50c329 | 422 | } while (!myDataIn[0]); |
billycorgan123 | 0:f2c01a50c329 | 423 | do { |
billycorgan123 | 0:f2c01a50c329 | 424 | getData(); |
billycorgan123 | 0:f2c01a50c329 | 425 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"CLOSE THE DOOR ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 426 | wait(0.1); |
billycorgan123 | 0:f2c01a50c329 | 427 | } while (!myDataIn[1]); //NB porta chiusa lo stato logico è =1, se è aperta lo stato logico è 0 e il ciclo while, finatanto che, non è fatto, ecco il perchè della negazione |
billycorgan123 | 0:f2c01a50c329 | 428 | //attivazione del relay per chiudere la porta |
billycorgan123 | 0:f2c01a50c329 | 429 | Activate_Door=0; |
billycorgan123 | 0:f2c01a50c329 | 430 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 431 | wait(0.100); |
billycorgan123 | 0:f2c01a50c329 | 432 | Activate_Door=1; |
billycorgan123 | 0:f2c01a50c329 | 433 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 434 | wait(0.050); |
billycorgan123 | 0:f2c01a50c329 | 435 | Activate_Door=0; |
billycorgan123 | 0:f2c01a50c329 | 436 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 437 | wait(0.100); |
billycorgan123 | 0:f2c01a50c329 | 438 | /// |
billycorgan123 | 0:f2c01a50c329 | 439 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"DOOR IS CLOSED ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 440 | Bloccoporta.stato=1; |
billycorgan123 | 0:f2c01a50c329 | 441 | object_update(); |
billycorgan123 | 0:f2c01a50c329 | 442 | wait(1.200); |
billycorgan123 | 0:f2c01a50c329 | 443 | lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE); |
billycorgan123 | 0:f2c01a50c329 | 444 | return 0; |
billycorgan123 | 0:f2c01a50c329 | 445 | } |
billycorgan123 | 0:f2c01a50c329 | 446 | //End of Functions// |
billycorgan123 | 0:f2c01a50c329 | 447 | #endif |