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