Angewandte Informatik: Entfernungsmessung mit Ultraschall: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „{|class="wikitable" |- | '''Autor:''' || Prof. Dr.-Ing. Schneider |- | '''Modul''' || Business and Systems Engineering, Angewandte Mathematik und Informatik, Übung, Sommersemester |- | '''Modulbezeichnung:''' || BSE-M-2-1.09 |} == Inhalt == * [https://www.mathworks.com/help/matlab/arduinoio-get-started-with-matlab-support-package-for-arduino-hardware.html?s_tid=CRUX_lftnav Erste Schritte mit dem MATLAB-Supportpaket für A…“
 
Keine Bearbeitungszusammenfassung
Zeile 8: Zeile 8:
|}
|}
== Inhalt ==
== Inhalt ==
* [https://www.mathworks.com/help/matlab/arduinoio-get-started-with-matlab-support-package-for-arduino-hardware.html?s_tid=CRUX_lftnav Erste Schritte mit dem MATLAB-Supportpaket für Arduino-Hardware]
In dieser Lektion wird der [[Ultraschallsensor_HC-SR04|Ultraschallsensor HC-SR04]] mit MATLAB<sup>®</sup> eingelesen und seine Messwerte analysiert. Das Messrauschen wird anschließend gefiltert.
* [https://www.mathworks.com/help/matlab/supportpkg/using-arduino-explorer.html Arduino Explorer App]
* [https://www.mathworks.com/help/matlab/supportpkg/getting-started-with-matlab-support-package-for-arduino-hardware.html Erste Schritte mit MATLAB]
* [https://de.mathworks.com/discovery/arduino-programming-matlab-simulink.html Arduino Programmierung mit MATLAB<sup>®</sup>]
* [https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html Ultraschallsensor einlesen]
= Aufgabe 1.1: Arduino Explorer =
Testen Sie zuerst die Verbindung zum Arduino mit dem Arduino Explorer. Den passenden port finden Sie über den Windows '''Geräte-Manager'''.<br>
<code>>> arduinoExplorer</code>
# Schließen Sie ein Potentiometer an den analogen Eingang <code>A0</code> an.
# Visualisieren Sie die Spannung an <code>A0</code> mit dem <code>arduinoExplorer</code>.
# Stecken Sie eine Diode in D13 gegen GND.
# Schalten Sie die Diode via <code>arduinoExplorer</code> an uns aus.


= Aufgabe 1.2: Poti mit MATLAB<sup>®</sup> lesen =
== Vorbereitung ==
# Schließen Sie ein Potentiometer an den analogen Eingang <code>A0</code> an.
Erlernen Sie die Funktion des [[Ultraschallsensor_HC-SR04|Ultraschallsensors]] anhand dieses Fachartikeln und der verlinkten Primärliteratur.
# Visualisieren Sie die Spannung an <code>A0</code> mit einem MATLAB<sup>®</sup>-Skript für 100 Werte über der Zeit in s.
=== Beispiel ==
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
[https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html Ultraschallsensor einlesen]
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">close all; clc; % Initialisierung


if ~isobject(hArduino)
= Aufgabe 4: Entfernungsmessung mit Ultraschall =
  hArduino = arduino('COM8','Uno') % Verbindung aufbauen
end
tic % Timer starten
for i=1:100
    Spannung(i)= readVoltage(hArduino,'A0');
    Zeit(i)    = toc;
    pause(0.1) % in s
end
 
plot(Zeit,Spannung,'r.-')
xlabel('Zeit in s')
ylabel('Spannung in V')
</source>
|}
 
= Aufgabe 1.3: LED mit MATLAB<sup>®</sup> schalten =
# Stecken Sie eine Diode in D13 gegen GND.
# Schalten Sie die Diode mit einem MATLAB<sup>®</sup>-Skript zyklisch an und aus.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">close all; clc; % Initialisierung
if exist('hArduino')==0
  hArduino = arduino('COM8','Uno'); % Arduino Objekt erzeugen
  disp('Neues Arduino Objekt erzeugt.')
end
nMesswerte = 100;
%% Messschleife
for i=1:nMesswerte
      writeDigitalPin(hArduino, 'D13', 0);
      pause(0.5);
      writeDigitalPin(hArduino, 'D13', 1);
      pause(0.5);
end
clear hArduino
</source>
|}
= Aufgabe 1.4: LED mit MATLAB<sup>®</sup> dimmen =
[[Datei:ArduinoGettingStartedExample 02.png|thumb|rigth|300px|Abb. 1: LED und Potentiometer mit dem Arduino verbinden]]
# Stecken Sie eine Diode in D11 gegen GND.
# Dimmen Sie die Diode mit einem MATLAB<sup>®</sup>-Skript mittels Potentiometer (vgl. Aufgabe 2).
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">close all; clc; % Initialisierung
if exist('hArduino')==0
  hArduino = arduino('COM8','Uno'); % Arduino Objekt erzeugen
  disp('Neues Arduino Objekt erzeugt.')
end
 
nMesswerte = 100;
%% Messschleife
for i=1:nMesswerte
    Spannung = readVoltage(hArduino, 'A0')      % Spannung messen
    writePWMVoltage(hArduino, 'D11', Spannung);  % LED via PWM dimmen
    pause(0.1);
end
clear hArduino
</source>
|}
= Aufgabe 1.5: Taster und Summer =
[[Datei:ArduinoGettingStartedExample 03.png|thumb|rigth|300px|Abb. 2: Verkabelungsplan für taster und Summer]]
# Lesen Sie den Taster via D12 ein (vgl. Abb 2).
# Steuern Sie den Summer bei Tasterdruck via D11 an.
# Eine rote LED signalisiert die aktive Programmlaufzeit.
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">close all; clc; % Initialisierung
if exist('hArduino')==0
    hArduino = arduino('COM8','Uno'); % Arduino Objekt erzeugen
    disp('Neues Arduino Objekt erzeugt.')
end
 
configurePin(hArduino, 'D12', 'pullup');
nMesswerte = 100;
%% Messschleife
for i=1:nMesswerte
    writeDigitalPin(hArduino, 'D13', 1); % Achtung - System läuft
    speaker_status = readDigitalPin(hArduino, 'D12');
    if speaker_status == 0
        playTone(hArduino, 'D11', 1200, 1);
    else
        % Change duration to zero to mute the speaker
        playTone(hArduino, 'D11', 1200, 0);
    end
end
writeDigitalPin(hArduino, 'D13', 0);
clear hArduino
</source>
|}
= Aufgabe 1.6: Entfernungsmessung mit Ultraschall =
  <!--[[Datei:Gift-9344 128.gif|50px]]'''Hinweis: Mit der Lösung dieser Aufgabe und Sicherung in SVN können Sie Bonuspunkte erwerben.'''-->
  <!--[[Datei:Gift-9344 128.gif|50px]]'''Hinweis: Mit der Lösung dieser Aufgabe und Sicherung in SVN können Sie Bonuspunkte erwerben.'''-->
