Luis Malavé / Mbed 2 deprecated BluePill_Voltimetro

Dependencies:   TextLCD mbed-STM32F103C8T6 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //Realizado por Luis Malavé en e Smart Labs Electronics
00002 
00003 #include "mbed.h"
00004 #include "TextLCD.h"
00005 #include "stm32f103c8t6.h" // en caso de usar Bluepill importar esta libreria para tener compatibilidad con los pines
00006 
00007 TextLCD lcd(PB_9, PB_8, PB_7, PB_6, PB_5, PB_4, TextLCD::LCD16x2); // 4bit bus: rs, e, d4,d5,d6,d7, tipo de pantalla
00008 DigitalOut led(PC_13); // usado como monitor de estado de alto voltaje
00009 AnalogIn Vin (PA_0);  // entrada de lectura analogica A0
00010 float realv; // medición de voltaje float
00011 
00012 int main() {  // Mi introduciión del programa
00013     lcd.locate(2,0);
00014     lcd.printf("e Smart Labs");   // imprime en pantalla
00015     wait(2);
00016     while(1) {
00017       lcd.cls ();  // comando de borrado de pantalla
00018       lcd.locate(1,0);
00019       lcd.printf("STM32F103C8T6"); 
00020       lcd.locate(1,1);
00021       lcd.printf("Mbed Bluepill"); 
00022       wait (3);        // espera 3 segundos
00023       
00024     lcd.cls();
00025     wait(0.5);
00026     while(1){
00027     realv = (Vin * 200); // calculo de voltaje real
00028     lcd.cls();
00029     lcd.locate(0,0);
00030     lcd.printf("%.2f Voltios", realv); // imprime el valor de la medición  y el texto en display (%f imprime todos los decimales %.2f solo dos decimales)
00031     wait_ms(500);
00032     
00033     if (realv > 120) { // Si el valor de medición es superior a 120 voltios enciende el Led e imprime en pantalla la condición
00034           led = 0;  // por la configuración del led PC_13 enciende en estado bajo
00035           lcd.locate(1,1);
00036           lcd.printf("Sobrevoltaje", realv);
00037           wait_ms(500);
00038         }
00039         else {
00040           led = 1;  // apaga el led en estado alto por la configuracion del led PC_13
00041           lcd.locate(1,1);
00042           lcd.printf("Voltaje OK", realv);
00043           wait_ms(3000);
00044         }
00045     
00046    
00047     
00048     //lcd.printf("Volt(%f)", Vin.read());
00049     //wait(2);
00050       }
00051     }
00052 }