alonso vallejo
/
lab3_adc
lab3 para curso mbed FIME
main.cpp@0:8114474319ec, 2015-05-24 (annotated)
- Committer:
- Alonso
- Date:
- Sun May 24 04:15:46 2015 +0000
- Revision:
- 0:8114474319ec
lab3 para curso mbed FIME
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Alonso | 0:8114474319ec | 1 | #include "mbed.h" |
Alonso | 0:8114474319ec | 2 | |
Alonso | 0:8114474319ec | 3 | /* En esta practica se ve la configuracion de un pin que se usa como entrada analogica, |
Alonso | 0:8114474319ec | 4 | tiene un potenciometro conectada al pin analogico A0, y se lee el valor de ADC que |
Alonso | 0:8114474319ec | 5 | esta en el puerto, este valor se usa como un retardo para hacer oscilar el led rgb rojo, |
Alonso | 0:8114474319ec | 6 | la funcion que se esta usando es .read |
Alonso | 0:8114474319ec | 7 | |
Alonso | 0:8114474319ec | 8 | Reto: Hacer un programa que mediante la lectura simple del ADC (.read), puede encender o apagar un LED de la siguiente forma: |
Alonso | 0:8114474319ec | 9 | |
Alonso | 0:8114474319ec | 10 | - Encender solo el led rgb rojo, cuando el valor sea mayor que 0.2. |
Alonso | 0:8114474319ec | 11 | - Encender solo el led rgb verde, cuando el valor sea mayor que 0.6 |
Alonso | 0:8114474319ec | 12 | - Encender solo el led rgb azul, cuando el valor sea mayor que 0.9 |
Alonso | 0:8114474319ec | 13 | - Si no se cumple ningun caso, todos los led deben estar apagados. */ |
Alonso | 0:8114474319ec | 14 | |
Alonso | 0:8114474319ec | 15 | DigitalOut led_rgb_rojo(PTB18,1); // inicializamos el led rgb rojo como salida digital y estado inicial de 1. |
Alonso | 0:8114474319ec | 16 | AnalogIn pot(A0); // inicializamos el pin A0 como una entrada analogica a la que esta conectada el potenciometro. |
Alonso | 0:8114474319ec | 17 | |
Alonso | 0:8114474319ec | 18 | float valor_pot; // variable donde se almacena el valor leido por el ADC en la entrada analogica |
Alonso | 0:8114474319ec | 19 | |
Alonso | 0:8114474319ec | 20 | int main() { |
Alonso | 0:8114474319ec | 21 | while(1) { |
Alonso | 0:8114474319ec | 22 | valor_pot = pot.read(); // se lee el valor analogico en el pin y se guarda en la variable valor_pot, toma valores entre 0.0 - 1.0 |
Alonso | 0:8114474319ec | 23 | led_rgb_rojo = 0; // encendemos el led rgb rojo |
Alonso | 0:8114474319ec | 24 | wait(valor_pot); // el retardo depende del valor leido en la entrada digital, 0.0 seg - 1.0 seg |
Alonso | 0:8114474319ec | 25 | led_rgb_rojo = 1; // se apaga el led rgb rojo |
Alonso | 0:8114474319ec | 26 | wait(valor_pot); |
Alonso | 0:8114474319ec | 27 | } |
Alonso | 0:8114474319ec | 28 | } |