Rodrigo Vianna
/
APS-1-MEA-2021-2-RodrigoVianna
APS 1 máquinas Elétricas Rodrigo Vianna
Diff: main.cpp
- Revision:
- 0:7b62a3e6a41a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Sep 15 00:39:19 2021 +0000 @@ -0,0 +1,42 @@ +#include "mbed.h" +// Definição das entradas utilizadas +DigitalOut IN1A (D5); +DigitalOut IN2A (D4); +PwmOut ENA (D2); +Serial pc(USBTX, USBRX); +AnalogIn potenciometro(A5); +InterruptIn sinal_encoder(D7); + +//Definição das variáveis referentes ao cronômetro, contador e RPM +Timer cronometro; +int repeticoes; +int rpm; + +// Criação de uma função para incrementar o valor do contador +void registro_encoder(void){ + repeticoes++; +} + + +int main(){ + cronometro.start();// começa cronometragem + sinal_encoder.fall(®istro_encoder);// soma 1 à contagem se detectada uma borda de descida do sinal do encoder + float valor_pot; // valor recebido do potenciômetro + pc.baud(9600);// taxa de transferência de informações da serial + while(1){ + // Envia para o motor tensão proporcional ao valor do potenciômetro + valor_pot=potenciometro.read(); + ENA.write(valor_pot); + IN1A=0; + IN2A=1; + if(repeticoes>=120){ // Calcula o rpm quando as repetições igualarem 120 (4 revs) + rpm= (4/(cronometro/60)); + pc.printf("omega(rpm):%d\n\r",rpm);// Printa o valor de duty cycle e rpm + pc.printf("\rdtc=%1.2f",valor_pot); + repeticoes=0; // reseta a contagem do encoder e do cronômetro + cronometro.reset(); + } + } + } + + \ No newline at end of file