lab7 para curso mbed FIME

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 /* En esta practica se muestra el funcionamiento y configuracion basica del 
00004    conversor digital - analogico(DAC)del micro, la practica consiste en 
00005    leer el valor de un voltaje de entrada mediante el ADC, y se cree una 
00006    especie de buffer usando el DAC para que el mismo valor de voltaje de
00007    entrada sea el de la salida, se muestra el valor de entrada de voltaje
00008    y salida de voltaje en la terminal de la pc.
00009    
00010    No se olvide comprobar la verdadera señal de salida de voltaje con un
00011    multimetro o osciloscopio.*/
00012    
00013 AnalogOut voltaje_salida(PTE30); // se inicializa el puerto DAC del microcontrolador para la salida de voltaje
00014 AnalogIn voltaje_entrada(PTB0); // se inicializa el puerto ADC del microcontrolador donde se conecta el potenciometro
00015 Serial pc(USBTX,USBRX); // se inicializa el puerto de comunicacion serie UART del microcontrolador
00016 
00017 unsigned int valor_adc; // variable donde se almacena el valor de adc de 16 bits
00018 unsigned int valor_dac; // variable donde se almacena el valor del dac de 16 bits
00019 float voltaje_pot; // variable que se calcula para conocer el valor de voltaje de entrada
00020 float voltaje_dac; // variable que se calcula para conocer el valor de voltaje de salida
00021 
00022 
00023 int main()
00024 {
00025     pc.baud(115200);// configuracion del puerto serial para los baudios
00026     
00027     while(1) 
00028     {
00029         valor_adc = voltaje_entrada.read_u16(); // se lee el valor de voltaje con el ADC 16 bits y se guarda en la variable
00030         valor_dac = valor_adc; // igualamos el valor del ADC al del DAC
00031         voltaje_pot = valor_adc * (3.3f / 65535.0f); // se calcula el valor de voltaje de entrada usando el valor de lectura del ADC
00032         voltaje_dac = valor_dac * (3.3f / 65535.0f); // se calcula el valor de voltaje de salida del DAC
00033         pc.printf("voltaje de entrada : %.2f, voltaje de salida DAC : %.2f\r\n",voltaje_pot, voltaje_dac); // se imprimen los valores de entrada y salida
00034         voltaje_salida.write_u16(valor_adc); // se envian los bits de entrada(ADC) al DAC para obtener el mismo voltaje de salida.
00035         wait_ms(250); // retardo para visualizar en la terminal
00036     }
00037 }