Documentos de Académico
Documentos de Profesional
Documentos de Cultura
void setup()
{
Serial.begin(9600);
pinMode (encoder1, INPUT_PULLUP);
pinMode (encoder2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(encoder1), ServicioBoton, FALLING);
pinMode(ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
a=millis();
}
void loop()
{
if(Serial.available() > 0)
{
i+=1;
if (i==6){i=1;}
if (i==1){setp1=Serial.read();}
if (i==2){signo1=Serial.read();}
if (i==3){setp2=Serial.read();}
if (i==4){signo2=Serial.read();}
}
if(i==4)
{
Serial.write('a');
delay(100);
Serial.write(setp2);
delay(100);
Serial.write(signo2);
if(signo1==1){setp1=2*setp1;}
else{setp1=-2*setp1;}
if(signo2==1){setp2=2*setp2;}
else{setp2=-2*setp2;}
i+=1;
a=millis();
}
while (i==5)
{
if(millis()>a+T){
var = cont-pulse;
pulse = cont;
angle = (var*enc)*360/(ppr*mg); // POLOLU 64 CPR-CAJA (270:1);
V = max(-10,min(-kp*e-kd*de-ki*ie,10));
if (V>0){
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);}
else{
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);}
V=abs(V);
PWMV=0.0062*V*V*V*V*V*V - 0.1744*V*V*V*V*V + 1.9355*V*V*V*V -
10.307*V*V*V + 25.965*V*V - 15.652*V + 26.798;
se=max(min(120,PWMV),0);
analogWrite(ENB,se);
Serial.write(w);
a=millis();
}
}
}
void ServicioBoton()
{
enc=2*(digitalRead(encoder2))-1.0; //1->anti, -1->horar
cont+=1;
}
float angle;
float ppr = 16;
float mg = 270;
void setup()
{
Serial.begin(9600);
pinMode (encoder1, INPUT_PULLUP);
pinMode (encoder2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(encoder1), ServicioBoton, FALLING);
pinMode(ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
a=millis();
}
void loop()
{
if (Serial.available())
{
if (i==4){i=0;}
if (i==2){signo2=Serial.read();i+=1;}
if (i==1){setp2=Serial.read();i+=1;}
if (i==0){flag = Serial.read();
if (flag=='a'){i+=1;}
}
}
if(i==3)
{
if(signo2==1){setp2=2*setp2;}
else{setp2=-2*setp2;}
i+=1;
a=millis();
}
while(i==4)
{
if(millis()>a+T){
if(Serial.available())
{
flag1 = Serial.read();
if (flag1=='a'){i=1;}
w = (float)flag1;
}
var = cont-pulse;
pulse = cont;
angle = (var*enc)*360/(ppr*mg); //3 PPR , CAJA DE 270
V = max(-10,min(-kp*e-kd*de-ki*ie,10));
if (V>0){
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);}
else{
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);}
V=abs(V);
Serial.print(posMotor);Serial.print(';');Serial.println(w2);
a=millis();
}
}
}
void ServicioBoton()
{
enc=2*(digitalRead(encoder2))-1.0; //1->anti, -1->horar
cont+=1;
}
float angle;
float ppr = 16;
float mg = 270;
void setup()
{
Serial.begin(9600);
pinMode (encoder1, INPUT_PULLUP);
pinMode (encoder2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(encoder1), ServicioBoton, FALLING);
pinMode(ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
a=millis();
}
void loop()
{
if (Serial.available())
{
if (i==4){i=0;}
if (i==2){signo2=Serial.read();i+=1;}
if (i==1){setp2=Serial.read();i+=1;}
if (i==0){flag = Serial.read();
if (flag=='a'){i+=1;}
}
}
if(i==3)
{
if(signo2==1){setp2=2*setp2;}
else{setp2=-2*setp2;}
i+=1;
a=millis();
}
while(i==4)
{
if(millis()>a+T){
if(Serial.available())
{
flag1 = Serial.read();
if (flag1=='a'){i=1;}
w = (float)flag1;
}
var = cont-pulse;
pulse = cont;
angle = (var*enc)*360/(ppr*mg); //3 PPR , CAJA DE 270
V = max(-10,min(-kp*e-kd*de-ki*ie,10));
if (V>0){
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);}
else{
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);}
V=abs(V);
Serial.print(posMotor);Serial.print(';');Serial.println(w2);
a=millis();
}
}
}
void ServicioBoton()
{
enc=2*(digitalRead(encoder2))-1.0; //1->anti, -1->horar
cont+=1;
}