new version of AL96_OT

Dependencies:   mbed LCD_DISCO_F469NI TS_DISCO_F469NI BSP_DISCO_F469NI

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?

UserRevisionLine numberNew 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