Joan Tovar
/
PruebaVoltimetro_DisplayLCD_16x2_y_7seg_2digitos
voltimetro LCD, 7seg_4digitos
Diff: main.cpp
- 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