Rafael Caro / Mbed 2 deprecated RobotCompletoPublico

Dependencies:   mbed

Fork of RobotCompleto by Rafael Caro

Committer:
Racafe
Date:
Mon May 04 08:39:07 2015 +0000
Revision:
0:bd4170087cf1
Todo a?adido;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Racafe 0:bd4170087cf1 1 #include "mbed.h"
Racafe 0:bd4170087cf1 2 #include "main.h"
Racafe 0:bd4170087cf1 3
Racafe 0:bd4170087cf1 4 Serial pc2(USBTX, USBRX);
Racafe 0:bd4170087cf1 5 int sentido= 0;
Racafe 0:bd4170087cf1 6 int fase = 0;
Racafe 0:bd4170087cf1 7 bool iniFreno = false;
Racafe 0:bd4170087cf1 8
Racafe 0:bd4170087cf1 9 void frenar(double velocidadActual, double& potenciaMotores, double& potenciaMotoresFrameAnterior, PwmOut pinDAd, PwmOut pinDAt, PwmOut pinIAd, PwmOut pinIAt){
Racafe 0:bd4170087cf1 10 double sumador;
Racafe 0:bd4170087cf1 11
Racafe 0:bd4170087cf1 12 //Primero, comprobamos si nos estamos moviendo
Racafe 0:bd4170087cf1 13
Racafe 0:bd4170087cf1 14 // Serial.println(velocidadActual);
Racafe 0:bd4170087cf1 15 // Serial.print("Sentido");
Racafe 0:bd4170087cf1 16 // Serial.println(sentido);
Racafe 0:bd4170087cf1 17 if(velocidadActual>0.2){
Racafe 0:bd4170087cf1 18 double velocidadAnterior;
Racafe 0:bd4170087cf1 19 if(nominado == 0){
Racafe 0:bd4170087cf1 20 velocidadAnterior = historialVelocidades[2];
Racafe 0:bd4170087cf1 21 } else if(nominado == 1){
Racafe 0:bd4170087cf1 22 velocidadAnterior = historialVelocidades[1];
Racafe 0:bd4170087cf1 23 }else {
Racafe 0:bd4170087cf1 24 velocidadAnterior = historialVelocidades[0];
Racafe 0:bd4170087cf1 25 }
Racafe 0:bd4170087cf1 26
Racafe 0:bd4170087cf1 27
Racafe 0:bd4170087cf1 28 if(sentido == 0){
Racafe 0:bd4170087cf1 29 potenciaMotores = -0.6f;
Racafe 0:bd4170087cf1 30 sentido = 1;
Racafe 0:bd4170087cf1 31 }
Racafe 0:bd4170087cf1 32 else if (sentido == 1){
Racafe 0:bd4170087cf1 33 if(velocidadActual <= (velocidadAnterior+0.3)){
Racafe 0:bd4170087cf1 34 potenciaMotores = potenciaMotores-0.05;
Racafe 0:bd4170087cf1 35 }else{
Racafe 0:bd4170087cf1 36 sentido = -1;
Racafe 0:bd4170087cf1 37 potenciaMotores = -potenciaMotores/3;
Racafe 0:bd4170087cf1 38 }
Racafe 0:bd4170087cf1 39 }
Racafe 0:bd4170087cf1 40 else{
Racafe 0:bd4170087cf1 41 if(velocidadActual <= (velocidadAnterior+0.3)){
Racafe 0:bd4170087cf1 42 potenciaMotores = potenciaMotores+0.05;
Racafe 0:bd4170087cf1 43 }else{
Racafe 0:bd4170087cf1 44 sentido = 1;
Racafe 0:bd4170087cf1 45 potenciaMotores = -potenciaMotores/3;
Racafe 0:bd4170087cf1 46 }
Racafe 0:bd4170087cf1 47 }
Racafe 0:bd4170087cf1 48
Racafe 0:bd4170087cf1 49 if(potenciaMotores > 1.0){
Racafe 0:bd4170087cf1 50 potenciaMotores = 1.0;
Racafe 0:bd4170087cf1 51 }
Racafe 0:bd4170087cf1 52 if(potenciaMotores < -1.0){
Racafe 0:bd4170087cf1 53 potenciaMotores = -1.0;
Racafe 0:bd4170087cf1 54 }
Racafe 0:bd4170087cf1 55
Racafe 0:bd4170087cf1 56
Racafe 0:bd4170087cf1 57 // Serial.print("POTENCIA " );
Racafe 0:bd4170087cf1 58 // Serial.println(potenciaMotores);
Racafe 0:bd4170087cf1 59
Racafe 0:bd4170087cf1 60
Racafe 0:bd4170087cf1 61 }else{
Racafe 0:bd4170087cf1 62 potenciaMotores=0;
Racafe 0:bd4170087cf1 63 // Serial.println("ESTÁ FRENADO");
Racafe 0:bd4170087cf1 64 sentido = 0;
Racafe 0:bd4170087cf1 65 fase = 0;
Racafe 0:bd4170087cf1 66 }
Racafe 0:bd4170087cf1 67 if(potenciaMotores<0){
Racafe 0:bd4170087cf1 68
Racafe 0:bd4170087cf1 69 pinDAt.write(-potenciaMotores);
Racafe 0:bd4170087cf1 70 pinDAd.write(0.0);
Racafe 0:bd4170087cf1 71 pinIAt.write(-potenciaMotores);
Racafe 0:bd4170087cf1 72 pinIAd.write(0.0);
Racafe 0:bd4170087cf1 73 /* analogWrite(pinRuedaDerechaAtras, -potenciaMotores);
Racafe 0:bd4170087cf1 74 analogWrite(pinRuedaDerechaAdelante, 0);
Racafe 0:bd4170087cf1 75 analogWrite(pinRuedaIzquierdaAtras, -potenciaMotores);
Racafe 0:bd4170087cf1 76 analogWrite(pinRuedaIzquierdaAdelante, 0);*/
Racafe 0:bd4170087cf1 77
Racafe 0:bd4170087cf1 78 }else{
Racafe 0:bd4170087cf1 79 /*analogWrite(pinRuedaDerechaAdelante, potenciaMotores);
Racafe 0:bd4170087cf1 80 analogWrite(pinRuedaDerechaAtras, 0);
Racafe 0:bd4170087cf1 81 analogWrite(pinRuedaIzquierdaAdelante, potenciaMotores);
Racafe 0:bd4170087cf1 82 analogWrite(pinRuedaIzquierdaAtras, 0);*/
Racafe 0:bd4170087cf1 83
Racafe 0:bd4170087cf1 84 pinDAd.write(potenciaMotores);
Racafe 0:bd4170087cf1 85 pinDAt.write(0.0);
Racafe 0:bd4170087cf1 86 pinIAd.write(potenciaMotores);
Racafe 0:bd4170087cf1 87 pinIAt.write(0.0);
Racafe 0:bd4170087cf1 88
Racafe 0:bd4170087cf1 89 }
Racafe 0:bd4170087cf1 90 // tiempoUltimoControlFrenado = millis();
Racafe 0:bd4170087cf1 91
Racafe 0:bd4170087cf1 92 }
Racafe 0:bd4170087cf1 93