INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
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.

   
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.01.2020, 15:40
Beitrag #3
RE: ADXL335 Beschleunigungssensor
(24.01.2020 21:23)Tyson123 schrieb:  Hallo,
....
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.

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

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
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
    currentSensorMillis = millis();
    if (currentSensorMillis - previousSensorMillis > intervalSensor)
    {
       previousSensorMillis = currentSensorMillis;
       SchwingungZ = analogRead(SchwingungZ);       // Analogen Wert auslesen
       SchwingungZ = SchwingungZ - Zoffset;             // Offset abziehen
       SchwingungZ = abs(SchwingungZ);                   // Betrag, abfangen von negativen Werten
       Serial.println(SchwingungZ);                             // Werte ausgeben
    }

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;
       SchwingungZ = analogRead(SchwingungZ);       // Analogen Wert auslesen
       SchwingungZ = SchwingungZ - Zoffset;             // Offset abziehen
       SchwingungZ = abs(SchwingungZ);                   // Betrag, abfangen von negativen Werten
       Serial.println(SchwingungZ);                             // Werte ausgeben
    }

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?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Anfängerfragen. Beschleunigungssensor-->Funk-->Arduino-->PC Mr.Rail 1 1.304 18.05.2019 21:54
Letzter Beitrag: Tommy56
  Analogstick mit Gyroskop + Beschleunigungssensor ersetzen/beifügen. KuKi40 2 1.310 12.07.2017 20:49
Letzter Beitrag: KuKi40

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste