Ich habe eine serielle Schnittstelle über ein Bluetooth-Modul (HC05) eingerichtet. Ich verwende eine JavaFX-App, die ich geschrieben habe, um die serielle Schnittstelle zu lesen, die Beschleunigungswerte (über ADXL345) aufzuzeichnen und ein Alarmbit (1 für EIN und 0 für AUS) an die serielle Schnittstelle zurückzuschreiben, wenn eine bestimmte Funktion von accelX erreicht wird über einen Wert.
Das Seltsame ist, wenn Arduino das ON-Bit erkennt und den Summer einschaltet, werden meine Beschleunigungswerte ziemlich laut! Ich habe meine Codes sowohl auf der Arduino-Seite als auch auf der Java-Seite überprüft und konnte kein Problem finden.
Dann habe ich eine LED anstelle des Summers eingesetzt und zu meiner Überraschung eingeschaltet, ohne die Beschleunigung zu beeinträchtigen. Lesungen !!
Ich weiß wirklich nicht, was das Problem mit dem Summer ist. Kann jemand helfen?
Hier ist mein Verdacht:
Ich verwende ein Breakout-Board für ADXL345. Ich bin mir nicht sicher, ob es 5 Volt verträgt. Ich habe die 3,3 Volt von Uno an die Vcc angeschlossen und verwende I2C für die Kommunikation. (mit zwei 4,7-k-Pull-up-Widerständen, die zwischen den SDA- und SCL-Pins und den 3,3 V von Uno angeschlossen sind).
Könnte es sein, dass der Summer beim Einschalten irgendwie so viel Strom zieht, dass diese Pull-up-Widerstände gestört werden?
Hier ist das Foto meines Setups (die untere rote Linie ist 3,3 V und die obere rote Linie ist 5 Volt, beide kommen von Uno. Alle Erdungen sind miteinander verbunden):
Und hier sind die Messwerte von Accels. im LEERLAUF:
Und ich bekomme diese Messwerte aus der seriellen Schnittstelle:
Aber immer wenn ich das Steckbrett neige (Grenze für den Alarm beträgt 20 Grad), piept es korrekt, aber aufgrund lauter Beschleunigungen startet, stoppt und startet der Summer in einem zufälligen Muster:
Um meinen Kommentar zu erweitern:
Dies könnte leicht am Summer selbst liegen: entweder physische Vibration oder EM-Rauschen. Die Tatsache, dass der Summer durch eine LED ersetzt wird, unterstützt dies, da die LED keine physische Bewegung erzeugt und eine schöne konstante Strommenge zieht. Da sich der Summer auf der gleichen Steckplatine wie die LED befindet, ist er mechanisch fest mit dem Sensor verbunden und gleichzeitig elektrisch nah, und daher ist es schwierig zu sagen, was aus physikalischem oder EM-Rauschen wahrscheinlicher ist (meine Vermutung wäre physikalisch Bewegung, die leichter zu verursachen und leichter zu heilen ist).
Um zu bestätigen, dass es der Summer ist, der das Problem verursacht, würde ich empfehlen, den Summer über einige fliegende Kabel anzuschließen. Dadurch wird der Summer mechanisch vom Sensor getrennt. Wenn der Test wiederholt wird und der Sensor nicht den "komischen" Messwert liefert, den Sie jetzt sehen, ist die mechanische Bewegung des Summers die Ursache. Die Abhilfe dafür ist dann einfach: Isolieren Sie den Summer mechanisch vom Sensor (stecken Sie den einen oder anderen oder beide auf fliegende Kabel). Wenn Sie dies für Ihre Anwendung nicht tun können, können Sie entweder das Summersignal dämpfen (mit Gummihalterungen) oder Ihre Software ändern, um das Rauschen herauszufiltern (was häufig durch Oversampling und Mittelwertbildung geschieht Daten).
Sie haben auf meinen Kommentar geantwortet, dass die fliegenden Kabel das Problem beheben, also haben Sie jetzt verschiedene Möglichkeiten: Mechanisch: Isolieren Sie den Summer auf beliebige Weise vom Sensor (Kabel, Gummihalterungen) Software: Abtasten Sie die Daten und filtern Sie sie heraus sich schnell ändernde Werte (die Mittelung über einen bestimmten Zeitraum ist am einfachsten) Hardware: Verwenden Sie einen anderen Sensor, der mit einer langsameren Rate abtastet (so dass die Bewegung nicht vom Summer erfasst werden kann). Wenn Sie einen anderen Sensor mit einem analogen Ausgang verwenden, können Sie den Ausgang mit einem einfachen Kondensator filtern.
Da dies hauptsächlich ein Softwareprojekt zu sein scheint, würde ich mich für einen einfachen Softwarefilter entscheiden. Die Spezifikationen davon hängen von Ihrer Anwendung ab; Reaktionsgeschwindigkeit auf Änderungen, gewünschte schnelle Änderung usw. Abhängig von Ihrer Anwendung können Sie mit dem Filtern viel erreichen, indem Sie Folgendes verwenden: Mittelung, Änderungsrate, Frequenzanpassung, Entprellung.
Pufffisch
Zeta.Ermittler
Zeta.Ermittler
Pufffisch