Tilkoblingen av mikrokontrolleren (i dette tilfellet D1 mini) og HC-SR04 ultralydsensor.
For å generere ultralyd må vi sette utløserpinnen (trig) til en høy tilstand i 10 µs. Den vil sende ut en 8-syklus sonisk burst som vil bevege seg med lydhastigheten, og den vil bli mottatt i echo (echo) pinne. Ekko pinnen sender ut tiden i mikrosekunder.
For eksempel, hvis objektet er 20 cm unna sensoren, og lydhastigheten er 340 m/s eller 0.034 cm/µs, må lydbølgen bevege seg rundt 588 mikrosekunder. Men det mann får fra Echo-pinnen vil være det dobbelte av det tallet, fordi lydbølgen må gå fremover og sprette bakover. Så for å få avstanden i cm må vi multiplisere den mottatte reisetidsverdien fra ekko-pinnen med 0,034 og dele den på 2.
For programmeringskoden må vi først definere Trigger-pinnen og Echo-pinnen som er koblet til mikrokontrolleren. I dette prosjektet er Echo pinnen koblet til 4 og Trig pinnen til 5. Definer deretter variabler for avstanden (int) og varighet (lang).

Åpne Arduino IDE appen og skriv ned koden din, eller kopier den nedenfor, Velg ditt eget Arduino-brett (i dette tilfellet Wemos D1 mini), ved å velge Verktøy > Brett > ESP8266 boards/Lolin (Wemos) D1 R2&Mini. Velg riktig COM-porten din (vanligvis vises det bare én eksisterende port), Verktøy > Port > COM.. (Hvis det er mer enn én porter, prøv den én etter én). Last opp koden ved Sketch > Last opp
For å vise måledata kan du bruke Serial Monitor ved å trykke Ctrl + Shift + M (sørg for at baudratehastigheten er 115200)
// ---------------------------------------------------------------- //
// Ultralydsensor HC-SR04
// ---------------------------------------------------------------- //
#define echoPin 4
#define trigPin 5
long varighet;
int avstand;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(115200);
Serial.println("Ultralydsensor HC-SR04 test");
}
void loop() {
// Sensoren utløses av en HØY puls på 10 eller flere mikrosekunder.
// Gi en kort LAV puls på forhånd for å sikre en ren HØY puls
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
varighet = pulseIn(echoPin, HIGH);
avstand = varighet * 0.034 / 2;
Serial.print("avstand: ");
Serial.print(avstand);
Serial.println(" cm");
}
For MicroPython-kode bruker vi micropython-hcsr04-biblioteket av rsc1975 på github. Last ned biblioteket og lagrer det på mikrokontrolleren. Lag deretter en ny fil og skriv følgende kode.
from hcsr04 import HCSR04
sensor = HCSR04(trigger_pin=5, echo_pin=4)
distance = sensor.distance_cm()
print('Avstand:', distance, 'cm')