versione al 6/5/18

Dependencies:   BSP_DISCO_F469NI LCD_DISCO_F469NI Shifter2 TS_DISCO_F469NI max31865 mbed

Committer:
billycorgan123
Date:
Sun May 06 14:32:42 2018 +0000
Revision:
0:c051cea27cbf
versione aggiornata

Who changed what in which revision?

UserRevisionLine numberNew contents of line
billycorgan123 0:c051cea27cbf 1 #ifndef FUCTIONS_H
billycorgan123 0:c051cea27cbf 2 #define FUNCTIONS_H
billycorgan123 0:c051cea27cbf 3
billycorgan123 0:c051cea27cbf 4 #include "colors.c"
billycorgan123 0:c051cea27cbf 5 #include "mbed.h"
billycorgan123 0:c051cea27cbf 6 #include "Output.h"
billycorgan123 0:c051cea27cbf 7 #include "Shifter.h"
billycorgan123 0:c051cea27cbf 8 #include "LCD_DISCO_F469NI.h"
billycorgan123 0:c051cea27cbf 9
billycorgan123 0:c051cea27cbf 10 LCD_DISCO_F469NI lcd;
billycorgan123 0:c051cea27cbf 11 TS_DISCO_F469NI ts;
billycorgan123 0:c051cea27cbf 12 uint16_t X, Y;
billycorgan123 0:c051cea27cbf 13 uint8_t status;
billycorgan123 0:c051cea27cbf 14 uint8_t cleared = 0;
billycorgan123 0:c051cea27cbf 15 uint8_t prev_nb_touches = 0;
billycorgan123 0:c051cea27cbf 16 uint8_t text[30];
billycorgan123 0:c051cea27cbf 17
billycorgan123 0:c051cea27cbf 18 TS_StateTypeDef TS_State;
billycorgan123 0:c051cea27cbf 19
billycorgan123 0:c051cea27cbf 20 Serial pc(SERIAL_TX, SERIAL_RX);
billycorgan123 0:c051cea27cbf 21 MAX31865_RTD PT1(MAX31865_RTD::RTD_PT100,D11, D12, D13, A0);
billycorgan123 0:c051cea27cbf 22 MAX31865_RTD PT2(MAX31865_RTD::RTD_PT100,D11, D12, D13, A1);
billycorgan123 0:c051cea27cbf 23 MAX31865_RTD PT3(MAX31865_RTD::RTD_PT100,D11, D12, D13, A2);
billycorgan123 0:c051cea27cbf 24
billycorgan123 0:c051cea27cbf 25
billycorgan123 0:c051cea27cbf 26
billycorgan123 0:c051cea27cbf 27 /// dichiarazione variabili ////////////////////////////////////////////////////
billycorgan123 0:c051cea27cbf 28 //per i sensori
billycorgan123 0:c051cea27cbf 29 static bool myDataIn[8] = {1,0,1,0,1,0,1,0};
billycorgan123 0:c051cea27cbf 30 //myDataIn[0] tappo caffè chiuso;
billycorgan123 0:c051cea27cbf 31 //myDataIn[1] sensore porta chiusa;
billycorgan123 0:c051cea27cbf 32 //myDataIn[2] finecorsa sarico aperto;
billycorgan123 0:c051cea27cbf 33 //myDataIn[3] finecorsa scarico chiuso;
billycorgan123 0:c051cea27cbf 34 //myDataIn[4]; //da dare un nome
billycorgan123 0:c051cea27cbf 35 //myDataIn[5]; //da dare un nome
billycorgan123 0:c051cea27cbf 36 //myDataIn[6]; //da dare un nome
billycorgan123 0:c051cea27cbf 37 //myDataIn[7]; //da dare un nome
billycorgan123 0:c051cea27cbf 38
billycorgan123 0:c051cea27cbf 39 //per i relay
billycorgan123 0:c051cea27cbf 40 Shifter scheda_8relay; //!! pinout defined in library
billycorgan123 0:c051cea27cbf 41 Output Bloccoporta; //
billycorgan123 0:c051cea27cbf 42 Output Giracaffe; // palette agita caffé
billycorgan123 0:c051cea27cbf 43 Output Lampadina; // Lampadina
billycorgan123 0:c051cea27cbf 44 Output VTangenziale; // 1
billycorgan123 0:c051cea27cbf 45 Output VRadiale; // 2
billycorgan123 0:c051cea27cbf 46 Output Scarico_caffe; // motore scarico caffé
billycorgan123 0:c051cea27cbf 47 Output Resistenza1; //
billycorgan123 0:c051cea27cbf 48 Output Resistenza2; //
billycorgan123 0:c051cea27cbf 49 Output Ventola; // cooling
billycorgan123 0:c051cea27cbf 50
billycorgan123 0:c051cea27cbf 51 bool Activate_Door; //sul SSR per comandare il bloccoporta
billycorgan123 0:c051cea27cbf 52
billycorgan123 0:c051cea27cbf 53 /// funzioni ///////////////////////////////////////////////////////////////////
billycorgan123 0:c051cea27cbf 54 bool setup_griglia()
billycorgan123 0:c051cea27cbf 55 {
billycorgan123 0:c051cea27cbf 56 lcd.Clear(light_sky_blue);
billycorgan123 0:c051cea27cbf 57 lcd.SetBackColor(light_sky_blue);
billycorgan123 0:c051cea27cbf 58 lcd.SetFont(&Font24);
billycorgan123 0:c051cea27cbf 59 lcd.SetTextColor(black);
billycorgan123 0:c051cea27cbf 60 lcd.DisplayStringAt(670, LINE(0), (uint8_t *)"Ver 1.0", LEFT_MODE);
billycorgan123 0:c051cea27cbf 61 // STOP CLEAN ROAST
billycorgan123 0:c051cea27cbf 62 int riga, colonna, contatore=0;
billycorgan123 0:c051cea27cbf 63 //STOP
billycorgan123 0:c051cea27cbf 64 contatore=0;
billycorgan123 0:c051cea27cbf 65 for (riga=0; riga<120; riga++) {
billycorgan123 0:c051cea27cbf 66 for ( colonna=0; colonna<120; colonna++) {
billycorgan123 0:c051cea27cbf 67 lcd.DrawPixel (20+colonna, 20+ riga, _acAPower[contatore]);
billycorgan123 0:c051cea27cbf 68 contatore++;
billycorgan123 0:c051cea27cbf 69 }
billycorgan123 0:c051cea27cbf 70 colonna=0;
billycorgan123 0:c051cea27cbf 71 }
billycorgan123 0:c051cea27cbf 72 //lcd.DrawRect (20, 20, 120, 120);
billycorgan123 0:c051cea27cbf 73 //--------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 74 //CLEAN
billycorgan123 0:c051cea27cbf 75 contatore=0;
billycorgan123 0:c051cea27cbf 76 for (riga=0; riga<120; riga++) {
billycorgan123 0:c051cea27cbf 77 for ( colonna=0; colonna<120; colonna++) {
billycorgan123 0:c051cea27cbf 78 lcd.DrawPixel (20+colonna, 165+ riga, _acAClean[contatore]);
billycorgan123 0:c051cea27cbf 79 contatore++;
billycorgan123 0:c051cea27cbf 80 }
billycorgan123 0:c051cea27cbf 81 colonna=0;
billycorgan123 0:c051cea27cbf 82 }
billycorgan123 0:c051cea27cbf 83 //lcd.DrawRect (20, 165, 120, 120);
billycorgan123 0:c051cea27cbf 84 //--------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 85 //ROAST
billycorgan123 0:c051cea27cbf 86 contatore=0;
billycorgan123 0:c051cea27cbf 87 for (riga=0; riga<120; riga++) {
billycorgan123 0:c051cea27cbf 88 for ( colonna=0; colonna<120; colonna++) {
billycorgan123 0:c051cea27cbf 89 lcd.DrawPixel (20+colonna, 290+ riga, _acARoast[contatore]);
billycorgan123 0:c051cea27cbf 90 contatore++;
billycorgan123 0:c051cea27cbf 91 }
billycorgan123 0:c051cea27cbf 92 colonna=0;
billycorgan123 0:c051cea27cbf 93 }
billycorgan123 0:c051cea27cbf 94 //lcd.DrawRect (20, 290, 120, 120);
billycorgan123 0:c051cea27cbf 95 //--------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 96 //PULSANTI
billycorgan123 0:c051cea27cbf 97 contatore=0;
billycorgan123 0:c051cea27cbf 98 for (riga=0; riga<140; riga++) {
billycorgan123 0:c051cea27cbf 99 for ( colonna=0; colonna<200; colonna++) {
billycorgan123 0:c051cea27cbf 100 lcd.DrawPixel (180+colonna, 270+ riga, _acAPulsanti[contatore]);
billycorgan123 0:c051cea27cbf 101 contatore++;
billycorgan123 0:c051cea27cbf 102 }
billycorgan123 0:c051cea27cbf 103 colonna=0;
billycorgan123 0:c051cea27cbf 104 }
billycorgan123 0:c051cea27cbf 105 //lcd.DrawRect (180, 270, 200, 140);
billycorgan123 0:c051cea27cbf 106 //lcd.DrawRect (220, 270, 60, 60);
billycorgan123 0:c051cea27cbf 107 //lcd.DrawRect (325, 270, 60, 60);
billycorgan123 0:c051cea27cbf 108 //lcd.DrawRect (220, 350, 60, 60);
billycorgan123 0:c051cea27cbf 109 //lcd.DrawRect (325, 350, 60, 60);
billycorgan123 0:c051cea27cbf 110
billycorgan123 0:c051cea27cbf 111 lcd.DisplayStringAt(200, LINE( 8), (uint8_t *)"Time:", LEFT_MODE);
billycorgan123 0:c051cea27cbf 112 lcd.DisplayStringAt(330, LINE(8), (uint8_t *)"'", LEFT_MODE);
billycorgan123 0:c051cea27cbf 113 lcd.DisplayStringAt(385, LINE(8), (uint8_t *)"''", LEFT_MODE);
billycorgan123 0:c051cea27cbf 114 lcd.DisplayStringAt(200, LINE( 10), (uint8_t *)"Temp:", LEFT_MODE);
billycorgan123 0:c051cea27cbf 115 lcd.DrawCircle(355, LINE(10)+3, 4);
billycorgan123 0:c051cea27cbf 116 lcd.DisplayStringAt(360, LINE( 10), (uint8_t *)"C", LEFT_MODE);
billycorgan123 0:c051cea27cbf 117 lcd.DisplayStringAt(620, LINE( 9), (uint8_t *)"T1:", LEFT_MODE);
billycorgan123 0:c051cea27cbf 118 lcd.DisplayStringAt(620, LINE(11), (uint8_t *)"T2:", LEFT_MODE);
billycorgan123 0:c051cea27cbf 119 lcd.DisplayStringAt(620, LINE(13), (uint8_t *)"T3:", LEFT_MODE);
billycorgan123 0:c051cea27cbf 120
billycorgan123 0:c051cea27cbf 121 //per prova, da togliere dopo
billycorgan123 0:c051cea27cbf 122 lcd.SetTextColor(red);
billycorgan123 0:c051cea27cbf 123 lcd.FillRect (620, 20, 70, 70);
billycorgan123 0:c051cea27cbf 124 lcd.SetTextColor(green);
billycorgan123 0:c051cea27cbf 125 lcd.FillRect (620, 100, 70, 70);
billycorgan123 0:c051cea27cbf 126 lcd.SetTextColor(black);
billycorgan123 0:c051cea27cbf 127 //fino qui
billycorgan123 0:c051cea27cbf 128
billycorgan123 0:c051cea27cbf 129 PT1.configure( true, true, false, true, MAX31865_FAULT_DETECTION_NONE,
billycorgan123 0:c051cea27cbf 130 true, true, 0x0000, 0x7fff );
billycorgan123 0:c051cea27cbf 131 PT2.configure( true, true, false, true, MAX31865_FAULT_DETECTION_NONE,
billycorgan123 0:c051cea27cbf 132 true, true, 0x0000, 0x7fff );
billycorgan123 0:c051cea27cbf 133 PT3.configure( true, true, false, true, MAX31865_FAULT_DETECTION_NONE,
billycorgan123 0:c051cea27cbf 134 true, true, 0x0000, 0x7fff );
billycorgan123 0:c051cea27cbf 135
billycorgan123 0:c051cea27cbf 136 return 0;
billycorgan123 0:c051cea27cbf 137 }
billycorgan123 0:c051cea27cbf 138 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 139 bool * getData()
billycorgan123 0:c051cea27cbf 140 {
billycorgan123 0:c051cea27cbf 141 //define where your pins are
billycorgan123 0:c051cea27cbf 142 DigitalOut latchPin(D7);
billycorgan123 0:c051cea27cbf 143 DigitalOut clockPin(D6);
billycorgan123 0:c051cea27cbf 144 DigitalIn dataPin(D5);
billycorgan123 0:c051cea27cbf 145 float tempoattesa = 20;
billycorgan123 0:c051cea27cbf 146 //acquiring values
billycorgan123 0:c051cea27cbf 147 latchPin.write(1);
billycorgan123 0:c051cea27cbf 148 wait_us(tempoattesa);
billycorgan123 0:c051cea27cbf 149 //read values acquired and store in array
billycorgan123 0:c051cea27cbf 150 latchPin.write(0);
billycorgan123 0:c051cea27cbf 151 for (int i=7; i>=0; i--) {
billycorgan123 0:c051cea27cbf 152 wait_us(tempoattesa);
billycorgan123 0:c051cea27cbf 153 clockPin.write(0);
billycorgan123 0:c051cea27cbf 154 wait_us(tempoattesa);
billycorgan123 0:c051cea27cbf 155 myDataIn[i] = dataPin.read(); //1 if OT open, 0 if OT close
billycorgan123 0:c051cea27cbf 156 clockPin.write(1);
billycorgan123 0:c051cea27cbf 157 }
billycorgan123 0:c051cea27cbf 158 for (int i=7; i>=0; i--) { // D7,D6,.....,D1,D0
billycorgan123 0:c051cea27cbf 159 sprintf((char*)text, "%d", myDataIn[0+i]);
billycorgan123 0:c051cea27cbf 160 lcd.DisplayStringAt(580+20*i,LINE(8), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c051cea27cbf 161 }
billycorgan123 0:c051cea27cbf 162 return myDataIn;
billycorgan123 0:c051cea27cbf 163 }
billycorgan123 0:c051cea27cbf 164 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 165 void object_update()
billycorgan123 0:c051cea27cbf 166 {
billycorgan123 0:c051cea27cbf 167 //update delle immagini e dello stato delle uscite
billycorgan123 0:c051cea27cbf 168 Lampadina.draw_image (&_acLampadina_acceso[0], &_acLampadina_spento[0], Lampadina.stato, 230, 20);
billycorgan123 0:c051cea27cbf 169 Resistenza1.draw_image (&_acResistenza1_acceso[0], &_acResistenza1_spento[0], Resistenza1.stato, 300, 20);
billycorgan123 0:c051cea27cbf 170 Resistenza2.draw_image (&_acResistenza2_acceso[0], &_acResistenza2_spento[0], Resistenza2.stato, 370, 20);
billycorgan123 0:c051cea27cbf 171 Giracaffe.draw_image (&_acGiracaffe_acceso[0], &_acGiracaffe_spento[0], Giracaffe.stato, 440, 20);
billycorgan123 0:c051cea27cbf 172 Bloccoporta.draw_image (&_acPorta_aperto[0], &_acPorta_chiuso[0], Bloccoporta.stato, 230, 90);
billycorgan123 0:c051cea27cbf 173 VTangenziale.draw_image (&_acVTangenziale_acceso[0], &_acVTangenziale_spento[0], VTangenziale.stato, 300, 90);
billycorgan123 0:c051cea27cbf 174 VRadiale.draw_image (&_acVRadiale_acceso[0], &_acVRadiale_spento[0], VRadiale.stato, 370, 90);
billycorgan123 0:c051cea27cbf 175 Ventola.draw_image (&_acVentola_acceso[0], &_acVentola_spento[0], Ventola.stato, 440, 90);
billycorgan123 0:c051cea27cbf 176 //update uscita 74HC595
billycorgan123 0:c051cea27cbf 177 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:c051cea27cbf 178 for (int i=0; i<16; i++) scheda_8relay.setPin(i,array[i]);
billycorgan123 0:c051cea27cbf 179 scheda_8relay.write();
billycorgan123 0:c051cea27cbf 180 }
billycorgan123 0:c051cea27cbf 181 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 182 void temperature_update()
billycorgan123 0:c051cea27cbf 183 {
billycorgan123 0:c051cea27cbf 184 PT1.read_all( );
billycorgan123 0:c051cea27cbf 185 sprintf((char*)text, "%1.0f", PT1.temperature( ));
billycorgan123 0:c051cea27cbf 186 if (PT1.temperature( )>150) lcd.SetTextColor(red);
billycorgan123 0:c051cea27cbf 187 else lcd.SetTextColor(black);
billycorgan123 0:c051cea27cbf 188 lcd.DisplayStringAt(680, LINE(9), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c051cea27cbf 189 PT2.read_all( );
billycorgan123 0:c051cea27cbf 190 sprintf((char*)text, "%1.0f", PT2.temperature( ));
billycorgan123 0:c051cea27cbf 191 if (PT2.temperature( )>150) lcd.SetTextColor(red);
billycorgan123 0:c051cea27cbf 192 else lcd.SetTextColor(black);
billycorgan123 0:c051cea27cbf 193 lcd.DisplayStringAt(680, LINE(11), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c051cea27cbf 194 PT3.read_all( );
billycorgan123 0:c051cea27cbf 195 sprintf((char*)text, "%1.0f", PT3.temperature( ));
billycorgan123 0:c051cea27cbf 196 if (PT3.temperature( )>150) lcd.SetTextColor(red);
billycorgan123 0:c051cea27cbf 197 else lcd.SetTextColor(black);
billycorgan123 0:c051cea27cbf 198 lcd.DisplayStringAt(680, LINE(13), (uint8_t *)&text, LEFT_MODE);
billycorgan123 0:c051cea27cbf 199 }
billycorgan123 0:c051cea27cbf 200
billycorgan123 0:c051cea27cbf 201 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 202 /// Lampadina
billycorgan123 0:c051cea27cbf 203 void Lampadina_acceso()
billycorgan123 0:c051cea27cbf 204 {
billycorgan123 0:c051cea27cbf 205 Lampadina.stato=1;
billycorgan123 0:c051cea27cbf 206 object_update();
billycorgan123 0:c051cea27cbf 207 }
billycorgan123 0:c051cea27cbf 208 void Lampadina_spento()
billycorgan123 0:c051cea27cbf 209 {
billycorgan123 0:c051cea27cbf 210 Lampadina.stato=0;
billycorgan123 0:c051cea27cbf 211 object_update();
billycorgan123 0:c051cea27cbf 212 }
billycorgan123 0:c051cea27cbf 213 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 214 /// Resistenza 1
billycorgan123 0:c051cea27cbf 215 void Resistenza1_acceso()
billycorgan123 0:c051cea27cbf 216 {
billycorgan123 0:c051cea27cbf 217 Resistenza1.stato=1;
billycorgan123 0:c051cea27cbf 218 object_update();
billycorgan123 0:c051cea27cbf 219 }
billycorgan123 0:c051cea27cbf 220 void Resistenza1_spento()
billycorgan123 0:c051cea27cbf 221 {
billycorgan123 0:c051cea27cbf 222 Resistenza1.stato=0;
billycorgan123 0:c051cea27cbf 223 object_update();
billycorgan123 0:c051cea27cbf 224 }
billycorgan123 0:c051cea27cbf 225 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 226 /// Resistenza 2
billycorgan123 0:c051cea27cbf 227 void Resistenza2_acceso()
billycorgan123 0:c051cea27cbf 228 {
billycorgan123 0:c051cea27cbf 229 Resistenza2.stato=1;
billycorgan123 0:c051cea27cbf 230 object_update();
billycorgan123 0:c051cea27cbf 231 }
billycorgan123 0:c051cea27cbf 232 void Resistenza2_spento()
billycorgan123 0:c051cea27cbf 233 {
billycorgan123 0:c051cea27cbf 234 Resistenza2.stato=0;
billycorgan123 0:c051cea27cbf 235 object_update();
billycorgan123 0:c051cea27cbf 236 }
billycorgan123 0:c051cea27cbf 237 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 238 /// Ventola 12/24 volt
billycorgan123 0:c051cea27cbf 239 void Ventola_acceso()
billycorgan123 0:c051cea27cbf 240 {
billycorgan123 0:c051cea27cbf 241 Ventola.stato=1;
billycorgan123 0:c051cea27cbf 242 object_update();
billycorgan123 0:c051cea27cbf 243 }
billycorgan123 0:c051cea27cbf 244 void Ventola_spento()
billycorgan123 0:c051cea27cbf 245 {
billycorgan123 0:c051cea27cbf 246 Ventola.stato=0;
billycorgan123 0:c051cea27cbf 247 object_update();
billycorgan123 0:c051cea27cbf 248 }
billycorgan123 0:c051cea27cbf 249 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 250 /// Ventola Radiale
billycorgan123 0:c051cea27cbf 251 void VRadiale_acceso()
billycorgan123 0:c051cea27cbf 252 {
billycorgan123 0:c051cea27cbf 253 VRadiale.stato=1;
billycorgan123 0:c051cea27cbf 254 object_update();
billycorgan123 0:c051cea27cbf 255 }
billycorgan123 0:c051cea27cbf 256 void VRadiale_spento()
billycorgan123 0:c051cea27cbf 257 {
billycorgan123 0:c051cea27cbf 258 VRadiale.stato=0;
billycorgan123 0:c051cea27cbf 259 object_update();
billycorgan123 0:c051cea27cbf 260 }
billycorgan123 0:c051cea27cbf 261 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 262 /// Ventola Tangenziale
billycorgan123 0:c051cea27cbf 263 void VTangenziale_acceso()
billycorgan123 0:c051cea27cbf 264 {
billycorgan123 0:c051cea27cbf 265 VTangenziale.stato=1;
billycorgan123 0:c051cea27cbf 266 object_update();
billycorgan123 0:c051cea27cbf 267 }
billycorgan123 0:c051cea27cbf 268 void VTangenziale_spento()
billycorgan123 0:c051cea27cbf 269 {
billycorgan123 0:c051cea27cbf 270 VTangenziale.stato=0;
billycorgan123 0:c051cea27cbf 271 object_update();
billycorgan123 0:c051cea27cbf 272 }
billycorgan123 0:c051cea27cbf 273 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 274 /// Giracaffe
billycorgan123 0:c051cea27cbf 275 void Giracaffe_acceso()
billycorgan123 0:c051cea27cbf 276 {
billycorgan123 0:c051cea27cbf 277 Giracaffe.stato=1;
billycorgan123 0:c051cea27cbf 278 object_update();
billycorgan123 0:c051cea27cbf 279 }
billycorgan123 0:c051cea27cbf 280 void Giracaffe_spento()
billycorgan123 0:c051cea27cbf 281 {
billycorgan123 0:c051cea27cbf 282 Giracaffe.stato=0;
billycorgan123 0:c051cea27cbf 283 object_update();
billycorgan123 0:c051cea27cbf 284 }
billycorgan123 0:c051cea27cbf 285 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 286 ///Apro scarico caffe
billycorgan123 0:c051cea27cbf 287 bool Apro_scarico()
billycorgan123 0:c051cea27cbf 288 {
billycorgan123 0:c051cea27cbf 289 do {
billycorgan123 0:c051cea27cbf 290 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"SCARICO CAFFE ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 291 Scarico_caffe.CW_CCW=1;
billycorgan123 0:c051cea27cbf 292 object_update();
billycorgan123 0:c051cea27cbf 293 wait(0.5);
billycorgan123 0:c051cea27cbf 294 Scarico_caffe.ON_OFF=1;
billycorgan123 0:c051cea27cbf 295 object_update();
billycorgan123 0:c051cea27cbf 296 getData();
billycorgan123 0:c051cea27cbf 297 }while(!myDataIn[2]);
billycorgan123 0:c051cea27cbf 298 Scarico_caffe.ON_OFF=0;
billycorgan123 0:c051cea27cbf 299 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 300 wait(0.4);
billycorgan123 0:c051cea27cbf 301 return 0;
billycorgan123 0:c051cea27cbf 302 }
billycorgan123 0:c051cea27cbf 303 ///Chiudo scarico
billycorgan123 0:c051cea27cbf 304 bool Chiudo_scarico()
billycorgan123 0:c051cea27cbf 305 {
billycorgan123 0:c051cea27cbf 306 do {
billycorgan123 0:c051cea27cbf 307 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"CHIUDO SCARICO ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 308 Scarico_caffe.CW_CCW=0;
billycorgan123 0:c051cea27cbf 309 object_update();
billycorgan123 0:c051cea27cbf 310 wait(0.5);
billycorgan123 0:c051cea27cbf 311 Scarico_caffe.ON_OFF=1;
billycorgan123 0:c051cea27cbf 312 object_update();
billycorgan123 0:c051cea27cbf 313 getData();
billycorgan123 0:c051cea27cbf 314 }while(!myDataIn[3]);
billycorgan123 0:c051cea27cbf 315 Scarico_caffe.ON_OFF=0;
billycorgan123 0:c051cea27cbf 316 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 317 wait(0.4);
billycorgan123 0:c051cea27cbf 318 return 0;
billycorgan123 0:c051cea27cbf 319 }
billycorgan123 0:c051cea27cbf 320 //------------------------------------------------------------------------------
billycorgan123 0:c051cea27cbf 321 ///Porta
billycorgan123 0:c051cea27cbf 322 bool apro_porta()
billycorgan123 0:c051cea27cbf 323 {
billycorgan123 0:c051cea27cbf 324 //attivazione del relay
billycorgan123 0:c051cea27cbf 325 Activate_Door=0;
billycorgan123 0:c051cea27cbf 326 object_update();
billycorgan123 0:c051cea27cbf 327 wait(0.100);
billycorgan123 0:c051cea27cbf 328 Activate_Door=1;
billycorgan123 0:c051cea27cbf 329 object_update();
billycorgan123 0:c051cea27cbf 330 wait(0.050);
billycorgan123 0:c051cea27cbf 331 Activate_Door=0;
billycorgan123 0:c051cea27cbf 332 object_update();
billycorgan123 0:c051cea27cbf 333 wait(0.200);
billycorgan123 0:c051cea27cbf 334 Activate_Door=1;
billycorgan123 0:c051cea27cbf 335 object_update();
billycorgan123 0:c051cea27cbf 336 wait(0.050);
billycorgan123 0:c051cea27cbf 337 Activate_Door=0;
billycorgan123 0:c051cea27cbf 338 object_update();
billycorgan123 0:c051cea27cbf 339 ///
billycorgan123 0:c051cea27cbf 340 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"PORTA APERTA ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 341 wait(1.0);
billycorgan123 0:c051cea27cbf 342 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 343 Bloccoporta.stato=0;
billycorgan123 0:c051cea27cbf 344 object_update();
billycorgan123 0:c051cea27cbf 345 return 0;
billycorgan123 0:c051cea27cbf 346 }
billycorgan123 0:c051cea27cbf 347 bool chiudo_porta()
billycorgan123 0:c051cea27cbf 348 {
billycorgan123 0:c051cea27cbf 349 do {
billycorgan123 0:c051cea27cbf 350 } while (!Chiudo_scarico());
billycorgan123 0:c051cea27cbf 351 do {
billycorgan123 0:c051cea27cbf 352 getData();
billycorgan123 0:c051cea27cbf 353 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"CHIUDI IL TAPPO CAFFE' ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 354 wait(0.1);
billycorgan123 0:c051cea27cbf 355 } while (!myDataIn[0]);
billycorgan123 0:c051cea27cbf 356 do {
billycorgan123 0:c051cea27cbf 357 getData();
billycorgan123 0:c051cea27cbf 358 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"CHIUDI LA PORTA ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 359 wait(0.1);
billycorgan123 0:c051cea27cbf 360 } 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:c051cea27cbf 361 //attivazione del relay per chiudere la porta
billycorgan123 0:c051cea27cbf 362 Activate_Door=0;
billycorgan123 0:c051cea27cbf 363 object_update();
billycorgan123 0:c051cea27cbf 364 wait(0.100);
billycorgan123 0:c051cea27cbf 365 Activate_Door=1;
billycorgan123 0:c051cea27cbf 366 object_update();
billycorgan123 0:c051cea27cbf 367 wait(0.050);
billycorgan123 0:c051cea27cbf 368 Activate_Door=0;
billycorgan123 0:c051cea27cbf 369 object_update();
billycorgan123 0:c051cea27cbf 370 wait(0.100);
billycorgan123 0:c051cea27cbf 371 ///
billycorgan123 0:c051cea27cbf 372 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)"PORTA CHIUSA ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 373 Bloccoporta.stato=1;
billycorgan123 0:c051cea27cbf 374 object_update();
billycorgan123 0:c051cea27cbf 375 wait(1.200);
billycorgan123 0:c051cea27cbf 376 lcd.DisplayStringAt(10, LINE(18), (uint8_t *)" ", LEFT_MODE);
billycorgan123 0:c051cea27cbf 377 return 0;
billycorgan123 0:c051cea27cbf 378 }
billycorgan123 0:c051cea27cbf 379 //End of Functions//
billycorgan123 0:c051cea27cbf 380 #endif