# Lesen Sie die Messwerte des Ultraschallsensor ein [https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html?searchHighlight=arduino+matlab+ultrasonic&s_tid=srchtitle_support_results_2_arduino+matlab+ultrasonic].
# Lesen Sie die Messwerte des Ultraschallsensor ein [https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html?searchHighlight=arduino+matlab+ultrasonic&s_tid=srchtitle_support_results_2_arduino+matlab+ultrasonic].

Version vom 20. April 2026, 07:56 Uhr

Autor: Prof. Dr.-Ing. Schneider
Modul Business and Systems Engineering, Angewandte Mathematik und Informatik, Übung, Sommersemester
Modulbezeichnung: BSE-M-2-1.09

Inhalt

In dieser Lektion wird der Ultraschallsensor HC-SR04 mit MATLAB® eingelesen und seine Messwerte analysiert. Das Messrauschen wird anschließend gefiltert.

Vorbereitung

Erlernen Sie die Funktion des Ultraschallsensors anhand dieses Fachartikeln und der verlinkten Primärliteratur.

= Beispiel

Ultraschallsensor einlesen

Aufgabe 4: Entfernungsmessung mit Ultraschall

  1. Lesen Sie die Messwerte des Ultraschallsensor ein [1].
  2. Eine rote LED signalisiert die aktive Programmlaufzeit.
  3. Zeigen Sie die Distanzwerte in cm über der Zeit an.
  4. Sichern Sie Ihre Messwerte in der Datei Ultraschall.mat.
  5. Nutzen Sie ein Tiefpassfilter, um das Messwertrauschen zu entstören.
  6. Ein Ampelmodul zeigt die Entfernung an.
Entfernung Farbe
x > 20 cm grün
10 cm < x < 20 cm gelb
x < 10 cm rot rot

Arbeitsergebnis: messeUltraschallEntfernung.m


→ zurück zum Hauptartikel: BSE Angewandte Informatik - SoSe26