Oscar Alejandro Martinez Mancilla
/
Parte_2_Practica_1_Actuadores
Actuadores - Practica 1 - Parte 2
main.cpp@0:580b324b04e9, 2015-02-06 (annotated)
- Committer:
- oscarmtzman
- Date:
- Fri Feb 06 19:30:08 2015 +0000
- Revision:
- 0:580b324b04e9
Actuadores - Pr?ctica 1 - Parte 2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oscarmtzman | 0:580b324b04e9 | 1 | #include "mbed.h" |
oscarmtzman | 0:580b324b04e9 | 2 | |
oscarmtzman | 0:580b324b04e9 | 3 | DigitalOut led(LED1); //Se declara LED1 como salida digital para identificar cuando el programa está corriendo |
oscarmtzman | 0:580b324b04e9 | 4 | AnalogIn pot(A0); //Se declara A0 como entrada analogica para el potenciometro |
oscarmtzman | 0:580b324b04e9 | 5 | PwmOut enable(PTA12); //Se declara PTA12 como PWM |
oscarmtzman | 0:580b324b04e9 | 6 | DigitalIn button(PTD4); //Se declara PTD4 como entrada digital para el boton |
oscarmtzman | 0:580b324b04e9 | 7 | |
oscarmtzman | 0:580b324b04e9 | 8 | bool freqdef=0; //Se define una variable booleana para los dos estados de frecuencia (1kHz y 10kHz), se inicializa en estado 0 (1kHz) |
oscarmtzman | 0:580b324b04e9 | 9 | float potval=0; //Se defne una viariable flotante para guardar la lectura del potenciometro |
oscarmtzman | 0:580b324b04e9 | 10 | |
oscarmtzman | 0:580b324b04e9 | 11 | Serial pc(USBTX, USBRX); //Se inicia comunicación serial con la computadora para visualizar el estado |
oscarmtzman | 0:580b324b04e9 | 12 | //de frefuencia y la lectura del potenciometro |
oscarmtzman | 0:580b324b04e9 | 13 | int main() |
oscarmtzman | 0:580b324b04e9 | 14 | { |
oscarmtzman | 0:580b324b04e9 | 15 | button.mode(PullUp); //Se define el puerto del botón como PullUp |
oscarmtzman | 0:580b324b04e9 | 16 | |
oscarmtzman | 0:580b324b04e9 | 17 | while(1) { |
oscarmtzman | 0:580b324b04e9 | 18 | |
oscarmtzman | 0:580b324b04e9 | 19 | if(button==1) { //Cuando el boton es presionado se entra a esta condición |
oscarmtzman | 0:580b324b04e9 | 20 | while (button==1) { //Ciclo que estanca el programa mientras esta presionado el botón, |
oscarmtzman | 0:580b324b04e9 | 21 | potval=pot; //pero sigue haciendo lectura del potenciometro y modificando el PWM |
oscarmtzman | 0:580b324b04e9 | 22 | pc.printf("%d\t",freqdef); |
oscarmtzman | 0:580b324b04e9 | 23 | pc.printf("%f\n",potval); |
oscarmtzman | 0:580b324b04e9 | 24 | enable=potval; |
oscarmtzman | 0:580b324b04e9 | 25 | } |
oscarmtzman | 0:580b324b04e9 | 26 | |
oscarmtzman | 0:580b324b04e9 | 27 | freqdef=!freqdef; //Al soltar el botón se cambia del estado de frecuencia 0 al 1 o viceversa |
oscarmtzman | 0:580b324b04e9 | 28 | } |
oscarmtzman | 0:580b324b04e9 | 29 | |
oscarmtzman | 0:580b324b04e9 | 30 | |
oscarmtzman | 0:580b324b04e9 | 31 | if(freqdef==0){ //Si el estado es 0 se establece en el PWM una frecuencua de 1kHz |
oscarmtzman | 0:580b324b04e9 | 32 | enable.period_ms(1); |
oscarmtzman | 0:580b324b04e9 | 33 | } |
oscarmtzman | 0:580b324b04e9 | 34 | |
oscarmtzman | 0:580b324b04e9 | 35 | if(freqdef==1){ |
oscarmtzman | 0:580b324b04e9 | 36 | enable.period_us(100); //Si el estado es 0 se establece en el PWM una frecuencua de 10kHz |
oscarmtzman | 0:580b324b04e9 | 37 | } |
oscarmtzman | 0:580b324b04e9 | 38 | |
oscarmtzman | 0:580b324b04e9 | 39 | |
oscarmtzman | 0:580b324b04e9 | 40 | potval=pot; //Se guarda el valorer leido del potenciometro en la variable flotante potval |
oscarmtzman | 0:580b324b04e9 | 41 | pc.printf("%d\t",freqdef); //Se imprimen en el monitor serial el numero del estado de frecuencia y la lectura del potenciometro |
oscarmtzman | 0:580b324b04e9 | 42 | pc.printf("%f\n",potval); |
oscarmtzman | 0:580b324b04e9 | 43 | enable=potval; //Se establece el ciclo del trabajo del PWM mediante la lectura del potenciometro |
oscarmtzman | 0:580b324b04e9 | 44 | |
oscarmtzman | 0:580b324b04e9 | 45 | } |
oscarmtzman | 0:580b324b04e9 | 46 | } |
oscarmtzman | 0:580b324b04e9 | 47 | |
oscarmtzman | 0:580b324b04e9 | 48 |