alonso vallejo
/
lab7_DAC
lab7 para curso mbed FIME
main.cpp@0:9e3658ce2607, 2015-05-24 (annotated)
- Committer:
- Alonso
- Date:
- Sun May 24 04:18:27 2015 +0000
- Revision:
- 0:9e3658ce2607
lab7 para curso mbed FIME
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Alonso | 0:9e3658ce2607 | 1 | #include "mbed.h" |
Alonso | 0:9e3658ce2607 | 2 | |
Alonso | 0:9e3658ce2607 | 3 | /* En esta practica se muestra el funcionamiento y configuracion basica del |
Alonso | 0:9e3658ce2607 | 4 | conversor digital - analogico(DAC)del micro, la practica consiste en |
Alonso | 0:9e3658ce2607 | 5 | leer el valor de un voltaje de entrada mediante el ADC, y se cree una |
Alonso | 0:9e3658ce2607 | 6 | especie de buffer usando el DAC para que el mismo valor de voltaje de |
Alonso | 0:9e3658ce2607 | 7 | entrada sea el de la salida, se muestra el valor de entrada de voltaje |
Alonso | 0:9e3658ce2607 | 8 | y salida de voltaje en la terminal de la pc. |
Alonso | 0:9e3658ce2607 | 9 | |
Alonso | 0:9e3658ce2607 | 10 | No se olvide comprobar la verdadera señal de salida de voltaje con un |
Alonso | 0:9e3658ce2607 | 11 | multimetro o osciloscopio.*/ |
Alonso | 0:9e3658ce2607 | 12 | |
Alonso | 0:9e3658ce2607 | 13 | AnalogOut voltaje_salida(PTE30); // se inicializa el puerto DAC del microcontrolador para la salida de voltaje |
Alonso | 0:9e3658ce2607 | 14 | AnalogIn voltaje_entrada(PTB0); // se inicializa el puerto ADC del microcontrolador donde se conecta el potenciometro |
Alonso | 0:9e3658ce2607 | 15 | Serial pc(USBTX,USBRX); // se inicializa el puerto de comunicacion serie UART del microcontrolador |
Alonso | 0:9e3658ce2607 | 16 | |
Alonso | 0:9e3658ce2607 | 17 | unsigned int valor_adc; // variable donde se almacena el valor de adc de 16 bits |
Alonso | 0:9e3658ce2607 | 18 | unsigned int valor_dac; // variable donde se almacena el valor del dac de 16 bits |
Alonso | 0:9e3658ce2607 | 19 | float voltaje_pot; // variable que se calcula para conocer el valor de voltaje de entrada |
Alonso | 0:9e3658ce2607 | 20 | float voltaje_dac; // variable que se calcula para conocer el valor de voltaje de salida |
Alonso | 0:9e3658ce2607 | 21 | |
Alonso | 0:9e3658ce2607 | 22 | |
Alonso | 0:9e3658ce2607 | 23 | int main() |
Alonso | 0:9e3658ce2607 | 24 | { |
Alonso | 0:9e3658ce2607 | 25 | pc.baud(115200);// configuracion del puerto serial para los baudios |
Alonso | 0:9e3658ce2607 | 26 | |
Alonso | 0:9e3658ce2607 | 27 | while(1) |
Alonso | 0:9e3658ce2607 | 28 | { |
Alonso | 0:9e3658ce2607 | 29 | valor_adc = voltaje_entrada.read_u16(); // se lee el valor de voltaje con el ADC 16 bits y se guarda en la variable |
Alonso | 0:9e3658ce2607 | 30 | valor_dac = valor_adc; // igualamos el valor del ADC al del DAC |
Alonso | 0:9e3658ce2607 | 31 | voltaje_pot = valor_adc * (3.3f / 65535.0f); // se calcula el valor de voltaje de entrada usando el valor de lectura del ADC |
Alonso | 0:9e3658ce2607 | 32 | voltaje_dac = valor_dac * (3.3f / 65535.0f); // se calcula el valor de voltaje de salida del DAC |
Alonso | 0:9e3658ce2607 | 33 | 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 |
Alonso | 0:9e3658ce2607 | 34 | voltaje_salida.write_u16(valor_adc); // se envian los bits de entrada(ADC) al DAC para obtener el mismo voltaje de salida. |
Alonso | 0:9e3658ce2607 | 35 | wait_ms(250); // retardo para visualizar en la terminal |
Alonso | 0:9e3658ce2607 | 36 | } |
Alonso | 0:9e3658ce2607 | 37 | } |