Sz_Insper / Mbed 2 deprecated Leitura_Velocidade_Akyama

Dependencies:   mbed

main.cpp

Committer:
Marcelocostanzo
Date:
2020-08-06
Revision:
0:c665d23a7e36

File content as of revision 0:c665d23a7e36:

/*****************************************************************
* Projeto para leitura da rotação do motor Akyama ak360/25PL12S3500S
*
* 
*
* Insper instituto e pesquisa
*
* Autor: Marcelo Costanzo Miranda
* Data: 06/08/2020
**************************************************************/

#include "mbed.h"

//------------------Pino para o sinal de rotação-----------------------------
InterruptIn pulse(D7);

//----------------Timers para amostragem ------------------------------------
Ticker calc_rpm;
Ticker send_serial;

//----------------Comunicação----------------------------------------
Serial pc(USBTX, USBRX); // tx, rx

//----------------Variaveis----------------------------------------
int tooth_counter = 0;
int RPM = 0;
//float RPS = 0;
//float tooth_period = 0;

//----------------Interrupçao de pulso----------------------------------------
void pulse_read()
{
    tooth_counter++;
}

//----------------Calcula a rotação a 40Hz----------------------------------------
void rpm_counter()
{
    RPM = tooth_counter * 40;
    //tooth_period = 25000 / tooth_counter;
    //RPS = RPM / 60;
    tooth_counter = 0;
}

//----------------Envia a rotação a 1Hz----------------------------------------
void send_rpm()
{
    pc.printf("%i\r\n",RPM);
}

int main() 
{     
    pc.baud(38400);// ajusta o baudrate
    
    pulse.rise(&pulse_read);//habilita a interrupção por borda de subida
    
    calc_rpm.attach_us(&rpm_counter, 25000);//habilita a chamada a 40Hz para calculo da rotaçao
    
    send_serial.attach(&send_rpm, 1.0f);//habilita a chamada a 1Hz para envio da rotaçao

    while(1) 
    {
    }
}