Programación simple
Arduino + Mobility Shield 2WD + Ultrasonic Ranging

#include <Ultrasonic.h>
#include <Servo.h>

Ultrasonic ultrasonic(5,4); // (Trig PIN,Echo PIN)

Servo Servo1;
Servo Servo2;

int izquierda;
int derecha = 0;

void setup() {
Servo1.attach(6);
Servo2.attach(7);
STOP(); 
delay(5000);
}

void loop()
{
  if ( ultrasonic.Ranging(CM) < 10 ) {
    // OBJETO
    STOP();
    IZQUIERDA();
    delay(200);
    izquierda = ultrasonic.Ranging(CM);
    DERECHA();
    delay(400);
    derecha = ultrasonic.Ranging(CM);
    
    if ( derecha < izquierda ) {
    
      for (int i=0; i < 14; i=ultrasonic.Ranging(CM) ){
      DERECHA();
      delay(50);}
      
    } else {
    
      for (int i=0; i < 14; i=ultrasonic.Ranging(CM) ){
      IZQUIERDA();
      delay(50);}
      
    }  
    
  }else{
   // LIBRE
   ADELANTE();
  }
}

void STOP(){
Servo1.writeMicroseconds(1425); //3000
Servo2.writeMicroseconds(1380); //0000
}
void ADELANTE(){
Servo1.writeMicroseconds(3000); //3000
Servo2.writeMicroseconds(0); //0000
}
void ATRAS(){
Servo1.writeMicroseconds(0); //3000
Servo2.writeMicroseconds(3000); //0000
}
void IZQUIERDA(){
Servo1.writeMicroseconds(3000); //3000
Servo2.writeMicroseconds(3000); //0000
}
void DERECHA(){
Servo1.writeMicroseconds(0); //3000
Servo2.writeMicroseconds(0); //0000
}

Librerías requeridas

Licencia de Creative Commons


Mobility Shield for Arduino
by Javier Rodrigo is licensed under a Creative Commons.

Leave a Reply