Voltimetro realizado con BluePilll y LCD16x2 incluido detector de sobrevoltaje. Circuito de practica para ser implementado en equipos de medición. Se uso la libreria STM32F103C8T6 Y se limito los decimales a dos digitos tambie se uso el propio led incluido en la placa para monitorear alto viltaje

Dependencies:   TextLCD mbed-STM32F103C8T6 mbed

Revision:
0:4e434340b5bd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat May 26 15:05:46 2018 +0000
@@ -0,0 +1,52 @@
+//Realizado por Luis Malavé en e Smart Labs Electronics
+
+#include "mbed.h"
+#include "TextLCD.h"
+#include "stm32f103c8t6.h" // en caso de usar Bluepill importar esta libreria para tener compatibilidad con los pines
+
+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
+DigitalOut led(PC_13); // usado como monitor de estado de alto voltaje
+AnalogIn Vin (PA_0);  // entrada de lectura analogica A0
+float realv; // medición de voltaje float
+
+int main() {  // Mi introduciión del programa
+    lcd.locate(2,0);
+    lcd.printf("e Smart Labs");   // imprime en pantalla
+    wait(2);
+    while(1) {
+      lcd.cls ();  // comando de borrado de pantalla
+      lcd.locate(1,0);
+      lcd.printf("STM32F103C8T6"); 
+      lcd.locate(1,1);
+      lcd.printf("Mbed Bluepill"); 
+      wait (3);        // espera 3 segundos
+      
+    lcd.cls();
+    wait(0.5);
+    while(1){
+    realv = (Vin * 200); // calculo de voltaje real
+    lcd.cls();
+    lcd.locate(0,0);
+    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)
+    wait_ms(500);
+    
+    if (realv > 120) { // Si el valor de medición es superior a 120 voltios enciende el Led e imprime en pantalla la condición
+          led = 0;  // por la configuración del led PC_13 enciende en estado bajo
+          lcd.locate(1,1);
+          lcd.printf("Sobrevoltaje", realv);
+          wait_ms(500);
+        }
+        else {
+          led = 1;  // apaga el led en estado alto por la configuracion del led PC_13
+          lcd.locate(1,1);
+          lcd.printf("Voltaje OK", realv);
+          wait_ms(3000);
+        }
+    
+   
+    
+    //lcd.printf("Volt(%f)", Vin.read());
+    //wait(2);
+      }
+    }
+}