Segelbåt: Limpiapiscina (3 / 5 steg)
Steg 3: Programar Arduino
#include < Servo.h >
Servo sonar; skapa objekt för att styra en servo servo
Servo timon; heta kontroll timon
Servomotor;
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;
för (int jag = 60; jag < 100; i ++)
{
motor.write(i);
Delay(100);
}
incializo timon
int TimMin = 0;
int TimMax = 90.
för (int jag = TimMin; jag < TimMax; i ++)
{
Timon.write(i);
Delay(10);
}
inicializo sonar
int SonarMin = 0;
int SonarMax = 90.
för (int jag = SonarMin; jag < SonarMax; i ++)
{
sonar.write(i);
Delay(10);
}
}
////////////////
Funciones / /
//////////////
int Detecto_Objeto (int pos)
{
Pongo servo sv 0,90,180
sonar.write(POS);
Delay(250);
Mido la distancia
digitalWrite(configPin,HIGH); höja Återställ pin hög
Delay(250); start av kalibrering ring
flyta sensorvalue = analogRead(5); få analog sensor stift 5
flyta cmvalue = (1,25 * sensorvalue + 3,75);
Serial.Print("Distancia="); skriva ut tum text
Serial.println(cmvalue); skriva ut tums värde
Delay(15); valfria dröjsmål 1 sekund
digitalWrite(configPin,LOW); Stäng av kalibrering ring och sensor
/*Serial.Print ("pos/Distancia =");
Serial.Print(POS);
Serial.Print("/");
Serial.Print(cmvalue);
Serial.Print("\n"); * /
återvända cmvalue;
}
Funciones de movimiento
void Aceleracion(int vel)
{
int jag = 0;
Serial.Print ("Aceleracion");
Serial.Print(Vel);
Serial.Print("\n");
för (jag = 60; jag < 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 Izquierda = 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()
{
Detecto heta
int pos = 0;
int DistChoque = 30.
int Adelante = 90.
int Izquierda = 0;
int Izquierda = 180;
om (Detecto_Objeto(Adelante) > DistChoque)
VehiculoCTL(Adelante);
annat
om (Detecto_Objeto(Derecha) > DistChoque)
VehiculoCTL(Izquierda);
annat
om (Detecto_Objeto(Izquierda) > DistChoque)
VehiculoCTL(Derecha);
}