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