ARD VIB 01 - Piezo Vibrationssensor
Autor: | Niklas Reeker |
Studiengang: | Business and Systems Engineering |
Modul: | BSE-M-2-1.03, Hausarbeit in Angewandte Informatik |
Betreuender Professor: | Prof. Dr.-Ing. Schneider |
Semester: | Sommersemester 2024 |
Abgabetermin: | 28.07.2024 |
Einführung
Der Piezo-Vibrationssensor ARD_VIB_01 wird zur Erfassung und Analyse von Vibrationen genutzt. Diese Vibrationen erzeugen durch den piezoelektrischen Effekt ein Spannungssignal, das proportional zur Stärke der Vibrationen ist. Solche Sensoren finden Anwendung in vielen Bereichen, von der Maschinenüberwachung bis zur Erdbebenforschung. [1]
Dieser Artikel behandelt die technischen Spezifikationen, die Einrichtung, die Durchführung von Messungen sowie die Analyse der Ergebnisse des ARD_VIB_01. Ein besonderer Fokus liegt dabei auf der Integration mit Arduino und Simulink, um präzise und zuverlässige Daten zu erhalten. [1] [2]
Aufgabenstellung
Messen Sie mit dem Piezo Vibrationssensor ARD VIB 01 die Stärke der auf den Sensor einwirkenden Vibrationen.
Anforderungen | |||||||||||||||||||||||||||
|
- Thema/Fragestellung: Bestimmung der Vibrationsintensität mittels ARD VIB 01, Arduino und Simulink
- Hypothese: Die Messung von Vibrationen mittels des ARD_VIB_01 Sensors erfolgt zuverlässig und fehlerfrei
- Einordnung in den Lehrplan: Die Anwendung des ARD_VIB_01 Sensors ist im Bereich der Messtechnik und Signalverarbeitung in der Informatik von Bedeutung. Sie ermöglicht praktische Erfahrungen in der Implementierung von Vibrationssensorik, die in Bereichen wie Maschinenüberwachung und Sicherheitsprüfungen weit verbreitet ist. Anhand dieses Praxisbeispiels werden in der Lernveranstaltung "Angewandte Informatik" folgende Lernziele vermittelt:
- mit der Versionskontrolle SVN nachhaltig Quelltext (Simulink) entsprechend der Programmierrichtlinien schreiben und sichern.
- die Mikrocontrollerplattform Arduino modellbasiert mit Simulink programmieren, so dass Sensoren eingelesen und Aktoren angesteuert werden können. [2]
Des Weiteren wird ein tiefes Verständnis für die Sensortechnologie und ein Aufbau von einer Schaltung mit dieser gelehrt.
Projektbeschreibung
Ein Piezo-Vibrationssensor besteht aus einem piezoelektrischen Element, das mechanische Vibrationen in elektrische Signale umwandelt. Diese Signale können zur Überwachung von Maschinen, zur Strukturüberwachung oder zur Erkennung von Erdbeben verwendet werden. Der ARD_VIB_01 Sensor nutzt diese Technologie, um eine präzise und wartungsfreie Vibrationsüberwachung zu ermöglichen. [1]
Im Folgenden ist eine Liste mit den zum Aufbau der Schaltung benötigten Komponenten dargestellt:
# | Anzahl | Material |
---|---|---|
1 | 1 | Arduino Uno R3 |
2 | 1 | ARD_VIB_01 Piezo-Vibrationssensor |
3 | 1 | LCD Modul 16x02 I2C |
4 | 1 | PC mit MATLAB/Simulink R2023b |
5 | 1 | Steckbrett |
6 | 5 | Jumper Kabel, männlich/männlich, 20 cm |
Beschreibung Funktionsweise der verwendeten Hard- und Software
In diesem Abschnitt werden die in Tabelle 2 aufgelisteten Hard- und Softwarekomponenten näher erläutert.
Arduino Uno R3
Der Arduino Uno R3 ist ein Mikrocontroller-Board, das auf dem ATmega328P basiert. Es verfügt über 14 digitale Ein-/Ausgangspins, 6 analoge Eingänge, einen 16 MHz Quarzoszillator, eine USB-Schnittstelle, eine Strombuchse, eine ICSP-Stiftleiste und einen Reset-Button. Der Arduino wird über die Arduino IDE oder Matlab Simulink in Verbindung mit dem Arduino Hardware Support Package programmiert und ist in der Lage, verschiedene Sensoren und Module anzusteuern und Daten zu verarbeiten. [4] [5]
ARD_VIB_01 Piezo-Vibrationssensor
Der ARD_VIB_01 ist ein Piezo-Vibrationssensor, der mechanische Vibrationen in elektrische Signale umwandelt. Der Sensor besteht aus einem piezoelektrischen Material, das bei mechanischer Belastung elektrische Spannung erzeugt. Diese Spannung kann vom Arduino erfasst und zur Analyse von Vibrationsmustern verwendet werden. Der Sensor eignet sich für Anwendungen wie die Überwachung von Maschinenzuständen oder die Erdbebendetektion. [1]
LCD Modul 16x02 I2C
Das LCD Modul 16x02 I2C ist ein Display-Modul mit 16 Spalten und 2 Zeilen. Es verwendet die I2C-Schnittstelle, die nur zwei Datenleitungen benötigt, wodurch die Anzahl der benötigten Pins am Arduino reduziert wird. Das Modul ermöglicht die Darstellung von Textinformationen, wie z.B. Benutzername und RFID-Tag-ID. Durch die Integration mit dem Arduino lassen sich die auf dem LCD angezeigten Informationen einfach programmieren und anpassen. [7]
Simulink R2023b Simulink R2023b ist eine grafische Programmierumgebung zur Modellierung, Simulation und Analyse dynamischer Systeme. In diesem Projekt wird Simulink verwendet, um die vom Arduino empfangenen RFID-Daten zu visualisieren und zu verarbeiten. Mit Simulink lassen sich verschiedene Algorithmen zur Datenverarbeitung implementieren und Simulationen durchführen, um das Verhalten des Systems zu analysieren und zu optimieren. [4]
Steckbrett
Ein Steckbrett (Breadboard) ist ein wiederverwendbares Prototyping-Tool, das es ermöglicht, elektronische Schaltungen ohne Löten aufzubauen. Es besteht aus einer Vielzahl von Löchern, in die Komponenten und Verbindungsdrähte gesteckt werden können, um elektrische Verbindungen herzustellen. Das Steckbrett erleichtert das Experimentieren mit verschiedenen Schaltungen und das schnelle Anpassen von Verbindungen, ohne dass dauerhafte Änderungen vorgenommen werden müssen. [8]
Technische Daten
Nachfolgend sind die Technischen Daten des Primärsensors aufgetragen:
Modell | Piezoelektronischer keramischer Chip |
Messbereich | 0,1 mm/s bis xx mm/s |
Messwerte | Analog |
Betriebsspannung | Keine |
Größe | 36 x 20 x 14 mm |
Betriebstemperatur | -10 bis 70°C |
Pinbelegung
Im Folgenden wird die Pinbelegung des ARD_VIB_01 Piezo-Vibrationssensors und dessen Verbindung zum Arduino Uno R3 dargestellt. Diese Tabelle zeigt, welche Pins des Vibrationssensors mit welchen Pins des Arduino verbunden werden müssen, um eine korrekte Funktion zu gewährleisten.
Pin | Belegung | Signal |
---|---|---|
1 | GND | GND |
2 | - | NC |
3 | A0 | Analog Pin A0 |
Diese Belegung stellt sicher, dass der Vibrationssensor korrekt mit dem Arduino verbunden ist, sodass die Kommunikation und Datenerfassung zwischen den beiden Geräten reibungslos funktioniert. |}
Funktionsweise Primärsensor und Messschaltung
In diesem Kapitel werden der Primärsensor und die Messschaltung beschrieben. Dabei wird unter anderem auf den Aufbau und die Funktionsweise des Sensors eingegangen.
Primärsensor: ARD_VIB_01 Piezo-Vibrationssensor
Der ARD_VIB_01 Piezo-Vibrationssensor besteht aus einem piezoelektrischen Material, typischerweise Quarz oder eine polykristalline Keramik, die bei mechanischer Verformung elektrische Ladung erzeugt. Abbildung 5 zeigt die Struktur des Sensors im Ruhezustand. Die roten und schwarzen Kreise repräsentieren die positiven und negativen Ionen, die in einem Gleichgewichtszustand angeordnet sind.
Wenn der Sensor Vibrationen oder mechanische Belastungen ausgesetzt ist (siehe Abbildung 6), verschieben sich die Ionen, wodurch eine elektrische Spannung entsteht. Diese Spannung ist proportional zur Stärke und Frequenz der Vibrationen. Der Sensor erfasst diese Spannung und wandelt sie in ein analoges Signal um, das vom Arduino zur weiteren Verarbeitung gelesen werden kann. [12] [13]
Messschaltung
Die Messschaltung umfasst die Kontakte des ARD_VIB_01, sowie die Bauteile auf der Adapterplatine welche direkt mit dem Arduino verbunden sind. [13]
-
Abb. 7: Piezoelektrisches Material bei Verformung [13]
Versuchsaufbau und Durchführung
In diesem Kapitel wird der Versuchsaufbau , die Implementierung in Simulink und die Versuchsbeobachtung beschrieben. Relevante Themen wie Messunsicherheit, Filterung und Referenzenwerte werden ebenfalls behandelt.
Versuchsaufbau
Der Versuchsaufbau zeigt ein Arduino Uno, ein LCD-Display, einen ARD VIB 01 (Piezo Vibrationssensor) und einen Buzzer, die miteinander verbunden sind.
Verkabelung
1.LCD-Display:
- VCC und GND des Displays sind mit 5V und GND des Arduino verbunden.
- SDA und SCL des Displays sind mit den entsprechenden Pins am Arduino verbunden (A4 und A5 für I2C-Kommunikation)(aus Datenblatt entnommen).
2.ARD_VIB_01 Piezo-Vibrationssensor:
- GND des Sensors ist mit GND des Arduino verbunden.
- Der Ausgangspin des Sensors (A0) ist mit einem analogen Pin des Arduino (A0) verbunden.
3.Buzzer:
- Der positive Anschluss des Buzzers ist mit einem digitalen Pin des Arduino (D13) verbunden.
- Der negative Anschluss des Buzzers ist mit GND verbunden.
Funktionsweise
1. Vibrationsmessung: Der ARD_VIB_01 Piezo-Vibrationssensor misst die Vibrationen und gibt eine entsprechende Spannung aus, die am analogen Pin des Arduino eingelesen wird.
2. Datenverarbeitung mit Simulink: Die eingelesenen Spannungswerte werden an Simulink übergeben, wo sie in Schwingungsstärken umgewandelt werden.
3. Anzeige auf dem LCD: Die berechneten Schwingungsstärken werden über den Arduino an das LCD-Display gesendet und angezeigt.
4. Buzzer: Wenn die Vibrationswerte über einen bestimmten Zeitraum einen Schwellenwert überschreiten, wird der Buzzer aktiviert, um einen Ton zu erzeugen.
Implementierung in Simulink
In Abbildung 10 ist das Simulink-Modell dargestellt. Der Prozess beginnt mit dem Einlesen des analogen Eingangs A0. Das empfangene Digitalwort wird daraufhin umgewandelt und gefiltert. Das gefilterte Signal wird anschließend in einem Diagramm dargestellt. Anschließend wird der Mittelwert des Signals über fünf Messwerte errechnet.
Umwandlung des Digitalwortes in V
Im Simulink-Modell wird das vom Vibrationssensor gelesene Digitalwort in Volt (V) umgewandelt. Der Sensorwert (ein 10-Bit-Digitalwert von 0 bis 1023 mit einer Referenzspannung von 5V) wird durch den Analog-Digital-Wandler (ADC) des Arduino erfasst. Um diesen Wert in Volt umzurechnen, wird der folgende Schritt mit einem Gain durchgeführt:
Dieser umgerechnete Spannungswert wird dann gefiltert und zur weiteren Verarbeitung im Modell verwendet.
Filterung des Signals
Im Simulink-Modell wird ein Medianfilter verwendet, um die Spannungssignale des Vibrationssensors zu glätten. Der Filter hat eine Größe von 30 Werten. Dies bedeutet, dass der Median der letzten 30 gemessenen Werte berechnet wird, um Ausreißer zu minimieren und ein stabileres Signal zu erzeugen. Dieses gefilterte Signal wird dann für die weitere Verarbeitung und zur Steuerung des Buzzers verwendet. Es werden 30 Werte gefiltert um auch bei niedrigen Frequenzen ein konstantes Signal zu erhalten.
Kalibrierung der Spannungswerte
Eine Umrechnung von Spannungs- in Vibrationswerte konnte nicht erfolgen, da es keine Datenblätter gibt, die eine solche Umrechnung ermöglichen. Zudem reagiert der Sensor eher auf härtere Schläge als auf Bewegungen und Frequenzen. Selbst mit einem kleinen Subwoofer war es nicht möglich, die Werte zum Ausschlagen zu bringen, selbst bei verschiedenen Frequenzen und voller Lautstärke (vgl. Abb. 11). Daher konnte die Messkurve auch nicht händisch erstellt werden. In nachfolgenden werden daher immer die Spannungswerte betrachtet. Eine beispielhafte Umrechnung befindet sich in dem Modell gibt die werte allerdings nur weiter.
Summeransteuerung bei starker Vibration
Bei einer starken Vibration wird ein Buzzer aktiviert. Das Modell ermöglicht somit eine Überwachung und eine akustische Benachrichtigung basierend auf den gemessenen Werten. Steigt der Mittelwert auf über 2V so wird der Buzzer aktiviert. Liegt der Wert darunter bleibt dieser abgeschaltet.
Bildschirmausgabe
Eine funktionierende Bildschirmausgabe konnte nicht erreicht werden. Dazu muss der Bildschirm über den gezeigten SPI-Block gesteuert und zunächst initialisiert werden. Das Schreiben der Register zur Initialisierung über eine S-Funktion hat nicht funktioniert, da die Wire.h-Bibliothek nicht eingebunden werden konnte. Ein zweiter Versuch, die Werte im richtigen Timing mithilfe einer Clock selbst zu schreiben, blieb auch erfolglos. Allerdings konnte eine Kommunikation mit dem Bildschirm aufgebaut werden, welche die Bildschirmbeleuchtung zum Blinken gebracht hat. In Abbildung 11 ist die Reihenfolge der zu setzenden Register und das Timing zu sehen, um den Bildschirm anschließend zu nutzen. Anschließend könnten werte auf den Display ausgegeben werden. [18]
Verwendete Toolbox: DSP System Toolbox, Simulink Support Package für Arduino Hardware
Versuchsdurchführung
Der Versuchsaufbau wird durch einen Schaltplan (Abb. 8), Anschlussplan (Abb. 9) und Foto des Aufbaus (Abb. 13) dokumentiert.
Die Durchführung des Experiments beginnt mit dem Flashen des Arduino Uno R3. Nachdem alle relevanten Daten eingestellt wurden, wird die Messung gestartet. Dazu wird der Versuchsaufbau auf einer stabilen Oberfläche platziert und für mehrere Sekunden nicht bewegt, um statische Parameter zu gewährleisten. Nach der initialen statischen Messung wird die Dynamik des Vibrationssensors untersucht. Zunächst wird der Sensor leicht angetippt, um kleinere Vibrationen zu erzeugen. Anschließend wird der Sensor kräftiger angetippt, um einen deutlicheren Ausschlag zu beobachten. Zu guter Letzt wird der Sensor mit einer hohen Frequenz angestoßen, um maximale Spannungswerte zu erzeugen und den Buzzer zu testen. Diese Schritte helfen dabei, die Funktion des Sensors und die Einstellungen des Medianfilters zu überprüfen und sicherzustellen, dass verwertbare Signale erfasst werden.
Referenzwert
Ein Referenzwert konnte weder ermittelt noch gefunden werden, da keine geeignete Literatur oder ähnliche Versuche gefunden werden konnten.
Messunsicherheit
Die Messunsicherheit konnte nicht bestimmt werden, da die Messwerte immer null sind und lediglich bei einem stärkeren Stoß der Sensor ausgeschlagen hat. Dieser Stoß konnte nicht hinreichend genau mehrfach durchgeführt werden, sodass eine berechnung der Messunsicherheit nicht möglich war.
Modelleinstellungen: Arduino Uno, Solver: Fixed-step, discrete, Abtastrate: 0,001 s
Versuchsbeobachtung
Auswertung
Die Messhypothese wurde verworfen. Der Sensor weist systematische Messwertausreisser auf.
Die Ausreisser lassen sich mit einem Signalfilter eliminieren. Hierzu eignet sich ein Rangordnungsfilter (z. B. Median-Filter). Das Filter wird hierzu auf eine Fensterbreite von 30 Werten eingestellt. Das zufriedenstellende Filterergebnis für statische Werte zeigt Abb. 6 als blaue Kurve. Es konnte mit dynamische Werten verifiziert werden (vgl. Abb. 7). Das Datenblatt ([2, S. 6]) belegt die Messungen und bezeichnet die Messausreisser als "instabile Ausgabe" für maximal 5 ms alle 40 ms. Mit 50 Werten erhöht sich die Filterwirkung, es entsteht jedoch ein Delay von 10 ms. Mit 10 Werten ist die Filterwirkung zu gering.
Zusammenfassung und Ausblick
- Zusammenfassung der Kapitel 1-4
- Diskussion der Ergebnisse
- Ausblick
- Selbstreflexion/Lessons learned
Ergebnisvideo
Hier ist das Ergebnisvideo zu dem ARD VIB 01 - Piezo Vibrationssensor:
Lernzielkrontrolle
Beantworten Sie in Ihrem Artikel die Lernzielkontrollfragen.
Lernzielkontrollfragen |
|
Hinweis: Sämtliche Lernzielkontrollfragen werden in dem Wiki-Artikel und nicht direkt hier beantwortet.
Literatur
Zitieren Sie nach DIN ISO 690:2013-10.
- ↑ 1,0 1,1 1,2 1,3 1,4 1,5 https://www.reichelt.de/arduino-piezo-vibrationssensor-ard-vib-01-p316345.html?&nbc=1, abgerufen am 26.07.2024
- ↑ 2,0 2,1 https://wiki.hshl.de/wiki/index.php/BSE_Angewandte_Informatik_-_SoSe24, abgerufen am 26.07.2024
- ↑ https://wiki.hshl.de/wiki/index.php/Arduino:_Bibliothek_einbinden, abgerufen am 26.07.2024
- ↑ 4,0 4,1 https://ch.mathworks.com/de/hardware-support/arduino.html, abgerufen am 13.07.2024
- ↑ https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf, abgerufen am 26.07.2024
- ↑ https://wiki.hshl.de/wiki/index.php/LCD_Modul_16x02_I2C, abgerufen am 26.07.2024
- ↑ https://wiki.hshl.de/wiki/index.php/LCD_Modul_16x02_I2C, abgerufen am 26.07.2024
- ↑ https://www.az-delivery.de/products/breadboard, abgerufen am 26.07.2024
- ↑ https://www.pollin.de/media/52/d1/51/1701729549/D811421-D.pdf, abgerufen am 26.07.2024
- ↑ https://cdn-reichelt.de/documents/datenblatt/A300/SEN-VIB01_ANLEITUNG_2022-01-07.pdf, abgerufen am 26.07.2024
- ↑ 11,0 11,1 https://www.youtube.com/watch?v=Z0wZv8aDwlY, abgerufen am 26.07.2024
- ↑ https://vetsuisse.com/vet-iml/lernmodule/htmls/slide.html?radiosurfvet%7Cradgeneral%7Csonography%7Csonobasics%7C2, abgerufen am 26.07.2024
- ↑ 13,0 13,1 13,2 https://vetsuisse.com/vet-iml/lernmodule/htmls/slide.html?radiosurfvet%7Cradgeneral%7Csonography%7Csonobasics%7C2, abgerufen am 26.07.2024
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ Eigenes Dokument
- ↑ 18,0 18,1 https://wiki.ei.htwg-konstanz.de/_media/professoren_webseiten/rebholz/ansteuerung_eines_lcd-displays_mit_matlab_konstantin_lutz_2021.pdf, abgerufen am 26.07.2024
- ↑ Eigenes Dokument
- ↑ https://youtu.be/11MksacCNvI, abgerufen am 28.07.2024
Anhang
Datenblätter
Simulink-Modell
Originaldateien
- PAP
- Schaltplan,...
→ zurück zum Hauptartikel: BSE Angewandte Informatik SoSe24 | Hausarbeit SoSe24