Inhaltsverzeichnis:
- Schritt 1: Schaltungslayout
- Schritt 2: Arduino-Code
- Schritt 3: Matlab-Code (HallRT-Datei)
- Schritt 4: Matlab-Code (thresh_analyze)
- Schritt 5: Versuch 1: Kein Aliasing
- Schritt 6: Versuch 2: Aliasing des Sensors (i)
- Schritt 7: Versuch 3: Aliasing des Sensors (ii)
- Schritt 8: Versuch 4: Aliasing des Sensors (iii)
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Ich möchte ein Bildungsprojekt erstellen, das Aliasing (und Abtastraten) demonstriert und auf einer Website als Ressource für Studenten platziert werden soll, die etwas über Aliasing lernen.
Schritt 1: Schaltungslayout
Arduino
Der Arduino ist die Basis der Schaltung; Unterstützung des Servomotors (mit montiertem Encoderrad) und des positionierten Hall-Effekt-Sensors.
-Encoderrad: Der Zweck des Encoderrads besteht darin, einen Magneten aufzuhängen, der sich kreisförmig dreht und über einem positionierten Hall-Effekt-Sensor schwebt.
-Sensor-Setup: Der Hall-Effekt-Sensor wird unterhalb des Rotationsweges des Magneten platziert, sein Zweck ist es, den Durchgang des Magneten mit verschiedenen Rotationsgeschwindigkeiten und Datenerfassungsraten zu verfolgen.
---------------------------------------------------------------------------------------------------------
Unterschritte:
-
Materialien besorgen:
Arduino (+ Steckbrett), Drähte, Encoderrad, Magnet, Hall-Effekt-Sensor, Servomotor, Matlab-Anwendung, Arduino-Anwendung
- Encoderrad ausschneiden, auf Servo montieren, Magnet in Nut einschieben.
- Bringen Sie den Hall-Effekt-Sensor unter dem Magnetpfad an (möglicherweise sind Kabelverlängerungen des Sensors erforderlich).
- Schaltung aufbauen.
Schritt 2: Arduino-Code
Methode der Datenerhebung
Der Arduino-Code verwendet [Line 41], um über den 'Analog In' A0-Port Informationen vom Hall-Effekt-Sensor zu sammeln
Methode der seriellen Datenübertragung
- [Zeile 43] Zeigt im seriellen Monitor eine Variable 'timer' an, die die Funktion 'millis()' implementiert, um einen laufenden Timer in Millisekunden für die Dauer des Programms zu halten.
- [Zeile 45] Zeigt im seriellen Monitor eine Variable 'hallsensor' an, die 'analogRead' implementiert, um Informationen vom Hall-Effekt-Sensor zu erhalten, während das Programm ausgeführt wird.
Zweck des Parameters delay()
Der Zweck des Parameters delay() besteht darin, die Reaktionszeit der Datenerfassung zu variieren, die vom Hall-Effekt-Sensor empfangen wird
---------------------------------------------------------------------------------------------------------
Unterschritte:
Geben Sie Arduino-Code in die Arduino-Anwendung ein
Schritt 3: Matlab-Code (HallRT-Datei)
-Methode des Datenempfangs - [Abbildung 3: Zeile 77]
Abrufen von Daten aus dem ArduinoStep
---------------------------------------------------------------------------------------------------------
Unterschritte:
Der eingegebene Matlab-Code liegt über den Zahlen, in der HallRT-Datei speichern
Schritt 4: Matlab-Code (thresh_analyze)
Methode zum Zählen von Peaks [Abbildung 2: Zeilen 45-53]
- Die Verwendung des Flags in diesem Matlab-Code ist so, dass, sobald die for-Schleife auf ein 'aRval' stolpert, das größer als der voreingestellte 'thresh'-Wert ist, um eins erhöht wird, der Peak mit einem Sternchen markiert wird und die if-Anweisung [Zeile 45-50] wird abgebrochen, weil Flag = 1. Die zweite if-Anweisung mit einem Flag [Zeile 51-53] zeigt an, dass, sobald der Peak erreicht ist und die Werte um den Peak herum abzunehmen beginnen, flag = 0 und die for-Schleife sucht weiter nach weiteren Spitzen.
-
Parameter/Notwendige Werte:
- 'aRval': Die gesammelten Daten aus einem Probelauf.
- 'thresh': Ein gewählter Wert, um alles darüber in aRval als Spitze anzuzeigen.
---------------------------------------------------------------------------------------------------------
Unterschritte:
Erstellen Sie eine zweite Matlab-Datei "thresh_analyze"
Schritt 5: Versuch 1: Kein Aliasing
Abbildung 1: Data Trial @ Delay 200Abbildung 2: Thresh-analysierte Daten
-Verzögerungsparameter: 200
Spitzen:
Anzahl = 45
-Anzahl der Umdrehungen pro Minute:
45 Umdrehungen/Minute
---------------------------------------------------------------------------------------------------------
Unterschritte:
-
Verbinden Sie das Arduino mit Ihrem Laptop.
Stellen Sie die Verzögerung im Arduino-Code auf "200". Drücken Sie Hochladen (in der oberen linken Ecke der Anwendung)
- Gehen Sie zu Ihrer Matlab-Datei HallRT [Zeile 37] und ändern Sie die Variable 'delayTime' auf 200.
- Führen Sie das HallRT-Programm aus.
- Speichern Sie die Matlab-Datei unter "delay_200". (Abbildung speichern)
- Laden Sie die Datei delay_200.mat.
- Führen Sie das Programm thresh_analyze aus. (Abbildung speichern)
Schritt 6: Versuch 2: Aliasing des Sensors (i)
Abbildung 1: Datentest @ Verzögerung 50
Abbildung 2: Thresh-analysierte Daten
Verzögerungsparameter: 50-Peaks:
Anzahl = 52
Anzahl der Umdrehungen pro Minute:
52 Umdrehungen/Minute
---------------------------------------------------------------------------------------------------------
Unterschritte:
-
Verbinden Sie das Arduino mit Ihrem Laptop.
Stellen Sie die Verzögerung im Arduino-Code auf "50". Drücken Sie auf Hochladen (in der oberen linken Ecke der Anwendung)
- Gehen Sie zu Ihrer Matlab-Datei HallRT [Zeile 37] und ändern Sie die Variable 'delayTime' auf 50.
- Führen Sie das HallRT-Programm aus.
- Speichern Sie die Matlab-Datei unter "delay_50". (Abbildung speichern)
- Laden Sie die Datei delay_50.mat.
- Führen Sie das Programm thresh_analyze aus. (Abbildung speichern)
Schritt 7: Versuch 3: Aliasing des Sensors (ii)
Abbildung 1: Data Trial @ Delay 100Abbildung 2: Thresh-analysierte Daten
Verzögerungsparameter: 100-Peaks:
Anzahl = 54
Anzahl der Umdrehungen pro Minute:
54 Umdrehungen/Minute
------------------------------------------------ -------------------------------------------------- --------Unterschritte:
-
Verbinden Sie das Arduino mit Ihrem Laptop.
Stellen Sie die Verzögerung im Arduino-Code auf "100". Drücken Sie auf Hochladen (in der oberen linken Ecke der Anwendung).'
- Gehen Sie zu Ihrer Matlab-Datei HallRT [Zeile 37] und ändern Sie die Variable 'delayTime' auf 100.
- Führen Sie das HallRT-Programm aus.
- Speichern Sie die Matlab-Datei unter "delay_100". (Abbildung speichern)
- Laden Sie die Datei delay_100.mat.
- Führen Sie das Programm thresh_analyze aus. (Abbildung speichern)
Schritt 8: Versuch 4: Aliasing des Sensors (iii)
Abbildung 1: Data Trial @ Delay 300Abbildung 2: Thresh-analysierte Daten
-Verzögerungsparameter: 300
Spitzen:
Anzahl = 32
Anzahl der Umdrehungen pro Minute:
32 Umdrehungen/Minute
-------------------------------------------------- -------------------------------------------------- --------Unterschritte:
-
Verbinden Sie das Arduino mit Ihrem Laptop.
Setzen Sie die Verzögerung im Arduino-Code auf "300". Drücken Sie Hochladen (in der oberen linken Ecke der Anwendung)
- Gehen Sie zu Ihrer Matlab-Datei HallRT [Zeile 37] und ändern Sie die Variable 'delayTime' auf 300.
- Führen Sie das HallRT-Programm aus.
- Speichern Sie die Matlab-Datei unter "delay_300". (Abbildung speichern)
- Laden Sie die Datei delay_300.mat.
- Führen Sie das Programm thresh_analyze aus. (Abbildung speichern)