Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:c665d23a7e36, 2020-08-06 (annotated)
- Committer:
- Marcelocostanzo
- Date:
- Thu Aug 06 16:53:38 2020 +0000
- Revision:
- 0:c665d23a7e36
primeira versao
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Marcelocostanzo | 0:c665d23a7e36 | 1 | /***************************************************************** |
| Marcelocostanzo | 0:c665d23a7e36 | 2 | * Projeto para leitura da rotação do motor Akyama ak360/25PL12S3500S |
| Marcelocostanzo | 0:c665d23a7e36 | 3 | * |
| Marcelocostanzo | 0:c665d23a7e36 | 4 | * |
| Marcelocostanzo | 0:c665d23a7e36 | 5 | * |
| Marcelocostanzo | 0:c665d23a7e36 | 6 | * Insper instituto e pesquisa |
| Marcelocostanzo | 0:c665d23a7e36 | 7 | * |
| Marcelocostanzo | 0:c665d23a7e36 | 8 | * Autor: Marcelo Costanzo Miranda |
| Marcelocostanzo | 0:c665d23a7e36 | 9 | * Data: 06/08/2020 |
| Marcelocostanzo | 0:c665d23a7e36 | 10 | **************************************************************/ |
| Marcelocostanzo | 0:c665d23a7e36 | 11 | |
| Marcelocostanzo | 0:c665d23a7e36 | 12 | #include "mbed.h" |
| Marcelocostanzo | 0:c665d23a7e36 | 13 | |
| Marcelocostanzo | 0:c665d23a7e36 | 14 | //------------------Pino para o sinal de rotação----------------------------- |
| Marcelocostanzo | 0:c665d23a7e36 | 15 | InterruptIn pulse(D7); |
| Marcelocostanzo | 0:c665d23a7e36 | 16 | |
| Marcelocostanzo | 0:c665d23a7e36 | 17 | //----------------Timers para amostragem ------------------------------------ |
| Marcelocostanzo | 0:c665d23a7e36 | 18 | Ticker calc_rpm; |
| Marcelocostanzo | 0:c665d23a7e36 | 19 | Ticker send_serial; |
| Marcelocostanzo | 0:c665d23a7e36 | 20 | |
| Marcelocostanzo | 0:c665d23a7e36 | 21 | //----------------Comunicação---------------------------------------- |
| Marcelocostanzo | 0:c665d23a7e36 | 22 | Serial pc(USBTX, USBRX); // tx, rx |
| Marcelocostanzo | 0:c665d23a7e36 | 23 | |
| Marcelocostanzo | 0:c665d23a7e36 | 24 | //----------------Variaveis---------------------------------------- |
| Marcelocostanzo | 0:c665d23a7e36 | 25 | int tooth_counter = 0; |
| Marcelocostanzo | 0:c665d23a7e36 | 26 | int RPM = 0; |
| Marcelocostanzo | 0:c665d23a7e36 | 27 | //float RPS = 0; |
| Marcelocostanzo | 0:c665d23a7e36 | 28 | //float tooth_period = 0; |
| Marcelocostanzo | 0:c665d23a7e36 | 29 | |
| Marcelocostanzo | 0:c665d23a7e36 | 30 | //----------------Interrupçao de pulso---------------------------------------- |
| Marcelocostanzo | 0:c665d23a7e36 | 31 | void pulse_read() |
| Marcelocostanzo | 0:c665d23a7e36 | 32 | { |
| Marcelocostanzo | 0:c665d23a7e36 | 33 | tooth_counter++; |
| Marcelocostanzo | 0:c665d23a7e36 | 34 | } |
| Marcelocostanzo | 0:c665d23a7e36 | 35 | |
| Marcelocostanzo | 0:c665d23a7e36 | 36 | //----------------Calcula a rotação a 40Hz---------------------------------------- |
| Marcelocostanzo | 0:c665d23a7e36 | 37 | void rpm_counter() |
| Marcelocostanzo | 0:c665d23a7e36 | 38 | { |
| Marcelocostanzo | 0:c665d23a7e36 | 39 | RPM = tooth_counter * 40; |
| Marcelocostanzo | 0:c665d23a7e36 | 40 | //tooth_period = 25000 / tooth_counter; |
| Marcelocostanzo | 0:c665d23a7e36 | 41 | //RPS = RPM / 60; |
| Marcelocostanzo | 0:c665d23a7e36 | 42 | tooth_counter = 0; |
| Marcelocostanzo | 0:c665d23a7e36 | 43 | } |
| Marcelocostanzo | 0:c665d23a7e36 | 44 | |
| Marcelocostanzo | 0:c665d23a7e36 | 45 | //----------------Envia a rotação a 1Hz---------------------------------------- |
| Marcelocostanzo | 0:c665d23a7e36 | 46 | void send_rpm() |
| Marcelocostanzo | 0:c665d23a7e36 | 47 | { |
| Marcelocostanzo | 0:c665d23a7e36 | 48 | pc.printf("%i\r\n",RPM); |
| Marcelocostanzo | 0:c665d23a7e36 | 49 | } |
| Marcelocostanzo | 0:c665d23a7e36 | 50 | |
| Marcelocostanzo | 0:c665d23a7e36 | 51 | int main() |
| Marcelocostanzo | 0:c665d23a7e36 | 52 | { |
| Marcelocostanzo | 0:c665d23a7e36 | 53 | pc.baud(38400);// ajusta o baudrate |
| Marcelocostanzo | 0:c665d23a7e36 | 54 | |
| Marcelocostanzo | 0:c665d23a7e36 | 55 | pulse.rise(&pulse_read);//habilita a interrupção por borda de subida |
| Marcelocostanzo | 0:c665d23a7e36 | 56 | |
| Marcelocostanzo | 0:c665d23a7e36 | 57 | calc_rpm.attach_us(&rpm_counter, 25000);//habilita a chamada a 40Hz para calculo da rotaçao |
| Marcelocostanzo | 0:c665d23a7e36 | 58 | |
| Marcelocostanzo | 0:c665d23a7e36 | 59 | send_serial.attach(&send_rpm, 1.0f);//habilita a chamada a 1Hz para envio da rotaçao |
| Marcelocostanzo | 0:c665d23a7e36 | 60 | |
| Marcelocostanzo | 0:c665d23a7e36 | 61 | while(1) |
| Marcelocostanzo | 0:c665d23a7e36 | 62 | { |
| Marcelocostanzo | 0:c665d23a7e36 | 63 | } |
| Marcelocostanzo | 0:c665d23a7e36 | 64 | } |