hola que tal, me gustaría que me ayudaran con mi proyecto con arduino, debo hacer un robot de sumos para un proyecto y me gustaría que me ayudaran a corregir mi código o a decirme como hacerle para que mi proyecto funcione bien, los materiales que usare son:
unos sensores sharp.
arduino nano.
servo motores mg 996r.
sensores de proximidad o borde.
void setup(){
//entradas de los sensores
int SharpDer = A0;
int SharpIzq= A1;
int QtrDer = A2;
int QtrIzq = A3;
int SharpladoDer = A4;
int SharpladoIzq = A5; // lee los valores de los sensores
int Sizq = 0;
int Sder = 0;
int SLadoizq = 0;
int SLadoder = 0;
int Qder = 0;
int Qizq = 0; //pines de los motores
int Mder1 = 4;
int Mder2 = 5;
int Mizq1 = 6;
int Mizq2 = 7;
int Led = 8;
}
void setup() {
pinMode(Mder1, OUTPUT);
pinMode(Mder2, OUTPUT);
pinMode(Mizq1, OUTPUT);
pinMode(Mizq2, OUTPUT);
pinMode(Led, OUTPUT);
digitalWrite(Led, HIGH);
}
void loop(){
//sensores();
if((SLadoizq<=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder<=300)){derechasuave();}
if((SLadoizq<=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder>=300)){derechafuerte();}
if((SLadoizq<=300)&&(Sizq<=300)&&(Sder>=300)&&(SLadoder<=300)){derechasuave();}
if((SLadoizq<=300)&&(Sizq>=300)&&(Sder<=300)&&(SLadoder<=300)){izquierdasuave();}
if((SLadoizq<=300)&&(Sizq>=300)&&(Sder>=300)&&(SLadoder<=300)){adelante();}
if((SLadoizq>=300)&&(Sizq<=300)&&(Sder<=300)&&(SLadoder<=300)){izquierdafuerte();}
if((Qder<=500)||(Qizq<=500)){atras();delay(200);}
}
void sensores (){
Sder = analogRead(SharpDer); // Lectura de Sensores
delay(1);
Sizq = analogRead(SharpIzq);
delay(1);
SLadoder = analogRead(SharpladoDer);
delay(1);
SLadoizq = analogRead(SharpladoIzq);
delay(1);
Qder = analogRead(QtrDer);
delay(1);
Qizq = analogRead(QtrIzq);
delay(1);
}
void adelante(){
digitalWrite(Mder1,HIGH);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, HIGH);
digitalWrite(Mizq2, LOW);
}
void atras(){
digitalWrite(Mder1, LOW);
digitalWrite(Mder2, HIGH);
digitalWrite(Mizq1, LOW);
digitalWrite(Mizq2, HIGH);
}
void parar(){
digitalWrite(Mder1, LOW);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, LOW);
digitalWrite(Mizq2, LOW);
}
void derechasuave(){
digitalWrite(Mder1, LOW);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, HIGH);
digitalWrite(Mizq2, LOW);
}
void derechafuerte(){
digitalWrite(Mder1, LOW);
digitalWrite(Mder2, HIGH);
digitalWrite(Mizq1, HIGH);
digitalWrite(Mizq2, LOW);
}
void izquierdasuave(){
digitalWrite(Mder1, HIGH);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, LOW);
digitalWrite(Mizq2, LOW);
}
void izquierdafuerte(){
digitalWrite(Mder1, HIGH);
digitalWrite(Mder2, LOW);
digitalWrite(Mizq1, LOW);
digitalWrite(Mizq2, HIGH);
}
espero me puedan ayudar con mi proyecto. gracias