alonso vallejo
/
lab6_UART_ADC
lab6 para curso mbed FIME
main.cpp@0:b2f0c55d8176, 2015-05-24 (annotated)
- Committer:
- Alonso
- Date:
- Sun May 24 04:17:50 2015 +0000
- Revision:
- 0:b2f0c55d8176
lab6 para curso mbed FIME
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Alonso | 0:b2f0c55d8176 | 1 | #include "mbed.h" |
Alonso | 0:b2f0c55d8176 | 2 | |
Alonso | 0:b2f0c55d8176 | 3 | /* En esta practica se da un repaso a lo que es comunicacion serial a travez del puerto UART |
Alonso | 0:b2f0c55d8176 | 4 | y la lectura de un valor analogico utilizando el ADC, pero en este caso se utiliza una |
Alonso | 0:b2f0c55d8176 | 5 | funcion para lectura de ADC secundaria, esta funcio entrega el valor real del adc en un |
Alonso | 0:b2f0c55d8176 | 6 | rango de 16 bits (0 - 65535). La funcion de la practica consiste en leer el valor real del |
Alonso | 0:b2f0c55d8176 | 7 | ADC de un potenciometro y calcular cual es el voltaje de entrada en el pin al que esta conectado |
Alonso | 0:b2f0c55d8176 | 8 | el potenciomtro. Ambos valores son mostrado en en la terminal de la pc. |
Alonso | 0:b2f0c55d8176 | 9 | |
Alonso | 0:b2f0c55d8176 | 10 | reto: Agregar al programa el codigo necesario para que se cumpla lo siguiente: |
Alonso | 0:b2f0c55d8176 | 11 | |
Alonso | 0:b2f0c55d8176 | 12 | - 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" |
Alonso | 0:b2f0c55d8176 | 13 | - 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" |
Alonso | 0:b2f0c55d8176 | 14 | - 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 :( "*/ |
Alonso | 0:b2f0c55d8176 | 15 | |
Alonso | 0:b2f0c55d8176 | 16 | AnalogIn pot(PTB0); // inicializamos el valor pin de entrada analogico donde esta conectado el potenciometro |
Alonso | 0:b2f0c55d8176 | 17 | Serial pc(USBTX,USBRX); // inicializamos el el puerto de comunicacion serial |
Alonso | 0:b2f0c55d8176 | 18 | |
Alonso | 0:b2f0c55d8176 | 19 | unsigned int valor_adc_pot; // variable donde se guarda el valor real del adc del potenciometro |
Alonso | 0:b2f0c55d8176 | 20 | float valor_voltaje; // variable que se calcula y donde se guarda el valor de voltaje |
Alonso | 0:b2f0c55d8176 | 21 | |
Alonso | 0:b2f0c55d8176 | 22 | int main() |
Alonso | 0:b2f0c55d8176 | 23 | { |
Alonso | 0:b2f0c55d8176 | 24 | pc.baud(115200); // indicamos la cantidad de baudios *tambien debe ajustarse en la terminal. |
Alonso | 0:b2f0c55d8176 | 25 | pc.printf("mi voltimetro\r\n"); // impresion principal |
Alonso | 0:b2f0c55d8176 | 26 | |
Alonso | 0:b2f0c55d8176 | 27 | while(1) { |
Alonso | 0:b2f0c55d8176 | 28 | valor_adc_pot = pot.read_u16();// se lee el valor del adc de 16 bits y se guarda en la variable |
Alonso | 0:b2f0c55d8176 | 29 | valor_voltaje = valor_adc_pot * (3.3 / 65535.0); // se calcula el valor de voltaje de entrada usando el valor de lectura del adc |
Alonso | 0:b2f0c55d8176 | 30 | valor_adc_pot = pot.read_u16();// se lee el valor del adc de 16 bits y se guarda en la variable |
Alonso | 0:b2f0c55d8176 | 31 | valor_voltaje = valor_adc_pot * (3.3 / 65535.0); // se calcula el valor de voltaje de entrada usando el valor de lectura del adc |
Alonso | 0:b2f0c55d8176 | 32 | 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 |
Alonso | 0:b2f0c55d8176 | 33 | wait_ms(500); // se hace un retardo para poder apreciarlo en la terminal.*/ |
Alonso | 0:b2f0c55d8176 | 34 | |
Alonso | 0:b2f0c55d8176 | 35 | } |
Alonso | 0:b2f0c55d8176 | 36 | } |