PROYECTO FINAL CAMBIO DE PANTALLAS EN LCD CON INTERRUPCIONES
Dependencies: mbed MEDIDORCORRIENTEVOLTAJEYPOTENCIA
Diff: main.cpp
- Revision:
- 1:33b50d1fb58c
- Parent:
- 0:231de6a0410e
--- a/main.cpp Sat Feb 01 20:00:58 2020 +0000 +++ b/main.cpp Sat Feb 15 13:55:50 2020 +0000 @@ -1,12 +1,147 @@ #include "mbed.h" +#include "TextLCD.h" +InterruptIn P1(PA_0); +InterruptIn P2(PA_4); +InterruptIn P3(PA_5); +DigitalOut L1(PD_12); +DigitalOut L2(PD_13); +DigitalOut L3(PD_14); +DigitalOut L4(PD_15); +Serial pc(PA_2,PA_3); +I2C i2c_lcd(PB_7, PB_8); // SDA, SCL +TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD20x4); + +////////ENTRADAS ANALOGICAS +AnalogIn IFASE1(PB_0); +AnalogIn IFASE2(PB_1); +AnalogIn IFASE3(PC_5); +AnalogIn VFASE1_2(PC_0); +AnalogIn VFASE2_3(PA_7); +AnalogIn VFASE3_1(PC_4); +float valor_IFASE1=0; +float valor_IFASE2=0; +float valor_IFASE3=0; +float valor_VFASE1_2=0; +float valor_VFASE2_3=0; +float valor_VFASE3_1=0; +bool vP1=0; +bool vP2=0; +bool vP3=0; +bool vP4=0; +////ESTRUCTURA -DigitalOut myled(LED1); +void pantcurr(void) +{ + L1.write(1); + L2.write(0); + L3.write(0); + L4.write(0); +} + +void pantvolt(void) +{ + L1.write(0); + L2.write(1); + L3.write(0); + L4.write(0); +} + +void pantpow(void) +{ + L1.write(0); + L2.write(0); + L3.write(1); + L4.write(0); +} +void pantprinc(void) +{ + L1.write(0); + L2.write(0); + L3.write(0); + L4.write(1); +} + -int main() { - while(1) { - myled = 1; - wait(0.2); - myled = 0; - wait(0.2); +int main() +{ + P1.rise(&pantcurr); + P2.rise(&pantvolt); + P3.rise(&pantpow); + P1.fall(&pantprinc); + while(true) { + pc.baud(115200); + valor_IFASE1=IFASE1.read(); + valor_IFASE2=IFASE2.read(); + valor_IFASE3=IFASE3.read(); + valor_VFASE1_2=VFASE1_2.read(); + valor_VFASE2_3=VFASE2_3.read(); + valor_VFASE3_1=VFASE3_1.read(); + vP1=L1.read(); + vP2=L2.read(); + vP3=L3.read(); + vP4=L4.read(); + lcd.setBacklight(TextLCD::LightOn); + lcd.setCursor(TextLCD::CurOff_BlkOff); + if(vP1==1) { + lcd.cls(); + const char* text = "CORRIENTES DE FASE"; + lcd.cls(); + lcd.locate(0,0); + lcd.printf(text); + lcd.locate(0,2); + lcd.printf("IA%2.1f%", valor_IFASE1*20); + lcd.locate(7,2); + lcd.printf("IB%2.1f%", valor_IFASE2*20); + lcd.locate(14,2); + lcd.printf("IC%2.1f%", valor_IFASE3*20); + wait(0.5); + } + if(vP2==1) { + lcd.cls(); + const char* text = "VOLTAJES LINEA LINEA"; + lcd.cls(); + lcd.locate(0,0); + lcd.printf(text); + lcd.locate(0,2); + lcd.printf("V1=%1.0f%", valor_VFASE1_2*480); + lcd.locate(7,2); + lcd.printf("V2=%1.0f%", valor_VFASE2_3*480); + lcd.locate(14,2); + lcd.printf("V3=%1.0f%", valor_VFASE3_1*480); + L2.write(1); + wait(0.5); + } + if(vP3==1) { + lcd.cls(); + const char* text = "POTENCIAS POR FASE"; + lcd.cls(); + lcd.locate(1,0); + lcd.printf(text); + lcd.locate(0,2); + lcd.printf("P1=%1.1f%", (((valor_IFASE1*20)*(valor_VFASE1_2*480)))/1000); + lcd.locate(7,2); + lcd.printf("P2=%1.1f%", (((valor_IFASE2*20)*(valor_VFASE2_3*480)))/1000); + lcd.locate(14,2); + lcd.printf("P3=%1.1f%", (((valor_IFASE3*20)*(valor_VFASE3_1*480)))/1000); + wait(0.5); + } + if(vP4==1) { + const char* text = "PROYECTO FINAL"; + const char* text1 = "MAESTRIA ELECTRONICA"; + const char* text2 = "DAVID BALDEON"; + lcd.cls(); + lcd.locate(3,0); + lcd.printf(text); + lcd.locate(0,2); + lcd.printf(text1); + lcd.locate(4,3); + lcd.printf(text2); + wait(0.5); + } + + } } + + +