Digitales Lineal

Erstellt von Frank Lüthjohann
Benötigtes Material
  • Arduino Uno
  • USB-Kabel für den Arduino
  • I2C Display
  • Ultraschallsensor HC-SR04
  • Kleines Breadboard
  • 6x MM-Kabel
  • 4x WM Kabel
Benötigte Software
  • Bibliothek LiquidCrystal I2C von Marco Schwartz oder Frank de Brabander
Als PDF
PDF-Download
Arbeitsblatt

Beschreibung

Mit diesem digitalen Lineal können leicht Entfernungen mithilfe eines Ultraschallsensors bestimmt werden. Die Entfernungen werden in cm auf dem Display angezeigt. Diese Messstation eignet sich hervorragend um von diesem Aufbau ausgehend, spannende Physikexperimente z.B. zum Thema Mechanik durchzuführen. Die Messstation kommt ohne Bibliothek aus. Der Aufbau ist auch gut geeignet, um exemplarisch die Arbeitsweise von Sensoren und den Aufbau eines Skriptes exemplarisch zu erklären. Anknüpfungspunkte gibt es auch zum Thema Geschwindigkeiten. Im Skript wird zu Bestimmung der Werte für die Entfernung auf eine konstante der Schallgeschwindigkeit zurückgegriffen. In der Kommentierung werden die mathematischen und physikalischen Zusammenhänge angedeutet.

Verkabelung

I2C DisplayUltraschall SensorArduino
GNDGND
VCC5V
SDAA4
SCLA5
GNGGND
VCC5V
Trig9
Echo10
Schaltplan

Schaltplan

Code

#include <LiquidCrystal_I2C.h>
#include <Wire.h>

// Display Anschluss: SCL in A5, SDA in A4
LiquidCrystal_I2C lcd(0x27, 16, 2);

int TRIG_PIN = 9;  // Anschluss trig = Trigger, Sender ("Lautsprecher") in Pin 9
int ECHO_PIN = 10;  // Anschluss echo = Empfänger ("Mikrofon") in Pin 10

void setup() {
  lcd.init();
  lcd.backlight();

  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);

  Serial.begin(9600);
}

void loop() {
  // Berechnung der Entfernung
  digitalWrite(TRIG_PIN, HIGH);
  delay(10);
  digitalWrite(TRIG_PIN, LOW);

  // Der Variable "zeit" wird der Wert zugewiesen, wie lange das Signal bis zum
  // Mikrofon braucht.Einheit ist in Mikrosekunden.
  unsigned long zeit = pulseIn(ECHO_PIN, HIGH);

  // Der Variable "entfernung" wird der Wert zu gewiesen, der sich aus der
  // Berechnung der Zeit des Signals für einen Weg (zeit/2) mit einer Konstanten
  // zur Schallgeschwindigkeit (343 m/s) ergibt. Man erhält so einen Wert in der
  // Einheit cm.
  unsigned long entfernung = (zeit / 2) * 0.03432;

  // Entfernung auf Display und Serial Monitor anzeigen
  if (entfernung >= 50 || entfernung <= 0) {  // Wenn die Entfernung nicht
                                              // zwischen 0 und 50cm liegt...
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Kein Messwert");  //... schreibe "Kein Messwert" auf dem Display

    Serial.println("Kein Messwert");
  } else {  // anderenfalls... (Der Messwert liegt zwischen 0 und 50 cm)...
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Entfernung:");
    lcd.setCursor(0, 1);
    lcd.print(entfernung);  //...der Messwert in cm wird auf dem Display
                            // angezeigt
    lcd.print("cm");

    Serial.print(entfernung);
    Serial.println(" cm");
  }

  // Warte eine Sekunde
  delay(1000);
}

Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )