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.
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Sie können sie auch über die untenstehenden Links einzeln kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
Schaltplan
Experimentelle Verfahren
Schritt 1: Bauen Sie den Schaltkreis.
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