Actuadores - Practica 1 - Parte 2

Dependencies:   mbed

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?

UserRevisionLine numberNew 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