Stap 2: Software
De benodigde software voor dit voorbeeld is gekoppeld. Het neemt de vorm van een kleine bibliotheek (HC_SR04.h en HC_SR04.cpp) en een schets die gebruikmaakt van deze bibliotheek (Ultrasonic.ino), waarvan de inhoud als volgt is:
#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... }
Gewoon definiëren we de pinnen en de interrupt we willen gebruiken voor onze sensor (voor de pinnen in de vorige stap hebt opgegeven, ECHO_INT moet 0 ongeacht welke Arduino u gebruikt) en maakt een instantie van de klasse HC_SR04. Dan bellen we begin() tijdens Setup de interrupts uitzoeken. Onze sensor is nu klaar voor gebruik. Om de waarde van een bereik te krijgen wij start() en vervolgens wachten voor iksFinished() om terug te keren waar. We hoeven niet te zitten en niets doen terwijl we voor dit wachten als we anders zouden, we kunnen gewoon comprobar periodiek terwijl andere dingen doen. In dit geval hebben we niets beters te doen! Nu kunnen we het bereik naar een object door te bellen naar getRange(). Dit geeft het bereik in centimeters door standaard maar bellen getRange(INCH) krijgt de waarde in inches.