Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Vertiefen Sie sich in Raspberry Pi, Arduino und ESP32 zusammen mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Probleme nach dem Verkauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.

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

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

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

  • Festliche Promotionen und Giveaways: Nehmen Sie an Verlosungen und Feiertagsaktionen teil.

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

6.1 Messung von Entfernungen mit einem Ultraschallsensor

In dieser Lektion lernen wir, wie man einen Ultraschallsensormodul mit dem Raspberry Pi Pico 2 verwendet, um die Entfernung zu einem Objekt zu messen. Ultraschallsensoren werden häufig in Robotik und Automatisierungssystemen zur Objekterkennung und Entfernungsmessung eingesetzt.

Was Sie benötigen

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

Newton Lab Kit

450+

Newton Lab Kit

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

SN

KOMPONENTE

MENGE

LINK

1

Raspberry Pi Pico 2

1

KAUFEN

2

Micro USB Kabel

1

3

Steckbrett

1

KAUFEN

4

Jumperkabel

Mehrere

KAUFEN

5

Ultraschallmodul

1

KAUFEN

Verständnis des Ultraschallsensors

Der Ultraschallsensor funktioniert, indem er einen kurzen Ultraschallimpuls vom Trig-Pin aussendet und das Echo am Echo-Pin hört. Indem die Zeit gemessen wird, die das Echo zur Rückkehr benötigt, können wir die Entfernung zu einem Objekt unter Verwendung der Schallgeschwindigkeit berechnen.

ultrasonic_prin

  • Triggerimpuls: Ein 10-Mikrosekunden-Hochimpuls am Trig-Pin startet die Messung.

  • Ultraschallburst: Der Sensor sendet einen 8-Zyklen-Ultraschallburst bei 40 kHz aus.

  • Echoempfang: Der Echo-Pin wird hochgeschaltet und bleibt hoch, bis das Echo zurückempfangen wird.

  • Zeitmessung: Durch Messung der Zeit, die der Echo-Pin hoch bleibt, können wir die Entfernung berechnen.

Schaltplan

sch_ultrasonic

Verdrahtungsplan

wiring_ultrasonic

Schreiben des Codes

Wir werden ein Programm schreiben, das den Ultraschallsensor auslöst, die Echozeit misst und die Entfernung zu einem Objekt berechnet. Die Entfernung wird auf dem Seriellen Monitor ausgegeben.

Bemerkung

  • Sie können die Datei 6.1_ultrasonic.ino aus newton-lab-kit/arduino/6.1_ultrasonic öffnen.

  • Oder kopieren Sie diesen Code in Arduino IDE.

  • Wählen Sie das Raspberry Pi Pico 2 Board und den richtigen Port, dann klicken Sie auf „Upload“.

// Define the connection pins
const int trigPin = 17;  // GPIO 17 -> Trig
const int echoPin = 16;  // GPIO 16 -> Echo

void setup() {
  // Initialize serial communication at 115200 baud
  Serial.begin(115200);

  // Initialize the sensor pins
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  long duration;
  float distance;

  // Trigger the sensor by setting Trig HIGH for 10 microseconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Read the Echo pin, returns the duration in microseconds
  duration = pulseIn(echoPin, HIGH);

  // Calculate the distance in centimeters
  distance = duration * 0.034 / 2;

  // Print the distance to the Serial Monitor
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(500); // Wait for half a second before the next measurement
}

Nach dem Hochladen des Codes sollte der Serielle Monitor die Entfernungsmessungen in Zentimetern anzeigen.

Entfernung: 25.3 cm
Entfernung: 24.8 cm
Entfernung: 24.5 cm

Platzieren Sie ein Objekt in unterschiedlichen Entfernungen vom Sensor. Bewegen Sie das Objekt näher und weiter, um Änderungen in den Entfernungsmessungen zu beobachten.

