Icke-blockerande Ultrasonic Sensor för Arduino (2 / 3 steg)
Steg 2: programvara
Programvaran som krävs för det här exemplet är fäst. Det sker i form av ett litet bibliotek (HC_SR04.h och HC_SR04.cpp) och en skiss som använder detta bibliotek (Ultrasonic.ino), vars innehåll är följande:
#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);
tag (!. Följetong) fortsätta;
sensor.start();
}
void loop() {
IF(sensor.isFinished()) {
Göra något med spänna...
Serial.Print(sensor.getRange());
Serial.println("cm");
Delay(1000);
sensor.start();
}
Göra andra saker...
}
Vi helt enkelt definiera stiften och de avbrott som vi vill använda för sensor (för stiften angavs i föregående steg, bör ECHO_INT vara 0 oavsett vilken Arduino du använder) och skapa en instans av klassen HC_SR04. Sedan kallar vi begin() under setup() att reda ut avbrotten. Sensor är nu klar att använda. För att få ett intervallvärde kallar vi start() och sedan vänta för jagsFinished() att returnera sant. Vi behöver inte sitta och göra ingenting medan vi väntar på detta som vi skulle annars, vi kan bara kontrollera tillbaka regelbundet samtidigt göra andra saker. I det här fallet har vi inget bättre att göra! Vi kan nu få intervallet till ett objekt genom att anropa getRange(). Då återgår spänna i centimeter av standard men kräver getRange(INCH) får värdet i inches.