Fernando Sakabe / Mbed OS APS_1_MEA
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 
00002 #include "mbed.h"
00003 
00004 AnalogIn potenciometro(A5);                          //declara a entrada do potenciômetro
00005 PwmOut dc(D10);                                      //declara a saída do PWM
00006 InterruptIn encoder(D7);                             //declara entrada do encoder
00007 
00008 Ticker tempo_alto;                                   //declara um ticker
00009 int contador=0;                                      //icício do contador zerado
00010 int periodo=1;
00011 int periodo_min=60/periodo;                          //faz a conta do período
00012 float rpm=0;                                         //icício do rpm zerado
00013 float duty_cycle=0;                                  //icício do duty cycle zerado
00014 
00015 void alto(){                                         //declara a função alto
00016     contador++;                                      //soma 1 no contador
00017     }
00018 
00019 void calcula_rpm(){                                       //declara a função começa
00020     rpm=contador*periodo_min/(30);                   //faz a conta do rpm
00021     contador=0;                                      //zera o contador depois de calculo de rpm
00022     }
00023 
00024 int main(){
00025     dc.period(0.010);                                // define o periodo do PWM
00026     encoder.rise(&alto);                             //quando o encoder retorna 1 a função &alto é chamada
00027     tempo_alto.attach(&calcula_rpm, periodo);             //a funcao "calcula_rpm" é acionada quando passar o tempo de "periodo"
00028     
00029     while(1){    
00030         duty_cycle=potenciometro.read();             //o duty cycle é definido pelo potenciometro
00031         dc.write(duty_cycle);                        //o valor de duty cycle é colocado no PWM
00032         printf("duty cycle: %f rpm: %f \r\n " ,duty_cycle*100, rpm);   //o valor de rpm e do duty cycle é printado
00033 
00034     }
00035 }
00036