Verständnis des Codes

  1. Definition der Anschlusspins:

    • trigPin: Sendet den Ultraschallimpuls.

    • echoPin: Empfängt das Echo des Ultraschallimpulses.

    const int trigPin = 17;  // GPIO 17 -> Trig
    const int echoPin = 16;  // GPIO 16 -> Echo
    
  2. Setup-Funktion:

    • Serielle Kommunikation: Ermöglicht die Kommunikation zwischen dem Pico und dem Computer für Debugging.

    • Pinmodi: Setzt den Trig-Pin als OUTPUT und den Echo-Pin als INPUT.

    void setup() {
      // Initialize serial communication at 115200 baud
      Serial.begin(115200);
    
      // Initialize the sensor pins
      pinMode(trigPin, OUTPUT);
      pinMode(echoPin, INPUT);
    }
    
  3. Loop-Funktion:

    • Sensor auslösen: Setzt den Trig-Pin für 10 Mikrosekunden auf HIGH, um den Ultraschallimpuls zu senden. Setzt den Trig-Pin auf LOW, um den Impuls zu beenden.

      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
      
    • Echo lesen: Misst die Dauer (in Mikrosekunden), die der Echo-Pin auf HIGH bleibt, was die Zeit für die Rückkehr des Echos anzeigt.

      duration = pulseIn(echoPin, HIGH);
      
    • Entfernung berechnen: Wandelt die Zeit in Entfernung (cm/Mikrosekunde) um. Teilt durch 2, um den Hin- und Rückweg des Impulses zu berücksichtigen.

      distance = duration * 0.034 / 2;
      
    • Serienausgabe: Gibt die berechnete Entfernung auf dem Seriellen Monitor zur Echtzeitüberwachung aus.

      Serial.print("Distance: ");
      Serial.print(distance);
      Serial.println(" cm");
      
    • Verzögerung: Fügt eine Verzögerung von 500 Millisekunden hinzu, um das Überfluten des Seriellen Monitors zu verhindern und Zeit zwischen den Messungen zu lassen.

Fehlersuche

  • Keine Anzeigen:

    • Stellen Sie sicher, dass die Trig- und Echo-Pins korrekt verbunden sind.

    • Überprüfen Sie, ob der Sensor mit Strom versorgt wird (VCC- und GND-Anschlüsse).

    • Stellen Sie sicher, dass der Serielle Monitor auf die richtige Baudrate eingestellt ist.

  • Falsche Messungen:

    • Stellen Sie sicher, dass die Berechnungen im Code korrekt sind.

    • Überprüfen Sie, ob die Schallgeschwindigkeitskonstante (0.034) für Ihre Umgebung geeignet ist (Feuchtigkeit und Temperatur können die Schallgeschwindigkeit beeinflussen).

  • Sensorinterferenzen:

    • Stellen Sie sicher, dass keine Hindernisse oder reflektierende Oberflächen vorhanden sind, die die Ultraschallimpulse stören könnten.

    • Platzieren Sie den Sensor nicht in der Nähe anderer Ultraschallgeräte, die falsche Messungen verursachen könnten.

Weiterführende Untersuchungen

  • Integration mit LEDs oder Displays:

    • Verwenden Sie mehrere LEDs, um einen visuellen Entfernungsindikator zu erstellen.

    • Integrieren Sie ein 7-Segment- oder LCD-Display, um die Entfernung numerisch anzuzeigen.

  • Erstellen eines Näherungsalarm-Systems:

    Legen Sie Schwellenwerte fest, um Alarme auszulösen (z. B. Soundalarme, wenn Objekte zu nah kommen).

  • Bau eines einfachen hindernisvermeidenden Roboters:

    Verwenden Sie den Ultraschallsensor, um Hindernisse zu erkennen und sie zu umfahren.

Fazit

In dieser Lektion haben Sie gelernt, wie man einen Ultraschallsensormodul mit dem Raspberry Pi Pico verwendet, um die Entfernung zu einem Objekt zu messen. Indem Sie Ultraschallimpulse auslösen und die Echozeit messen, können Sie die Entfernung naher Objekte genau bestimmen. Dieses Projekt dient als Grundlage für komplexere Anwendungen in Robotik, Automatisierung und interaktiven Systemen.