HC-SR04 Ultralydsensor

Ultralydsensor HC-SR04 er en sensor som kan måle avstand. Den sender ut ultralyd ved 40,000 Hz (40 kHz) og hvis det er en gjenstand eller hindring i veien, vil den sprette tilbake til modulen. Med tanke på reisetiden og lydens hastighet kan mann beregne avstanden.

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).

Tilkobling av HC-SR04 til D1 mini

Å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')
Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *