Paso 3: El código
La operación detallada del Sensor ultrasónico de distancia se encuentran en el HC_SR04 hoja de datos.
El código utilizado en este robot es muy simple. En el bucle principal (loop()), medir la distancia mediante una llamada a la función getDistance().
Si la distancia entre el robot y el obstáculo (en este caso, mis manos) es demasiado cerca (digamos 10cm), el robot hacia atrás para 300 milisegundos y girar al azar a la izquierda o derecha para otro 200 milisegundos.
Aquí es cómo el 'getDistance()' función de trabajo:
Envía enviando primero baja un flanco ascendente en el pin "Trig" y seguido por alto. Después de 10 micro segundos, reduce la señal "Trig" otra vez. Esto hace que el sensor envía pulsos ultrasónicos. Más tarde supervisa el eco reflejado por los obstáculos. Si el obstáculo está más cercano, toma menos tiempo para recibir los ecos. Por otro lado, si el obstáculo está muy lejos, toma más tiempo para esperar a los ecos. El sensor envía un pulso alto en pin "Eco" y el ancho de pulso es igual al retraso de ida y vuelta de los impulsos de ultrasonidos (en microsegundos).
Puesto que la velocidad del sonido es 340 metros/segundo, podría calcularse la distancia por D = 0,5 * pulse_width * 340 m/s * 1e-6
El programa completo se muestra aquí: