Ronald Sanchez / Mbed 2 deprecated PROTECTOFINAL

Dependencies:   mbed TextLCD

Committer:
ronaldesteban
Date:
Sat Feb 15 19:19:38 2020 +0000
Revision:
8:90d88a3a2e9a
Parent:
7:24db87395b87
CONTROL PWM AUTOMATICO Y MANUAL CON SENSOR DE TEMPERATURA

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedAustin 0:59bec1fd956e 1 #include "mbed.h"
ronaldesteban 8:90d88a3a2e9a 2 #include "TextLCD.h"
mbedAustin 2:a8dcb07a1d00 3
lscordovar 7:24db87395b87 4 RawSerial pc(PA_2,PA_3);
lscordovar 7:24db87395b87 5 DigitalOut led1(PD_12); // (PTB18)
lscordovar 7:24db87395b87 6 DigitalOut led2(PD_13); // (PTB19)
lscordovar 7:24db87395b87 7 DigitalOut led4(PD_14); // (PTD1)
ronaldesteban 8:90d88a3a2e9a 8 DigitalOut led5(PD_15);
ronaldesteban 8:90d88a3a2e9a 9 I2C i2c_lcd(PB_7, PB_8); // SDA, SCL
ronaldesteban 8:90d88a3a2e9a 10 TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD20x4);
ronaldesteban 8:90d88a3a2e9a 11 AnalogOut SALIDA(PA_4);//conectar PA_4 con PB_1 se puede utilizar como control PWM
ronaldesteban 8:90d88a3a2e9a 12 AnalogIn AIN(PB_1);
ronaldesteban 8:90d88a3a2e9a 13 AnalogIn ain(PA_7);
ronaldesteban 8:90d88a3a2e9a 14 PwmOut led(PA_6);
ronaldesteban 8:90d88a3a2e9a 15 DigitalIn pulsador(PA_0);
ronaldesteban 8:90d88a3a2e9a 16 DigitalIn pulsador1(PA_5);
ronaldesteban 8:90d88a3a2e9a 17 bool vP1=0;
ronaldesteban 8:90d88a3a2e9a 18 bool vP2=0;
ronaldesteban 8:90d88a3a2e9a 19 int i;
ronaldesteban 8:90d88a3a2e9a 20 int b=0;
ronaldesteban 8:90d88a3a2e9a 21 float c=0;
ronaldesteban 8:90d88a3a2e9a 22 float q=0;
ronaldesteban 8:90d88a3a2e9a 23 float w=0;
ronaldesteban 8:90d88a3a2e9a 24 float k=0.0;
ronaldesteban 8:90d88a3a2e9a 25 float brightness=0.0;
lscordovar 7:24db87395b87 26
lscordovar 7:24db87395b87 27
sam_grove 5:96cb82af9996 28 void pc_recv()
sam_grove 5:96cb82af9996 29 {
ronaldesteban 8:90d88a3a2e9a 30 char c = pc.getc();
ronaldesteban 8:90d88a3a2e9a 31 {
ronaldesteban 8:90d88a3a2e9a 32 if (c == 'm') {//control manual
ronaldesteban 8:90d88a3a2e9a 33
ronaldesteban 8:90d88a3a2e9a 34 led2 = !led2;
ronaldesteban 8:90d88a3a2e9a 35 led4 = 0;
ronaldesteban 8:90d88a3a2e9a 36 led1 = 0;
ronaldesteban 8:90d88a3a2e9a 37
ronaldesteban 8:90d88a3a2e9a 38 }
ronaldesteban 8:90d88a3a2e9a 39
ronaldesteban 8:90d88a3a2e9a 40
ronaldesteban 8:90d88a3a2e9a 41 if (c == 's') {// regreso a menu
ronaldesteban 8:90d88a3a2e9a 42
ronaldesteban 8:90d88a3a2e9a 43 led4 = !led4;
ronaldesteban 8:90d88a3a2e9a 44 led2 = 0;
ronaldesteban 8:90d88a3a2e9a 45 led1 = 0;
ronaldesteban 8:90d88a3a2e9a 46 }
ronaldesteban 8:90d88a3a2e9a 47
ronaldesteban 8:90d88a3a2e9a 48
ronaldesteban 8:90d88a3a2e9a 49 if (c == 'a') {// control automatico
ronaldesteban 8:90d88a3a2e9a 50
ronaldesteban 8:90d88a3a2e9a 51
ronaldesteban 8:90d88a3a2e9a 52 led1 = !led1;
ronaldesteban 8:90d88a3a2e9a 53 led2 = 0;
ronaldesteban 8:90d88a3a2e9a 54 led4 = 0;
ronaldesteban 8:90d88a3a2e9a 55
ronaldesteban 8:90d88a3a2e9a 56 }
mbedAustin 0:59bec1fd956e 57 }
ronaldesteban 8:90d88a3a2e9a 58
mbedAustin 0:59bec1fd956e 59 }
mbedAustin 4:ba9100d52e48 60 int main()
mbedAustin 4:ba9100d52e48 61 {
sarahmarshy 6:2a3a62ee17fa 62 pc.baud(115200);
ronaldesteban 8:90d88a3a2e9a 63
ronaldesteban 8:90d88a3a2e9a 64
mbedAustin 4:ba9100d52e48 65
sam_grove 5:96cb82af9996 66 pc.attach(&pc_recv, Serial::RxIrq);
ronaldesteban 8:90d88a3a2e9a 67 lcd.setCursor(TextLCD::CurOff_BlkOn);
ronaldesteban 8:90d88a3a2e9a 68 const char udc_Bat_Hi[] = {0x80, 0x84, 0x8e, 0x9f, 0x95, 0x8e, 0x84, 0x8a}; // Battery Full 128,132,142,159,149,142,132,138
ronaldesteban 8:90d88a3a2e9a 69
ronaldesteban 8:90d88a3a2e9a 70 lcd.setUDC(1, (char *) udc_Bat_Hi); // Define Bat High pattern for UDC index number 0
ronaldesteban 8:90d88a3a2e9a 71 lcd.putc(1);
ronaldesteban 8:90d88a3a2e9a 72
ronaldesteban 8:90d88a3a2e9a 73 pc.printf("Bye now in original example \r\n");
ronaldesteban 8:90d88a3a2e9a 74
ronaldesteban 8:90d88a3a2e9a 75 wait(1);
ronaldesteban 8:90d88a3a2e9a 76
ronaldesteban 8:90d88a3a2e9a 77 lcd.cls();
ronaldesteban 8:90d88a3a2e9a 78
ronaldesteban 8:90d88a3a2e9a 79 lcd.setBacklight(TextLCD::LightOn);
ronaldesteban 8:90d88a3a2e9a 80
ronaldesteban 8:90d88a3a2e9a 81 int col = 0;
ronaldesteban 8:90d88a3a2e9a 82 int row = 0;
ronaldesteban 8:90d88a3a2e9a 83 lcd.locate(col,row);
ronaldesteban 8:90d88a3a2e9a 84 lcd.printf("Iniciando...");
ronaldesteban 8:90d88a3a2e9a 85 wait(1);
ronaldesteban 8:90d88a3a2e9a 86
ronaldesteban 8:90d88a3a2e9a 87 lcd.setCursor(TextLCD::CurOff_BlkOff);
ronaldesteban 8:90d88a3a2e9a 88
ronaldesteban 8:90d88a3a2e9a 89 int c = 1;
ronaldesteban 8:90d88a3a2e9a 90 lcd.cls();
ronaldesteban 8:90d88a3a2e9a 91 lcd.locate(0,0);
ronaldesteban 8:90d88a3a2e9a 92 for (int row=0; row<4; row++) {
ronaldesteban 8:90d88a3a2e9a 93 lcd.putc(c);
ronaldesteban 8:90d88a3a2e9a 94 wait(0.01);
ronaldesteban 8:90d88a3a2e9a 95
ronaldesteban 8:90d88a3a2e9a 96 for (col=0; col<19; col++) {
ronaldesteban 8:90d88a3a2e9a 97 lcd.putc(c);
ronaldesteban 8:90d88a3a2e9a 98 wait(0.01);
ronaldesteban 8:90d88a3a2e9a 99 }
ronaldesteban 8:90d88a3a2e9a 100 }
ronaldesteban 8:90d88a3a2e9a 101 wait(3);
ronaldesteban 8:90d88a3a2e9a 102
ronaldesteban 8:90d88a3a2e9a 103 const char* text2 = "PROYECTO FINAL";
ronaldesteban 8:90d88a3a2e9a 104 lcd.cls();
ronaldesteban 8:90d88a3a2e9a 105 lcd.locate(3,0);
ronaldesteban 8:90d88a3a2e9a 106 lcd.printf(text2);
ronaldesteban 8:90d88a3a2e9a 107 lcd.locate(8,1);
ronaldesteban 8:90d88a3a2e9a 108 lcd.printf("UPS");
ronaldesteban 8:90d88a3a2e9a 109 lcd.locate(6,2);
ronaldesteban 8:90d88a3a2e9a 110 lcd.printf("SISTEMAS");
ronaldesteban 8:90d88a3a2e9a 111 lcd.locate(3,3);
ronaldesteban 8:90d88a3a2e9a 112 lcd.printf("MICROPROCESADOS");
ronaldesteban 8:90d88a3a2e9a 113 wait(2);
ronaldesteban 8:90d88a3a2e9a 114
ronaldesteban 8:90d88a3a2e9a 115 lcd.getAddress(col,row);
ronaldesteban 8:90d88a3a2e9a 116 pc.printf("column %d\trow %d\r\n",col,row);
ronaldesteban 8:90d88a3a2e9a 117 wait(2);
ronaldesteban 8:90d88a3a2e9a 118
ronaldesteban 8:90d88a3a2e9a 119 // Write a raw string to the LCD
ronaldesteban 8:90d88a3a2e9a 120 const char* text = "CONTROL PWM AUTO(a)";
ronaldesteban 8:90d88a3a2e9a 121 lcd.cls();
ronaldesteban 8:90d88a3a2e9a 122 lcd.locate(0,0);
ronaldesteban 8:90d88a3a2e9a 123 lcd.printf(text);
ronaldesteban 8:90d88a3a2e9a 124
ronaldesteban 8:90d88a3a2e9a 125 lcd.locate(0,2);
ronaldesteban 8:90d88a3a2e9a 126 lcd.printf("CONTROL PWM MAN(m)");
ronaldesteban 8:90d88a3a2e9a 127 wait(1);
ronaldesteban 8:90d88a3a2e9a 128
ronaldesteban 8:90d88a3a2e9a 129 lcd.getAddress(col,row);
ronaldesteban 8:90d88a3a2e9a 130 pc.printf("column %d\trow %d\r\n",col,row);
ronaldesteban 8:90d88a3a2e9a 131
ronaldesteban 8:90d88a3a2e9a 132
sam_grove 5:96cb82af9996 133
mbedAustin 4:ba9100d52e48 134 while(1) {
ronaldesteban 8:90d88a3a2e9a 135
ronaldesteban 8:90d88a3a2e9a 136 //inicio automatico
ronaldesteban 8:90d88a3a2e9a 137 if(led1==1) {
ronaldesteban 8:90d88a3a2e9a 138 b++;
ronaldesteban 8:90d88a3a2e9a 139 if (b>1) b=0;
ronaldesteban 8:90d88a3a2e9a 140 wait(0.5);
ronaldesteban 8:90d88a3a2e9a 141
ronaldesteban 8:90d88a3a2e9a 142 for(w=0; w<1; w=w+0.1) {
ronaldesteban 8:90d88a3a2e9a 143
ronaldesteban 8:90d88a3a2e9a 144 SALIDA=w;
ronaldesteban 8:90d88a3a2e9a 145 wait(0.1);
ronaldesteban 8:90d88a3a2e9a 146
ronaldesteban 8:90d88a3a2e9a 147 pc.printf("salida= %f%\n", AIN.read());
ronaldesteban 8:90d88a3a2e9a 148 const char* text = "CONTROL PWM AUTO";
ronaldesteban 8:90d88a3a2e9a 149
ronaldesteban 8:90d88a3a2e9a 150 lcd.locate(1,0);
ronaldesteban 8:90d88a3a2e9a 151 lcd.printf(text);
ronaldesteban 8:90d88a3a2e9a 152 q= AIN*10;
ronaldesteban 8:90d88a3a2e9a 153
ronaldesteban 8:90d88a3a2e9a 154 // Write a raw string to the LCD -> pointer
ronaldesteban 8:90d88a3a2e9a 155
ronaldesteban 8:90d88a3a2e9a 156 lcd.locate(2,2);
ronaldesteban 8:90d88a3a2e9a 157 lcd.printf("salida= %f%\n", q);
ronaldesteban 8:90d88a3a2e9a 158 wait(0.5);
ronaldesteban 8:90d88a3a2e9a 159 if (ain>= 0.9f) {// ALARMA
ronaldesteban 8:90d88a3a2e9a 160
ronaldesteban 8:90d88a3a2e9a 161 lcd.locate(0,3);
ronaldesteban 8:90d88a3a2e9a 162
ronaldesteban 8:90d88a3a2e9a 163 pc.printf("ALARMA %2.2f \n",ain.read());
ronaldesteban 8:90d88a3a2e9a 164 led5= 0;
ronaldesteban 8:90d88a3a2e9a 165 wait(0.1);
ronaldesteban 8:90d88a3a2e9a 166 }
ronaldesteban 8:90d88a3a2e9a 167
ronaldesteban 8:90d88a3a2e9a 168 else {
ronaldesteban 8:90d88a3a2e9a 169
ronaldesteban 8:90d88a3a2e9a 170 lcd.locate(3,3);
ronaldesteban 8:90d88a3a2e9a 171 lcd.printf("ALARMA TEMP");
ronaldesteban 8:90d88a3a2e9a 172 pc.printf("ALARMA %2.2f \n",ain.read());
ronaldesteban 8:90d88a3a2e9a 173 led5 = 1;
ronaldesteban 8:90d88a3a2e9a 174 wait(0.1);
ronaldesteban 8:90d88a3a2e9a 175 }
ronaldesteban 8:90d88a3a2e9a 176 }
ronaldesteban 8:90d88a3a2e9a 177 }
ronaldesteban 8:90d88a3a2e9a 178
ronaldesteban 8:90d88a3a2e9a 179
ronaldesteban 8:90d88a3a2e9a 180 if(led2==1)
ronaldesteban 8:90d88a3a2e9a 181
ronaldesteban 8:90d88a3a2e9a 182
ronaldesteban 8:90d88a3a2e9a 183 { //inicio manual
ronaldesteban 8:90d88a3a2e9a 184
ronaldesteban 8:90d88a3a2e9a 185
ronaldesteban 8:90d88a3a2e9a 186 const char* text41 = "CONTROL MAN AUTO";
ronaldesteban 8:90d88a3a2e9a 187 //lcd.cls();
ronaldesteban 8:90d88a3a2e9a 188 lcd.locate(1,0);
ronaldesteban 8:90d88a3a2e9a 189 lcd.printf(text41);
ronaldesteban 8:90d88a3a2e9a 190
ronaldesteban 8:90d88a3a2e9a 191
ronaldesteban 8:90d88a3a2e9a 192 // vP1=pulsador.read();
ronaldesteban 8:90d88a3a2e9a 193 //vP2=pulsador1.read();
ronaldesteban 8:90d88a3a2e9a 194 if((pulsador.read()==1 && brightness < 0.1)) {
ronaldesteban 8:90d88a3a2e9a 195 brightness += 0.01;
ronaldesteban 8:90d88a3a2e9a 196 led = brightness;
ronaldesteban 8:90d88a3a2e9a 197 k=brightness*100;
ronaldesteban 8:90d88a3a2e9a 198 wait(0.5);
ronaldesteban 8:90d88a3a2e9a 199 }
ronaldesteban 8:90d88a3a2e9a 200 if((pulsador1.read()==1 && brightness > 0.0)) {
ronaldesteban 8:90d88a3a2e9a 201 brightness -= 0.01;
ronaldesteban 8:90d88a3a2e9a 202 led = brightness;
ronaldesteban 8:90d88a3a2e9a 203 k=brightness*100;
ronaldesteban 8:90d88a3a2e9a 204 wait(0.5);
ronaldesteban 8:90d88a3a2e9a 205 }
ronaldesteban 8:90d88a3a2e9a 206 lcd.locate(2,2);
ronaldesteban 8:90d88a3a2e9a 207 lcd.printf("salida= %f%\n",k);
ronaldesteban 8:90d88a3a2e9a 208 pc.printf("%c %1.3f \n \r",c,k);
ronaldesteban 8:90d88a3a2e9a 209 wait(0.5);
ronaldesteban 8:90d88a3a2e9a 210 }
ronaldesteban 8:90d88a3a2e9a 211
ronaldesteban 8:90d88a3a2e9a 212
ronaldesteban 8:90d88a3a2e9a 213 if(led4==1) { // MENU
ronaldesteban 8:90d88a3a2e9a 214 lcd.cls();
ronaldesteban 8:90d88a3a2e9a 215 const char* text3 = "CONTROL PWM AUTO(a)";
ronaldesteban 8:90d88a3a2e9a 216 // lcd.cls();
ronaldesteban 8:90d88a3a2e9a 217 lcd.locate(0,0);
ronaldesteban 8:90d88a3a2e9a 218 lcd.printf(text3);
ronaldesteban 8:90d88a3a2e9a 219
ronaldesteban 8:90d88a3a2e9a 220 lcd.locate(0,2);
ronaldesteban 8:90d88a3a2e9a 221 lcd.printf("CONTROL PWM MAN(m)");//programa manual
ronaldesteban 8:90d88a3a2e9a 222 wait(1);
ronaldesteban 8:90d88a3a2e9a 223
ronaldesteban 8:90d88a3a2e9a 224
ronaldesteban 8:90d88a3a2e9a 225
ronaldesteban 8:90d88a3a2e9a 226 if (ain>= 0.9f) {//ALARMA
ronaldesteban 8:90d88a3a2e9a 227
ronaldesteban 8:90d88a3a2e9a 228 lcd.locate(0,3);
ronaldesteban 8:90d88a3a2e9a 229
ronaldesteban 8:90d88a3a2e9a 230 pc.printf("ALARMA %2.2f \n",ain.read());
ronaldesteban 8:90d88a3a2e9a 231 led5= 0;
ronaldesteban 8:90d88a3a2e9a 232 wait(0.1);
ronaldesteban 8:90d88a3a2e9a 233 }
ronaldesteban 8:90d88a3a2e9a 234
ronaldesteban 8:90d88a3a2e9a 235 else {
ronaldesteban 8:90d88a3a2e9a 236
ronaldesteban 8:90d88a3a2e9a 237 lcd.locate(3,3);
ronaldesteban 8:90d88a3a2e9a 238 lcd.printf("ALARMA TEMP");
ronaldesteban 8:90d88a3a2e9a 239 pc.printf("ALARMA %2.2f \n",ain.read());
ronaldesteban 8:90d88a3a2e9a 240 led5 = 1;
ronaldesteban 8:90d88a3a2e9a 241 wait(0.1);
ronaldesteban 8:90d88a3a2e9a 242 }
ronaldesteban 8:90d88a3a2e9a 243
ronaldesteban 8:90d88a3a2e9a 244
ronaldesteban 8:90d88a3a2e9a 245
ronaldesteban 8:90d88a3a2e9a 246
ronaldesteban 8:90d88a3a2e9a 247
ronaldesteban 8:90d88a3a2e9a 248 sleep();
ronaldesteban 8:90d88a3a2e9a 249
ronaldesteban 8:90d88a3a2e9a 250 }
mbedAustin 4:ba9100d52e48 251 }
ronaldesteban 8:90d88a3a2e9a 252 }