ADXL335 Beschleunigungssensor
|
24.01.2020, 21:23
Beitrag #1
|
|||
|
|||
ADXL335 Beschleunigungssensor
Hallo,
in einem Projekt verwende ich den Beschleunigungssensor ADXL335 an dem Arduino Uno für die Aufnahme von Vibrationen. ADXL335 Mit dem Sensor möchte ich den Anstieg der Vibrationen in der Nähe vom Resonanzbereich darstellen. Den Sensor habe ich bereits mit einem Oszilloskop untersucht und dabei eine Frequenz des Sensors von ca. 28 Hz festgestellt. Mein bisheriges Programm hat eine Laufzeit von 1,62ms, somit eine Frequenz von 617Hz. Im ersten Versuch habe ich das angehängte Bild 1 erhalten, bei dem im Anfangs- und Endbereich keine Vibrationen vorlagen aber angezeigt werden. Im zweiten Versuch lese ich alle 30ms den analogen Wert aus, diese Abtastzeit sollte nach dem Abtasttheorem ausreichen. Anschließend ziehe ich den Offset ab der im Setup ausgelesen wird und gebe die Schwingungen um den Offset aus, dabei entsteht das Bild 2 aus dem Anhang. Nun zu meiner Frage, kann ich es irgendwie hinbekommen die Beschleunigung nur in eine Richtung darzustellen, sodass ich eine Glockenkurve erhalte, die dann nur die Beschleunigung in m/s^2 in eine Richtung darstellt ohne die aktuellen Sprünge? Meine bisherigen Versuche sind leider gescheitert. |
|||
25.01.2020, 11:45
Beitrag #2
|
|||
|
|||
RE: ADXL335 Beschleunigungssensor
Hallo,
das sieht nach der Diskretisierung des ADC aus. In Bild 1 links und rechts hat die "Schwingung" +/- 1 Bit, in der Mitte die hohe Spitze etnspricht auch nur etwa 8 Bit. Selbst wenn Du den ADC an eine konstante Spannung anschießt, wirst Du wahrscheinlich sehen, dass es eine Schwankung um ein oder zwei Bits gibt. Nach Datenblatt ergibt sich eine Auflösung von 51 Bit / g, das ist nicht gerade viel, aber um eine kräftige Schwingung zu erkennen wird es ausreichen. Viele Grüße GuaAck |
|||
25.01.2020, 15:40
Beitrag #3
|
|||
|
|||
RE: ADXL335 Beschleunigungssensor
(24.01.2020 21:23)Tyson123 schrieb: Hallo, Hi, also zum Abtasttheorem... bei einem Messsignal mit 28Hz musst du mit mindestens 28Hz x 3 ( fx>2 ) abtasten was dann bedeutet das du hier alle 1 / 28 x 3 = 0,01190 Sek also alle ~10mS abtasten musst. Das mit der Glockenkurve ist was Mathematisches... da bin ich kein Fuchs, aber du hast in der Zweiten Kurve ja schon eine Nullinie berechnet. Wenn du nun davon ausgehend alle Werte mit sich selber Multiplizierst dann werden auch Negative Werte Positiv und werden dann ja auch so ausgegeben.... Versuch das mal. lgbk An alle Neuankömmlinge hier, wenn ihr Code(Sketch) hier posten wollte dann liest euch bitte diese Anleitung durch. 1+1 = 10 ![]() ![]() |
|||
25.01.2020, 17:18
Beitrag #4
|
|||
|
|||
RE: ADXL335 Beschleunigungssensor
Dann sollte es nach folgender Variante funktionieren (kann es momentan nicht testen). Diese Variante hatte ich bereits vorher probiert aber den Fehler gemacht in der Funktion abs() Berechnungen zu machen und den analogen Wert in dieser auszulesen.
Code: // Auslesen von ADXL335 alle 10ms Eine andere Variante wäre ja das Abtasten mit der Programmlaufzeit von 1,62ms wenn ich den Messwert in jeden Durchlauf aufnehme. Code: previousSensorMillis = currentSensorMillis; Wenn die Lösung richtig durchdacht ist, müsste die Funktion abs() das multiplizieren mit sich selber ersetzen und die Variante mit der Abtastung nach der Programmlaufzeit sinnvoller sein oder spricht etwas dagegen? |
|||
|
|
Möglicherweise verwandte Themen... | |||||
Thema: | Verfasser | Antworten: | Ansichten: | Letzter Beitrag | |
Anfängerfragen. Beschleunigungssensor-->Funk-->Arduino-->PC | Mr.Rail | 1 | 1.495 |
18.05.2019 21:54 Letzter Beitrag: Tommy56 |
|
Analogstick mit Gyroskop + Beschleunigungssensor ersetzen/beifügen. | KuKi40 | 2 | 1.524 |
12.07.2017 20:49 Letzter Beitrag: KuKi40 |
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste