Projeto de controle usando IHM07M1 e motor brushless

Dependencies:   mbed

Committer:
kaiquedog
Date:
Fri Nov 27 20:51:25 2020 +0000
Revision:
0:b734f558b698
APS_4 Motor Brushless

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaiquedog 0:b734f558b698 1 #include "mbed.h"
kaiquedog 0:b734f558b698 2
kaiquedog 0:b734f558b698 3 PwmOut IN1 (PA_8);
kaiquedog 0:b734f558b698 4 PwmOut IN2 (PA_9);
kaiquedog 0:b734f558b698 5 PwmOut IN3 (PA_10);
kaiquedog 0:b734f558b698 6 Serial pc(USBTX, USBRX);
kaiquedog 0:b734f558b698 7 InterruptIn Bot(PC_13);
kaiquedog 0:b734f558b698 8 DigitalOut EN1 (PC_10);
kaiquedog 0:b734f558b698 9 DigitalOut EN2 (PC_11);
kaiquedog 0:b734f558b698 10 DigitalOut EN3 (PC_12);
kaiquedog 0:b734f558b698 11 AnalogIn Potenciometro(PB_1);
kaiquedog 0:b734f558b698 12
kaiquedog 0:b734f558b698 13 bool Acionar = true;
kaiquedog 0:b734f558b698 14 float Tim;
kaiquedog 0:b734f558b698 15 float POT;
kaiquedog 0:b734f558b698 16
kaiquedog 0:b734f558b698 17
kaiquedog 0:b734f558b698 18 void Ativacao(){
kaiquedog 0:b734f558b698 19 if (Acionar == true){
kaiquedog 0:b734f558b698 20 EN1 = 0;
kaiquedog 0:b734f558b698 21 EN2 = 0;
kaiquedog 0:b734f558b698 22 EN3 = 0;
kaiquedog 0:b734f558b698 23 Acionar = false;
kaiquedog 0:b734f558b698 24 }
kaiquedog 0:b734f558b698 25
kaiquedog 0:b734f558b698 26 else {
kaiquedog 0:b734f558b698 27 Acionar = true;
kaiquedog 0:b734f558b698 28 }
kaiquedog 0:b734f558b698 29 }
kaiquedog 0:b734f558b698 30
kaiquedog 0:b734f558b698 31
kaiquedog 0:b734f558b698 32 int main()
kaiquedog 0:b734f558b698 33 {
kaiquedog 0:b734f558b698 34 pc.baud(9600);
kaiquedog 0:b734f558b698 35 EN1 = 0;
kaiquedog 0:b734f558b698 36 EN2 = 0;
kaiquedog 0:b734f558b698 37 EN3 = 0;
kaiquedog 0:b734f558b698 38
kaiquedog 0:b734f558b698 39 Acionar = false;
kaiquedog 0:b734f558b698 40
kaiquedog 0:b734f558b698 41 IN1.period_ms(1);
kaiquedog 0:b734f558b698 42 IN2.period_ms(1);
kaiquedog 0:b734f558b698 43 IN3.period_ms(1);
kaiquedog 0:b734f558b698 44
kaiquedog 0:b734f558b698 45 IN1.write(0);
kaiquedog 0:b734f558b698 46 IN2.write(0);
kaiquedog 0:b734f558b698 47 IN3.write(0);
kaiquedog 0:b734f558b698 48
kaiquedog 0:b734f558b698 49 Bot.fall(&Ativacao);
kaiquedog 0:b734f558b698 50
kaiquedog 0:b734f558b698 51 while(1){
kaiquedog 0:b734f558b698 52 pc.printf("%f : %f\n\r", Tim, POT);
kaiquedog 0:b734f558b698 53 POT = Potenciometro.read()*1000;
kaiquedog 0:b734f558b698 54 Tim = (POT/1000)*(10-2)+2; // Criação de uma conversão POT para Tim
kaiquedog 0:b734f558b698 55 while (Acionar == true){
kaiquedog 0:b734f558b698 56 Tim = (Potenciometro.read()*8+2)/1000;
kaiquedog 0:b734f558b698 57 //Step 1
kaiquedog 0:b734f558b698 58 IN1.write(0);
kaiquedog 0:b734f558b698 59 IN2.write(0.9);
kaiquedog 0:b734f558b698 60 IN3.write(0);
kaiquedog 0:b734f558b698 61 EN1 = 0;
kaiquedog 0:b734f558b698 62 EN2 = 1;
kaiquedog 0:b734f558b698 63 EN3 = 2;
kaiquedog 0:b734f558b698 64 wait(Tim);
kaiquedog 0:b734f558b698 65
kaiquedog 0:b734f558b698 66 //Step 2
kaiquedog 0:b734f558b698 67 IN1.write(0);
kaiquedog 0:b734f558b698 68 IN2.write(0.9);
kaiquedog 0:b734f558b698 69 IN3.write(0);
kaiquedog 0:b734f558b698 70 EN1 = 2;
kaiquedog 0:b734f558b698 71 EN2 = 1;
kaiquedog 0:b734f558b698 72 EN3 = 0;
kaiquedog 0:b734f558b698 73 wait(Tim);
kaiquedog 0:b734f558b698 74
kaiquedog 0:b734f558b698 75
kaiquedog 0:b734f558b698 76 //Step 3
kaiquedog 0:b734f558b698 77 IN1.write(0);
kaiquedog 0:b734f558b698 78 IN2.write(0);
kaiquedog 0:b734f558b698 79 IN3.write(0.9);
kaiquedog 0:b734f558b698 80 EN1 = 2;
kaiquedog 0:b734f558b698 81 EN2 = 0;
kaiquedog 0:b734f558b698 82 EN3 = 1;
kaiquedog 0:b734f558b698 83 wait(Tim);
kaiquedog 0:b734f558b698 84
kaiquedog 0:b734f558b698 85
kaiquedog 0:b734f558b698 86 //Step 4
kaiquedog 0:b734f558b698 87 IN1.write(0);
kaiquedog 0:b734f558b698 88 IN2.write(0);
kaiquedog 0:b734f558b698 89 IN3.write(0.9);
kaiquedog 0:b734f558b698 90 EN1 = 0;
kaiquedog 0:b734f558b698 91 EN2 = 2;
kaiquedog 0:b734f558b698 92 EN3 = 1;
kaiquedog 0:b734f558b698 93 wait(Tim);
kaiquedog 0:b734f558b698 94
kaiquedog 0:b734f558b698 95
kaiquedog 0:b734f558b698 96 //Step 5
kaiquedog 0:b734f558b698 97 IN1.write(0.9);
kaiquedog 0:b734f558b698 98 IN2.write(0);
kaiquedog 0:b734f558b698 99 IN3.write(0);
kaiquedog 0:b734f558b698 100 EN1 = 1;
kaiquedog 0:b734f558b698 101 EN2 = 2;
kaiquedog 0:b734f558b698 102 EN3 = 0;
kaiquedog 0:b734f558b698 103 wait(Tim);
kaiquedog 0:b734f558b698 104
kaiquedog 0:b734f558b698 105
kaiquedog 0:b734f558b698 106 //Step 6
kaiquedog 0:b734f558b698 107 IN1.write(0.9);
kaiquedog 0:b734f558b698 108 IN2.write(0);
kaiquedog 0:b734f558b698 109 IN3.write(0);
kaiquedog 0:b734f558b698 110 EN1 = 1;
kaiquedog 0:b734f558b698 111 EN2 = 0;
kaiquedog 0:b734f558b698 112 EN3 = 2;
kaiquedog 0:b734f558b698 113 wait(Tim);
kaiquedog 0:b734f558b698 114 }
kaiquedog 0:b734f558b698 115 }
kaiquedog 0:b734f558b698 116 }