alonso vallejo
/
lab6_UART_ADC
lab6 para curso mbed FIME
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 /* En esta practica se da un repaso a lo que es comunicacion serial a travez del puerto UART 00004 y la lectura de un valor analogico utilizando el ADC, pero en este caso se utiliza una 00005 funcion para lectura de ADC secundaria, esta funcio entrega el valor real del adc en un 00006 rango de 16 bits (0 - 65535). La funcion de la practica consiste en leer el valor real del 00007 ADC de un potenciometro y calcular cual es el voltaje de entrada en el pin al que esta conectado 00008 el potenciomtro. Ambos valores son mostrado en en la terminal de la pc. 00009 00010 reto: Agregar al programa el codigo necesario para que se cumpla lo siguiente: 00011 00012 - cuando el valor de voltaje este entre (0 - 1.5) solo se encienda el led verde, imprimir en terminal, valor de voltaje y "la papa se quema" 00013 - cuando el valor de voltaje este entre (1.6 - 2.5) solo se encienda el led azul, imprimir en terminal,valor de voltaje y "la papa se esta quemando" 00014 - cuando el valor de voltaje este entre (2.6 - 3.3) solo se encienda el led rojo, imprimir en terminal,valor de voltaje y "se papa se quemo :( "*/ 00015 00016 AnalogIn pot(PTB0); // inicializamos el valor pin de entrada analogico donde esta conectado el potenciometro 00017 Serial pc(USBTX,USBRX); // inicializamos el el puerto de comunicacion serial 00018 00019 unsigned int valor_adc_pot; // variable donde se guarda el valor real del adc del potenciometro 00020 float valor_voltaje; // variable que se calcula y donde se guarda el valor de voltaje 00021 00022 int main() 00023 { 00024 pc.baud(115200); // indicamos la cantidad de baudios *tambien debe ajustarse en la terminal. 00025 pc.printf("mi voltimetro\r\n"); // impresion principal 00026 00027 while(1) { 00028 valor_adc_pot = pot.read_u16();// se lee el valor del adc de 16 bits y se guarda en la variable 00029 valor_voltaje = valor_adc_pot * (3.3 / 65535.0); // se calcula el valor de voltaje de entrada usando el valor de lectura del adc 00030 valor_adc_pot = pot.read_u16();// se lee el valor del adc de 16 bits y se guarda en la variable 00031 valor_voltaje = valor_adc_pot * (3.3 / 65535.0); // se calcula el valor de voltaje de entrada usando el valor de lectura del adc 00032 pc.printf(" el valor del adc es: %d, el valor del voltaje es: %.2f volts \r\n",valor_adc_pot, valor_voltaje);// se imprime en la terminal los valores de adc y voltaje respectivamente 00033 wait_ms(500); // se hace un retardo para poder apreciarlo en la terminal.*/ 00034 00035 } 00036 }
Generated on Mon Jul 18 2022 01:19:07 by 1.7.2