Paso 2: Software
Se adjunta el software necesario para este ejemplo. Toma la forma de una pequeña biblioteca (HC_SR04.h y HC_SR04.cpp) y un dibujo que utiliza esta biblioteca (Ultrasonic.ino), cuyo contenido es el siguiente:
#include "HC_SR04.h" #define TRIG_PIN 2 #define ECHO_PIN 3 #define ECHO_INT 0 HC_SR04 sensor(TRIG_PIN, ECHO_PIN, ECHO_INT); void setup(){ sensor.begin(); Serial.begin(9600); while(!Serial) continue; sensor.start(); } void loop(){ if(sensor.isFinished()){ // Do something with the range... Serial.print(sensor.getRange()); Serial.println("cm"); delay(1000); sensor.start(); } // Do other things... }
Simplemente definimos los pines y la interrupción que queremos utilizar para nuestro sensor (para los pasadores especificados en el paso anterior, ECHO_INT debe ser 0 independientemente de que Arduino USA) y crear una instancia de la clase HC_SR04. Entonces llamamos begin() durante setup() para resolver las interrupciones. Nuestro sensor está ahora listo para usar. Para obtener un valor de gama pedimos start() y entonces espere mesFinished() devuelva true. No debe sentarse y no hacer nada mientras que estamos esperando esto y como lo haríamos lo contrario, podemos simplemente comprobar volver periódicamente y hacer otras cosas. En este caso, no tenemos nada mejor que hacer! Ahora podemos obtener el rango a un objeto llamando al getRange(). Devolverá la gama en centímetros por defecto pero llamando a getRange(INCH) obtendrá el valor en pulgadas.