Ultraschallsensor

Der Ultraschallsensor ermöglicht uns, Distanzen bis zu ca. 5 Metern zu messen. Dies kann sehr vorteilhaft sein, wenn man zum Beispiel nicht möchte, dass der Roboter in eine Wand fährt. Du kennst den Ultraschallsensor vor allem von den Rückfahrwarnsystemen der Autos. 

 

In diesem Posten wirst du lernen, wie man einen solchen Ultraschallsensor programmiert. 

 

 

Ziel des Postens

Du kannst mit einem Ultraschallsensor ein Distanzmesser bauen. 

 

 

Material

  • Ardurobot (Arduino, Breadboard, DD1-1)
  • Ultraschallsensor
  • Verbindungskabel

Schaltung

Ultraschallsensor

Der Ultraschallsensor ist in seinen Grundzügen eigentlich ganz einfach zu erklären. Er ruft "Hallo" und wartet, bis das Echo zurückkommt. Diese Zeitdauer wird vom Arduino gemessen und in eine Distanz umgerechnet. 

Das ist eigentlich das genau gleiche Prinzip, wie wenn du die Zeitspanne zwischen Blitz und Donner bei einem Gewitter misst und daraus schliessen kannst, wie weit das Gewitter noch entfernt ist. Nur halt alles ein bisschen schneller und kleiner...

 

Wenn du genauer wissen möchtest, wie der Ultraschallsensor funktioniert, findest du sehr viele gute Informationen im Internet (z.B. hier: Link). 

 

Long

Bisher kennst du den Variabel-Typ "int". Die Grösse der Zahlen, welche als "int" angegeben werden können, ist jedoch beschränkt. Möchtest du sehr grosse Zahlen in eine Variable speichern, dann musst du dafür den Variablen-Typ "long" nehmen. Dieser ist etwas grösser, braucht dafür aber auch etwas mehr Speicherplatz auf deinem Arduino. 

(Weitere Infos findest du hier: Link)

 

pulseIn

Du kannst mit deinem Arduino sehr kurze Zeitspannen messen. Dafür brauchst du den Befehl "pulseIn". Wie genau der Befehl funktioniert ist etwas kompliziert zu erklären. Wenn es dich aber interessiert, findest du hier weitere Infos: Link

 

 

Aufbau 

 

 

 

Programmieren

Sketch

Link zum Sketch 

 

 

Vertiefungsaufgaben

Vertiefungsaufgabe 1:

Verändere den Sketch so, dass die LED erst leuchtet, wenn die Distanz kleiner als 20cm ist. 

 

Vertiefungsaufgabe 2:

Verändere den Sketch so, dass die LED nur leuchtet, wenn die Distanz grösser als 20 cm ist. (Challenge: es gibt zwei Varianten, dies zu tun. Findest du beide?)

 

Vertiefungsaufgabe 3: 

Schreibe einen Sketch, so dass zwei LEDs abwechslungsweise blinken, wenn die Distanz kleiner als 20 cm wird. (Tipp: die LEDs sollten ziemlich rasch blinken...)

 

(Vertiefungsaufgabe 4:)

Wenn du es knifflig magst: Verändere das Sketch aus Vertiefungsaufgabe 1 so, dass die Distanz nur genau dann gemessen wird, wenn du einen Taster drückst. (Tipp: Du brauchst eine If-Abfrage in einer If-Abfrage)

 

 

Rückblick

Besprecht zu zweit oder zu dritt: 

  • Wie funktioniert der Ultraschall-Sensor?
  • Was bedeutet "pulseIn"?
  • Was ist "long" für ein Datentyp?

 

Erweiterungsmöglichkeiten

Einparksystem

Viele moderne Autos haben heute eine Einpark-Hilfe eingebaut. Wenn sie rückwärts fahren und zu nah an einem Objekt sind, dann beginnt ein Warnsignal dies zu signalisieren. 

 

Wir können etwas ähnliches machen. Z.B.: Je kleiner die Distanz wird, desto schneller blinkt eine Warn-LED. Oder du könntest z.B. ein Ampelsystem machen (wenn die Distanz gross ist, dann leuchtet eine grüne LED, wenn sie mittelgross ist eine gelbe und wenn sie zu kurz ist eine rote LED).