//PARTE MOVIL
//FINALES DE CARRERA
int FC1 = 22;
int FC2 = 24;
int FC3 = 26;
//PULSADORES
int B1 = 23;
int B2 = 25;
int B3 = 27;
//VALORES ESTACIOARIOS
int Pos;
int NPos;
//CONTROL DEL MOTOR
int Left = 2;
int Right = 3;
int PSpeed = 4;
int Speed = 200;
void setup() {
//CONFIGURACION MOVIL
pinMode(FC1 , INPUT);
pinMode(FC2 , INPUT);
pinMode(FC3 , INPUT);
pinMode(B1 , INPUT);
pinMode(B2 , INPUT);
pinMode(B3 , INPUT);
pinMode(Left , OUTPUT);
pinMode(Right , OUTPUT);
pinMode(PSpeed , OUTPUT);
}
void loop() {
//DETERMINAR VELOCIDAD DEL MOVIMIENTO
analogWrite(PSpeed, Speed);
//VALORAR LA POSICION EN LA QUE SE ENCUENTRA
if (digitalRead(FC1) == HIGH) {
Pos = 1;
}
if (digitalRead(FC2) == HIGH) {
Pos = 2;
}
if (digitalRead(FC3) == HIGH) {
Pos = 3;
}
//MOVIMIENTO
if (digitalRead(B1) == HIGH) { //POSICION1
digitalWrite(Left, LOW);
digitalWrite(Right, HIGH);
while (digitalRead(FC1) == LOW) {
delay(1);
}
digitalWrite(Left, LOW);
digitalWrite(Right, LOW);
}
if (digitalRead(B2) == HIGH) { //POSICION2
NPos = 2;
if (Pos > NPos) {
digitalWrite(Left, LOW);
digitalWrite(Right, HIGH);
while (digitalRead(FC2) == LOW) {
delay(1);
}
digitalWrite(Left, LOW);
digitalWrite(Right, LOW);
}
if (NPos > Pos) {
digitalWrite(Left, HIGH);
digitalWrite(Right, LOW);
while (digitalRead(FC2) == LOW) {
delay(1);
}
digitalWrite(Left, LOW);
digitalWrite(Right, LOW);
}
}
if (digitalRead(B3) == HIGH) { //POSICION3
digitalWrite(Left, HIGH);
digitalWrite(Right, LOW);
while (digitalRead(FC3) == LOW) {
delay(1);
}
digitalWrite(Left, LOW);
digitalWrite(Right, LOW);
}
}
