Hola, quería pedirles ayuda para terminar de programar mi robot. Me falta hacer en el "void loop" la función o parte de código que tome mueva el servo para que el sensor tome la distancia y posteriormente tomar una decisión, es un robot laberinto, ya tengo casi todo hecho, solo me falta ese trazo de código. }
//Declaramos librerías.
#include <AFMotor.h>
#include <Servo.h>
//Declaramos pines y variables que vayamos a usar.
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
Servo servo1;
const int pinTrigger = 10 ;
const int pinEcho = 11 ;
const int valorUmbral = 15;
long tiempoEntrada; // Almacena el tiempo de respuesta del sensor de entrada
float distanciaEntrada; // Almacena la distancia en cm a la que se encuentra el objeto
// Función que se ejecuta una sola vez al cargar el programa
void setup() {
// Iniciamos el monitor serie para mostrar el resultado
Serial.begin(9600);
// Iniciamos el servo para que empiece a trabajar con el pin 9
servo1.attach(9);
servo1.write(0);
//Colocamos la velocidad de los motores
motor1.setSpeed(255);
motor2.setSpeed(255);
//Iniciamos el sensor
pinMode(pinTrigger,OUTPUT); // El emisor emite por lo que es configurado como salida
pinMode(pinEcho,INPUT); // El receptor recibe por lo que es configurado como entrada
}
// Función que se repite de manera periódica
void loop() {
}
//Función que mide la distancia
void sensorUltrasonidos()
{
// Se inicializa el sensor de infrasonidos
digitalWrite(pinTrigger,LOW); // Para estabilizar
delayMicroseconds(10);
// Comenzamos las mediciones
// Se envía una señal activando la salida trigger durante 10 microsegundos
digitalWrite(pinTrigger, HIGH); // envío del pulso ultrasónico
delayMicroseconds(10);
tiempoEntrada=pulseIn(pinEcho, HIGH);
distanciaEntrada= int(0.017*tiempoEntrada); // Fórmula para calcular la distancia en cm
Serial.println("El valor de la distancia es ");
Serial.println(distanciaEntrada);
delay(200);
}
//Función para ir hacia adelante
void robotAvance()
{
motor1.run(FORWARD);
motor2.run(FORWARD);
}
//Función para ir hacia atrás
void robotRetroceso()
{
motor1.run(BACKWARD);
motor2.run(BACKWARD);
}
//Función para ir hacia la derecha
void robotDerecha()
{
motor1.run(FORWARD);
motor2.run(RELEASE);
}
//Función para ir hacia la izquierda
void robotIzquierda ()
{
motor1.run(RELEASE);
motor2.run(FORWARD);
}
//Función para detenerse
void robotParar()
{
motor1.run(RELEASE);
motor2.run(RELEASE);
}
Está muy comentada porque luego tengo que explicarla a una audiencia.