Paso 3: Programar Arduino
#include < Servo.h >
Sonar del servo; crear objeto servo para controlar un servo
Servo de timón; objeto control timon
Motor servo;
int configPin = 13;
void setup()
{
sonar.Attach(9);
Timon.Attach(8);
motor.Attach(11);
Serial.Begin(9600);
pinMode(configPin,OUTPUT);
inicializo motor
int VelMin = 60;
int VelMax = 100;
para (int i = 60; i < 100; i ++)
{
motor.Write(i);
Delay(100);
}
incializo timon
int TimMin = 0;
int TimMax = 90;
para (int i = TimMin; i < TimMax; i ++)
{
Timon.Write(i);
Delay(10);
}
inicializo sonar
int SonarMin = 0;
int SonarMax = 90;
para (int i = SonarMin; i < SonarMax; i ++)
{
sonar.Write(i);
Delay(10);
}
}
////////////////
Funciones / /
//////////////
int Detecto_Objeto (int pos)
{
pongo en de servo 0,90,180
sonar.Write(POS);
Delay(250);
Mido la distancia
digitalWrite(configPin,HIGH); levantar el pin de reset alta
Delay(250); Inicio de anillo de calibración
flotador de sensorvalue = analogRead(5); obtener valor de sensor análogo de pin 5
Float cmvalue = (1,25 * sensorvalue + 3.75);
Serial.Print("distancia="); imprimir texto de pulgadas
Serial.println(cmvalue); Imprimir valor de pulgadas
Delay(15); opcional retardo de 1 segundo
digitalWrite(configPin,LOW); Apague el sensor y el anillo de calibración
/*Serial.Print ("pos/Distancia =");
Serial.Print(POS);
Serial.Print("/");
Serial.Print(cmvalue);
Serial.Print("\n"); * /
volver cmvalue;
}
Funciones de movimiento
void Aceleracion(int vel)
{
int i = 0;
Serial.Print ("Aceleracion");
Serial.Print(vel);
Serial.Print("\n");
para (i = 60; i < vel; i ++)
{
motor.Write(i);
Delay(100);
Serial.Print ("pos/vel");
Serial.Print(i);
Serial.Print("/");
Serial.Print(vel);
Serial.Print("\n");
}
Delay(1000);
}
void VehiculoCTL(int pos)
{
int Adelante = 90;
int Derecha = 0;
int Izquierda = 180;
int Vel;
Timon.Write(POS);
Aceleracion(70);
Delay(150);
Serial.Print ("pos/vel");
Serial.Print(POS);
Serial.Print("/");
Serial.Print(vel);
Serial.Print("\n");
Delay(100);
}
/////////////////////////
Programa Principal / /
///////////////////////
void loop()
{
Objeto de detecto
int pos = 0;
int DistChoque = 30;
int Adelante = 90;
int Derecha = 0;
int Izquierda = 180;
Si (Detecto_Objeto(Adelante) > DistChoque)
VehiculoCTL(Adelante);
otra cosa
Si (Detecto_Objeto(Derecha) > DistChoque)
VehiculoCTL(Izquierda);
otra cosa
Si (Detecto_Objeto(Izquierda) > DistChoque)
VehiculoCTL(Derecha);
}