voltimetro LCD, 7seg_4digitos

Dependencies:   mbed TextLCD

Revision:
0:288eb4592f41
Child:
1:aedb77569443
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jun 12 23:54:02 2020 +0000
@@ -0,0 +1,85 @@
+#include "mbed.h"
+#include "TextLCD.h"
+
+TextLCD lcd(A0,A1,A2,A3,A4,A5,TextLCD::LCD16x2);
+AnalogIn entrada(PC_3);//pin entrada analogica
+DigitalOut led (LED1);
+int voltaje;
+int entero, decimal;
+double volt_in;
+
+BusOut display(PA_15,PB_7,PC_13,PC_14,PC_15,PH_0,PH_1);//pines en la placa
+BusOut Trans(PA_13,PA_14); //pin para los transistores
+void ver();
+void incre();
+int unidad;
+int decena;
+int conteo;
+const char seg[10]= {0x40,0x79,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
+Ticker visualizar;
+Ticker incrementar;
+
+
+void ver()
+{
+    switch(conteo) {
+        case 0:
+            display =0x00;
+            Trans =0;
+            break;
+        case 1:
+            display = seg[unidad];
+            Trans=1;
+            break;
+        case 2:
+            display =0x00;
+            Trans =0;
+            break;
+        case 3:
+            display = seg[decena];
+            Trans=2;
+            break;
+    }
+    conteo++;
+    if(conteo==4) {
+        conteo=0;
+    }
+}
+void incre()
+{
+    if (unidad<9) {
+        unidad++;
+    } else {
+        decena++;
+        unidad=0;
+        if(decena==10)decena=0;
+    }
+}
+
+
+
+int main()
+{
+    //lcd.cls();
+    //lcd.printf("Su Voltaje es:");
+    visualizar.attach(&ver,5.5e-3);
+    incrementar.attach(&incre,1);
+
+
+
+    while(1) {
+        volt_in= entrada.read();
+        volt_in = volt_in*3300;
+        voltaje = int(volt_in);
+        entero = voltaje/1000;
+        decimal = voltaje%1000;
+        led=1;
+        lcd.cls();
+        lcd.printf("El Voltaje es:");
+        lcd.locate(1,5);
+        lcd.printf("%01d,%03d volts", entero,decimal);//de la parte enteraimprime 1 digito y decima imprime 3
+        wait_us(1e6);
+        led=1;
+
+    }
+}
\ No newline at end of file