Codigo comentado da IronCup 01/03/2020
Dependencies: mbed
Diff: main.cpp
- Revision:
- 9:fccecc817082
- Parent:
- 8:66d5045d9a5b
- Child:
- 10:d546eec37792
diff -r 66d5045d9a5b -r fccecc817082 main.cpp --- a/main.cpp Wed Feb 26 04:38:56 2020 +0000 +++ b/main.cpp Wed Feb 26 20:57:52 2020 +0000 @@ -4,7 +4,7 @@ //========================= DEFINICOES =========================// -#define threshold 127 // parametro que diferencia a leitura do branco pro preto +#define threshold 160 // parametro que diferencia a leitura do branco pro preto PwmOut pwm(p25); DigitalOut dir (p26); PwmOut pwm1(p24); @@ -44,10 +44,10 @@ //============== VARIAVEIS MAIS IMPORTANTES ================// //Separadas do resto para facilitar a alteração -float ParametroCorrecao = 4.968; //2 // 4.63 -float Kp_Sensor = 0.225; //0.14; //0.2 //0.16 // 0.2 -float Kd_Sensor = 4.1; //1.75; //1.15 //0.3 // 2.7 -float BaseSpeed = 0.18; //0.12 // 0.15 +float ParametroCorrecao = 1.2; //2 // 4.63 // 2 ----> 1.2 +float Kp_Sensor = 0.55; //0.14; //0.2 //0.16 // 0.2 // 0.35--->0.55 +float Kd_Sensor = 7.2; //1.75; //1.15 //0.3 // 2.7 // 4.3 --->7.2 +float BaseSpeed = 0.18; //0.12 // 0.15 // 0.18--->0.18 //==========================================================// //#define VMAX_PWM 100 @@ -145,15 +145,15 @@ void Leitura_Sensores (void){ //Faz a leitura dos sensores e retorna a posição - if (sensorCheck(3)== 1 && sensorCheck(4) == 1) {Position = 45;lastRead = 3;} //Se ler os dois do meio, está no SetPoint + if (sensorCheck(3)== 1 && sensorCheck(4) == 1) {Position = 45;} //Se ler os dois do meio, está no SetPoint else if (sensorCheck(3)==1) {Position = 40;lastRead = 3;} else if (sensorCheck(4)==1) {Position = 50;lastRead = 4;} else if (sensorCheck(2)==1) {Position = 30;lastRead = 2;} else if (sensorCheck(5)==1) {Position = 60;lastRead = 5;} else if (sensorCheck(1)==1) {Position = 20;lastRead = 1;} - else if (sensorCheck(6)==1) {Position = 70;lastRead = 2;} - else if (sensorCheck(0)==1 && (lastRead == 2 || lastRead == 1)) {Position = 10;lastRead = 0;} - else if (sensorCheck(7) == 1 && (lastRead == 6 ||lastRead == 5)) {Position = 80;lastRead = 7;} + else if (sensorCheck(6)==1) {Position = 70;lastRead = 6;} + else if (sensorCheck(0)==1 && (lastRead == 1||lastRead == 2)) {Position = 10;lastRead = 0;} + else if (sensorCheck(7) == 1 && (lastRead == 6||lastRead == 5)) {Position = 80;lastRead = 7;} //pc.printf("\n\rPosicao: %d", Position); //Print de teste } @@ -202,7 +202,7 @@ Error = Position - SET_POINT; //bt.printf("\n\rErro: %d", Error); - if (Error < 25 && Error > -25){ + if (Error < 20 && Error > -20){ Correcao_Sensor = Kp_Sensor * (float)Error + Kd_Sensor * ((float)Error - (float)LastError); } else{