Programa que lee dos canales del adc y lo muestra sobre una pantalla lcd más un botón de cambio de pantalla para visualizar el valor entero del adc y su voltaje real

Dependencies:   mbed TextLCD

Committer:
Otakutronics
Date:
Wed Dec 19 00:40:10 2018 +0000
Revision:
0:f2586ffe073a
Lectura del modulo adc y se muestra sobre un lcd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Otakutronics 0:f2586ffe073a 1 #include "mbed.h"
Otakutronics 0:f2586ffe073a 2 #include "TextLCD.h"
Otakutronics 0:f2586ffe073a 3
Otakutronics 0:f2586ffe073a 4 AnalogIn Canal1(A1); //PTB3
Otakutronics 0:f2586ffe073a 5 AnalogIn Canal0(A0); //PTB2
Otakutronics 0:f2586ffe073a 6
Otakutronics 0:f2586ffe073a 7 InterruptIn btn(PTA2);
Otakutronics 0:f2586ffe073a 8
Otakutronics 0:f2586ffe073a 9 DigitalOut led(LED_RED,1);
Otakutronics 0:f2586ffe073a 10 DigitalOut led2(LED_BLUE,1);
Otakutronics 0:f2586ffe073a 11
Otakutronics 0:f2586ffe073a 12 TextLCD LCD(PTC2, PTC3, PTD0, PTD1, PTD2, PTD3); //rs, en, D4, D5, D6, D7
Otakutronics 0:f2586ffe073a 13
Otakutronics 0:f2586ffe073a 14 bool sw = false;
Otakutronics 0:f2586ffe073a 15 float AdcFlt;
Otakutronics 0:f2586ffe073a 16
Otakutronics 0:f2586ffe073a 17 void ISR_Switch()
Otakutronics 0:f2586ffe073a 18 {
Otakutronics 0:f2586ffe073a 19 sw = !sw;
Otakutronics 0:f2586ffe073a 20 LCD.cls();
Otakutronics 0:f2586ffe073a 21 wait(0.25);
Otakutronics 0:f2586ffe073a 22 }
Otakutronics 0:f2586ffe073a 23
Otakutronics 0:f2586ffe073a 24 int main()
Otakutronics 0:f2586ffe073a 25 {
Otakutronics 0:f2586ffe073a 26 btn.mode(PullUp);
Otakutronics 0:f2586ffe073a 27 btn.rise(&ISR_Switch);
Otakutronics 0:f2586ffe073a 28
Otakutronics 0:f2586ffe073a 29 wait(0.25);
Otakutronics 0:f2586ffe073a 30 LCD.cls();
Otakutronics 0:f2586ffe073a 31 wait(0.25);
Otakutronics 0:f2586ffe073a 32
Otakutronics 0:f2586ffe073a 33 while (true)
Otakutronics 0:f2586ffe073a 34 {
Otakutronics 0:f2586ffe073a 35 if (sw == 0)
Otakutronics 0:f2586ffe073a 36 {
Otakutronics 0:f2586ffe073a 37 LCD.locate(0,0);
Otakutronics 0:f2586ffe073a 38 LCD.printf("CH0 Valor: %5d",Canal0.read_u16());
Otakutronics 0:f2586ffe073a 39 LCD.locate(0,1);
Otakutronics 0:f2586ffe073a 40 LCD.printf("CH1 Valor: %5d",Canal1.read_u16());
Otakutronics 0:f2586ffe073a 41 led = 0;
Otakutronics 0:f2586ffe073a 42 wait(0.05);
Otakutronics 0:f2586ffe073a 43 led = 1;
Otakutronics 0:f2586ffe073a 44 wait(0.45);
Otakutronics 0:f2586ffe073a 45 }
Otakutronics 0:f2586ffe073a 46 else
Otakutronics 0:f2586ffe073a 47 {
Otakutronics 0:f2586ffe073a 48 AdcFlt = Canal0.read_u16()*3.3/65536;
Otakutronics 0:f2586ffe073a 49 LCD.locate(0,0);
Otakutronics 0:f2586ffe073a 50 LCD.printf("CH0 Volts: %.3f",AdcFlt);
Otakutronics 0:f2586ffe073a 51 AdcFlt = Canal1.read_u16()*3.3/65536;
Otakutronics 0:f2586ffe073a 52 LCD.locate(0,1);
Otakutronics 0:f2586ffe073a 53 LCD.printf("CH1 Volts: %.3f",AdcFlt);
Otakutronics 0:f2586ffe073a 54 led2 = 0;
Otakutronics 0:f2586ffe073a 55 wait(0.05);
Otakutronics 0:f2586ffe073a 56 led2 = 1;
Otakutronics 0:f2586ffe073a 57 wait(0.45);
Otakutronics 0:f2586ffe073a 58 }
Otakutronics 0:f2586ffe073a 59 }
Otakutronics 0:f2586ffe073a 60 }