Rodrigo Vianna / Mbed 2 deprecated APS-1-MEA-2021-2-RodrigoVianna

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 // Definição das entradas utilizadas
00003 DigitalOut IN1A (D5);
00004 DigitalOut IN2A (D4);
00005 PwmOut ENA (D2);
00006 Serial pc(USBTX, USBRX);
00007 AnalogIn potenciometro(A5);
00008 InterruptIn sinal_encoder(D7);
00009 
00010 //Definição das variáveis referentes ao cronômetro, contador e RPM
00011 Timer cronometro;
00012 int repeticoes;
00013 int rpm;
00014 
00015 // Criação de uma função para incrementar o valor do contador
00016 void registro_encoder(void){
00017     repeticoes++;
00018 }
00019 
00020 
00021 int main(){
00022     cronometro.start();// começa cronometragem
00023     sinal_encoder.fall(&registro_encoder);// soma 1 à contagem se detectada uma borda de descida do sinal do encoder
00024     float valor_pot; // valor recebido do potenciômetro
00025     pc.baud(9600);// taxa de transferência de informações da serial
00026     while(1){
00027         // Envia para o motor tensão proporcional ao valor do potenciômetro
00028         valor_pot=potenciometro.read();
00029         ENA.write(valor_pot);
00030         IN1A=0;
00031         IN2A=1;
00032         if(repeticoes>=120){ // Calcula o rpm quando as repetições igualarem 120 (4 revs)
00033             rpm= (4/(cronometro/60));
00034             pc.printf("omega(rpm):%d\n\r",rpm);// Printa o valor de duty cycle e rpm
00035             pc.printf("\rdtc=%1.2f",valor_pot);
00036             repeticoes=0; // reseta a contagem do encoder e do cronômetro
00037             cronometro.reset();
00038             }
00039         }
00040     }
00041         
00042