Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 8:90d88a3a2e9a
- Parent:
- 7:24db87395b87
--- a/main.cpp Fri Feb 14 01:49:39 2020 +0000 +++ b/main.cpp Sat Feb 15 19:19:38 2020 +0000 @@ -1,46 +1,252 @@ #include "mbed.h" +#include "TextLCD.h" RawSerial pc(PA_2,PA_3); -RawSerial dev(PB_6,PB_7); // tx, rx// tx, rx DigitalOut led1(PD_12); // (PTB18) DigitalOut led2(PD_13); // (PTB19) DigitalOut led4(PD_14); // (PTD1) - -/* - -Connecting... -Chip is ESP8266EX -Features: WiFi -Crystal is 26MHz -MAC: 18:fe:34:d7:a3:da +DigitalOut led5(PD_15); +I2C i2c_lcd(PB_7, PB_8); // SDA, SCL +TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD20x4); +AnalogOut SALIDA(PA_4);//conectar PA_4 con PB_1 se puede utilizar como control PWM +AnalogIn AIN(PB_1); +AnalogIn ain(PA_7); +PwmOut led(PA_6); +DigitalIn pulsador(PA_0); +DigitalIn pulsador1(PA_5); +bool vP1=0; +bool vP2=0; +int i; +int b=0; +float c=0; +float q=0; +float w=0; +float k=0.0; +float brightness=0.0; -*/ -void dev_recv() -{ - led1 = !led1; - while(dev.readable()) { - pc.putc(dev.getc()); - } -} - void pc_recv() { - led4 = !led4; - while(pc.readable()) { - dev.putc(pc.getc()); + char c = pc.getc(); + { + if (c == 'm') {//control manual + + led2 = !led2; + led4 = 0; + led1 = 0; + + } + + + if (c == 's') {// regreso a menu + + led4 = !led4; + led2 = 0; + led1 = 0; + } + + + if (c == 'a') {// control automatico + + + led1 = !led1; + led2 = 0; + led4 = 0; + + } } + } - int main() { pc.baud(115200); - dev.baud(115200); + + pc.attach(&pc_recv, Serial::RxIrq); - dev.attach(&dev_recv, Serial::RxIrq); + lcd.setCursor(TextLCD::CurOff_BlkOn); + const char udc_Bat_Hi[] = {0x80, 0x84, 0x8e, 0x9f, 0x95, 0x8e, 0x84, 0x8a}; // Battery Full 128,132,142,159,149,142,132,138 + + lcd.setUDC(1, (char *) udc_Bat_Hi); // Define Bat High pattern for UDC index number 0 + lcd.putc(1); + + pc.printf("Bye now in original example \r\n"); + + wait(1); + + lcd.cls(); + + lcd.setBacklight(TextLCD::LightOn); + + int col = 0; + int row = 0; + lcd.locate(col,row); + lcd.printf("Iniciando..."); + wait(1); + + lcd.setCursor(TextLCD::CurOff_BlkOff); + + int c = 1; + lcd.cls(); + lcd.locate(0,0); + for (int row=0; row<4; row++) { + lcd.putc(c); + wait(0.01); + + for (col=0; col<19; col++) { + lcd.putc(c); + wait(0.01); + } + } + wait(3); + + const char* text2 = "PROYECTO FINAL"; + lcd.cls(); + lcd.locate(3,0); + lcd.printf(text2); + lcd.locate(8,1); + lcd.printf("UPS"); + lcd.locate(6,2); + lcd.printf("SISTEMAS"); + lcd.locate(3,3); + lcd.printf("MICROPROCESADOS"); + wait(2); + + lcd.getAddress(col,row); + pc.printf("column %d\trow %d\r\n",col,row); + wait(2); + + // Write a raw string to the LCD + const char* text = "CONTROL PWM AUTO(a)"; + lcd.cls(); + lcd.locate(0,0); + lcd.printf(text); + + lcd.locate(0,2); + lcd.printf("CONTROL PWM MAN(m)"); + wait(1); + + lcd.getAddress(col,row); + pc.printf("column %d\trow %d\r\n",col,row); + + while(1) { - sleep(); + + //inicio automatico + if(led1==1) { + b++; + if (b>1) b=0; + wait(0.5); + + for(w=0; w<1; w=w+0.1) { + + SALIDA=w; + wait(0.1); + + pc.printf("salida= %f%\n", AIN.read()); + const char* text = "CONTROL PWM AUTO"; + + lcd.locate(1,0); + lcd.printf(text); + q= AIN*10; + + // Write a raw string to the LCD -> pointer + + lcd.locate(2,2); + lcd.printf("salida= %f%\n", q); + wait(0.5); + if (ain>= 0.9f) {// ALARMA + + lcd.locate(0,3); + + pc.printf("ALARMA %2.2f \n",ain.read()); + led5= 0; + wait(0.1); + } + + else { + + lcd.locate(3,3); + lcd.printf("ALARMA TEMP"); + pc.printf("ALARMA %2.2f \n",ain.read()); + led5 = 1; + wait(0.1); + } + } + } + + + if(led2==1) + + + { //inicio manual + + + const char* text41 = "CONTROL MAN AUTO"; + //lcd.cls(); + lcd.locate(1,0); + lcd.printf(text41); + + + // vP1=pulsador.read(); + //vP2=pulsador1.read(); + if((pulsador.read()==1 && brightness < 0.1)) { + brightness += 0.01; + led = brightness; + k=brightness*100; + wait(0.5); + } + if((pulsador1.read()==1 && brightness > 0.0)) { + brightness -= 0.01; + led = brightness; + k=brightness*100; + wait(0.5); + } + lcd.locate(2,2); + lcd.printf("salida= %f%\n",k); + pc.printf("%c %1.3f \n \r",c,k); + wait(0.5); + } + + + if(led4==1) { // MENU + lcd.cls(); + const char* text3 = "CONTROL PWM AUTO(a)"; + // lcd.cls(); + lcd.locate(0,0); + lcd.printf(text3); + + lcd.locate(0,2); + lcd.printf("CONTROL PWM MAN(m)");//programa manual + wait(1); + + + + if (ain>= 0.9f) {//ALARMA + + lcd.locate(0,3); + + pc.printf("ALARMA %2.2f \n",ain.read()); + led5= 0; + wait(0.1); + } + + else { + + lcd.locate(3,3); + lcd.printf("ALARMA TEMP"); + pc.printf("ALARMA %2.2f \n",ain.read()); + led5 = 1; + wait(0.1); + } + + + + + + sleep(); + + } } -} +} \ No newline at end of file