Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

2.2.8 Ultraschall-Sensormodul

Einführung

Das Ultraschall-Sensormodul verwendet Ultraschall, um Objekte präzise zu erkennen und Entfernungen zu messen. Es sendet Ultraschallwellen aus und wandelt sie in elektronische Signale um.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

../_images/list_2.2.5.png

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Raphael Kit

337

Raphael Kit

Sie können sie auch über die untenstehenden Links einzeln kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Ultraschallmodul

KAUFEN

Schaltplan

../_images/image329.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis.

../_images/image220.png

Schritt 2: Navigieren Sie zum Ordner mit dem Code.

cd ~/raphael-kit/nodejs/

Schritt 3: Führen Sie den Code aus.

sudo node ultrasonic_sensor.js

Nachdem der Code ausgeführt wurde, erkennt das Ultraschall-Sensormodul die Entfernung zwischen dem vorausliegenden Hindernis und dem Modul selbst, und der Entfernungswert wird auf dem Bildschirm angezeigt.

Code

const Gpio = require('pigpio').Gpio;

// The number of microseconds it takes sound to travel 1cm at 20 degrees celcius
const MICROSECDONDS_PER_CM = 1e6/34321;

const trigger = new Gpio(23, {mode: Gpio.OUTPUT});
const echo = new Gpio(24, {mode: Gpio.INPUT, alert: true});

trigger.digitalWrite(0); // Make sure trigger is low

const watchHCSR04 = () => {
  let startTick;

  echo.on('alert', (level, tick) => {
    if (level === 1) {
      startTick = tick;
    } else {
      const endTick = tick;
      const diff = (endTick >> 0) - (startTick >> 0); // Unsigned 32 bit arithmetic
      console.log(diff / 2 / MICROSECDONDS_PER_CM);
    }
  });
};

watchHCSR04();

// Trigger a distance measurement once per second
setInterval(() => {
  trigger.trigger(10, 1); // Set trigger high for 10 microseconds
}, 1000);

Code-Erklärung

Die trigger-Funktion kann verwendet werden, um einen Impuls auf einem GPIO zu erzeugen, und alerts kann verwendet werden, um den Zeitpunkt einer GPIO-Zustandsänderung genau auf einige Mikrosekunden zu bestimmen.

Diese beiden Merkmale können kombiniert werden, um mit einem HC-SR04 Ultraschallsensor die Entfernung zu messen.

setInterval(() => {
  trigger.trigger(10, 1); // Set trigger high for 10 microseconds
}, 1000);

Dient dazu, in regelmäßigen Abständen einen 10us-Ultraschallimpuls auszusenden.

const watchHCSR04 = () => {

  echo.on('alert', (level, tick) => {
      if (level === 1) {
        startTick = tick;
      } else {
        const endTick = tick;
        const diff = (endTick >> 0) - (startTick >> 0); // Unsigned 32 bit arithmetic
        console.log(diff / 2 / MICROSECDONDS_PER_CM);
      }
  });
};

Dies legt einen Alarm fest, der die Zeit zwischen dem Senden des Impulses (level ist 1) und dem Empfangen des Echos (level ist 0) aufzeichnet. Durch Multiplikation des Zeitunterschieds mit der Schallgeschwindigkeit (und Division durch 2) erhalten Sie die Entfernung zum vorausliegenden Hindernis.

Phänomen-Bild

../_images/image221.jpeg