Einparkhilfe: Abstand
Teil des Abschnitts Projekte der Arduino-Journey von Coddy. Lektion 9 von 24.
Autos haben Parksensoren, die schneller piepen, je näher du beim Rückwärtsfahren an eine Wand herankommst. In diesem Projekt baust du so einen Sensor: einen Abstandssensor, drei Warnleuchten, einen Summer und einen Bildschirm, alles bereits verkabelt. Der erste Schritt ist die Messung.
Wie bei Displays and Sensors sendet ein 10 Mikrosekunden langer Impuls an TRIG ein Ping, und pulseIn(echoPin, HIGH) gibt zurück, wie lange ECHO auf HIGH geblieben ist, in Mikrosekunden. Schall braucht ungefähr 58 Mikrosekunden, um einen Zentimeter hin- und zurückzulegen. Daher erhältst du die Entfernung in cm, indem du diese Zeit durch 58 teilst (das ist dasselbe wie duration * 0.034 / 2). Halte alles in einer Funktion:
long readDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
return duration / 58;
}Miss ungefähr zehnmal pro Sekunde: Der Sensor braucht zwischen den Pings eine kurze Pause, sonst kann ein verspätetes Echo vom letzten Ping für das neue gehalten werden.
Aufgabe
EinfachDer Sensor hat TRIG an Pin 9 und ECHO an Pin 10:
- Schreibe
readDistance(): den Triggerimpuls,pulseIn()und die Zeit geteilt durch 58 - Gib in
loop()die Entfernung alle 100 ms mitSerial.println()aus
Drücke Run, ziehe die Entfernung auf dem Sensor und klicke dann auf Check.
Probier es selbst
// Der Abstandssensor
const int trigPin = 9;
const int echoPin = 10;
// Sende einen Ping und gib den Abstand in cm zurück.
long readDistance() {
}
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
// Gib den Abstand aus und warte dann 100 ms
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Projekte
3Einparkhilfe
Einparkhilfe: AbstandEinparkhilfe: LichterEinparkhilfe: SignaltöneEinparkhilfe: AnzeigeÜbe selbstständig: Arduino-Playground