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

Committer:
lesmalave
Date:
Sat May 26 15:05:46 2018 +0000
Revision:
0:4e434340b5bd
Voltimetro realizado con BluePilll y LCD16x2 incluido detector de sobrevoltaje.; Circuito de practica para ser implementado en equipos de medici?n.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lesmalave 0:4e434340b5bd 1 //Realizado por Luis Malavé en e Smart Labs Electronics
lesmalave 0:4e434340b5bd 2
lesmalave 0:4e434340b5bd 3 #include "mbed.h"
lesmalave 0:4e434340b5bd 4 #include "TextLCD.h"
lesmalave 0:4e434340b5bd 5 #include "stm32f103c8t6.h" // en caso de usar Bluepill importar esta libreria para tener compatibilidad con los pines
lesmalave 0:4e434340b5bd 6
lesmalave 0:4e434340b5bd 7 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
lesmalave 0:4e434340b5bd 8 DigitalOut led(PC_13); // usado como monitor de estado de alto voltaje
lesmalave 0:4e434340b5bd 9 AnalogIn Vin (PA_0); // entrada de lectura analogica A0
lesmalave 0:4e434340b5bd 10 float realv; // medición de voltaje float
lesmalave 0:4e434340b5bd 11
lesmalave 0:4e434340b5bd 12 int main() { // Mi introduciión del programa
lesmalave 0:4e434340b5bd 13 lcd.locate(2,0);
lesmalave 0:4e434340b5bd 14 lcd.printf("e Smart Labs"); // imprime en pantalla
lesmalave 0:4e434340b5bd 15 wait(2);
lesmalave 0:4e434340b5bd 16 while(1) {
lesmalave 0:4e434340b5bd 17 lcd.cls (); // comando de borrado de pantalla
lesmalave 0:4e434340b5bd 18 lcd.locate(1,0);
lesmalave 0:4e434340b5bd 19 lcd.printf("STM32F103C8T6");
lesmalave 0:4e434340b5bd 20 lcd.locate(1,1);
lesmalave 0:4e434340b5bd 21 lcd.printf("Mbed Bluepill");
lesmalave 0:4e434340b5bd 22 wait (3); // espera 3 segundos
lesmalave 0:4e434340b5bd 23
lesmalave 0:4e434340b5bd 24 lcd.cls();
lesmalave 0:4e434340b5bd 25 wait(0.5);
lesmalave 0:4e434340b5bd 26 while(1){
lesmalave 0:4e434340b5bd 27 realv = (Vin * 200); // calculo de voltaje real
lesmalave 0:4e434340b5bd 28 lcd.cls();
lesmalave 0:4e434340b5bd 29 lcd.locate(0,0);
lesmalave 0:4e434340b5bd 30 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)
lesmalave 0:4e434340b5bd 31 wait_ms(500);
lesmalave 0:4e434340b5bd 32
lesmalave 0:4e434340b5bd 33 if (realv > 120) { // Si el valor de medición es superior a 120 voltios enciende el Led e imprime en pantalla la condición
lesmalave 0:4e434340b5bd 34 led = 0; // por la configuración del led PC_13 enciende en estado bajo
lesmalave 0:4e434340b5bd 35 lcd.locate(1,1);
lesmalave 0:4e434340b5bd 36 lcd.printf("Sobrevoltaje", realv);
lesmalave 0:4e434340b5bd 37 wait_ms(500);
lesmalave 0:4e434340b5bd 38 }
lesmalave 0:4e434340b5bd 39 else {
lesmalave 0:4e434340b5bd 40 led = 1; // apaga el led en estado alto por la configuracion del led PC_13
lesmalave 0:4e434340b5bd 41 lcd.locate(1,1);
lesmalave 0:4e434340b5bd 42 lcd.printf("Voltaje OK", realv);
lesmalave 0:4e434340b5bd 43 wait_ms(3000);
lesmalave 0:4e434340b5bd 44 }
lesmalave 0:4e434340b5bd 45
lesmalave 0:4e434340b5bd 46
lesmalave 0:4e434340b5bd 47
lesmalave 0:4e434340b5bd 48 //lcd.printf("Volt(%f)", Vin.read());
lesmalave 0:4e434340b5bd 49 //wait(2);
lesmalave 0:4e434340b5bd 50 }
lesmalave 0:4e434340b5bd 51 }
lesmalave 0:4e434340b5bd 52 }