Wach auf bei Bewegung

7

Meine Schaltungsanwendung erfordert die Verarbeitung während körperlicher Aktivität, kann jedoch für lange Zeiträume der Inaktivität in den Tiefschlaf versetzt werden. Ich benötige einen "wahren" oder "falschen" Ausgang von einem Sensor, der zum Unterbrechen eines Mikrocontrollers verwendet werden kann, dh ein Beschleunigungsmesser wäre ein massiver Overkill.

Gibt es einen sehr billigen (<$ 1) und sehr stromsparenden (<10 uA) Sensor oder eine Technik, die einen Interrupt für einen Mikrocontroller erzeugt, wenn der Sensor physisch bewegt wird?

benpro
quelle

Antworten:

13

Ich weiß, dass Sie gesagt haben, ein Beschleunigungsmesser wäre übertrieben, aber der Freescale MMA8453QT kann aktiv abtasten, während er nur 6 ua zeichnet, und die Bewegung unterbrechen. Der Preis beträgt 84 Cent in Mengen von 100, was Ihren Bedürfnissen zu entsprechen scheint.

tcrosley
quelle
Dies entspricht in der Tat meinen Bedürfnissen.
Benpro
4

Ja. Es gibt Bewegungssensoren, die wie ein Schalter wirken und sich beim Bewegen zufällig öffnen und schließen. Wenn die Ausgabe nicht verschoben wird, friert sie in dem Zustand ein, in dem sie zuletzt war. Diese Dinge können überraschend empfindlich sein.

Ein Nachteil ist, dass Sie nie wissen, ob der Schalter geöffnet oder geschlossen wird, wenn nichts passiert. Da es für längere Zeit geschlossen sein kann, müssen Sie dies bei der Auslegung für niedrigen Strom berücksichtigen. In Ihrem Fall können Sie 10 µA tolerieren, das ist also kein großes Problem. Ein 1 MΩ Pullup würde nur 3,3 µA bei 3,3 V benötigen.

Sie können regelmäßig mit einem Mikro abtasten und den Pullup nur für einen Bruchteil der Zeit eingeschaltet lassen, um den Strom zu reduzieren. Es wird dann ein Wahrscheinlichkeitsspiel mit langsamen Abtastraten. Wenn Sie feststellen, dass der Status des Schalters jedes Mal zufällig ist, wenn Sie ihn abtasten, während sich das Gerät bewegt, besteht nur eine Wahrscheinlichkeit von 1: 1024, dass nach 10 Abtastungen eine Bewegung fehlt. Wenn Sie im Vergleich zur mechanischen Zeitkonstante des Sensors schnell genug abtasten, sinkt die Wahrscheinlichkeit einer fehlenden Bewegung erheblich, aber Ihr durchschnittlicher Strom steigt. Beispielsweise ist es unwahrscheinlich, dass beim Abtasten alle 10 ms auch nur ein Ereignis übersehen wird, während alle 100 ms das Ergebnis beim Bewegen zufällig macht.

Olin Lathrop
quelle
Man kann die Chancen verbessern, indem man den Port schwach auf das "ODER" des Barwerts des Ports und ein Signal zieht, das periodisch hoch pulsiert. Ein Vorteil dieses Szenarios besteht darin, dass, wenn etwas periodische kurze Impulse erzeugen kann, während das Mikro schläft, das Mikro aufwachen kann, wenn sich der Wert des Ports ändert. Abhängig von den kapazitiven Belastungseffekten muss der Widerstand möglicherweise nicht so lange an einem geschlossenen Schalter hochziehen, wie dies bei einem Prozessor erforderlich wäre (z. B. bei einem 100K-Widerstand müsste die Einschaltzeit etwa 1 us pro 10 pF betragen). . Man könnte 320pF Laden bewältigen, wenn man seinen Impulsgenerator ...
Supercat
... war 32us alle ~ 8ms eingeschaltet, ein Tastverhältnis von 0,4%. Das würde 1/25 der Energie eines 1-Meg-Widerstands verschwenden und gleichzeitig eine bessere Empfindlichkeit bieten.
Supercat
Gute Kommentare. Vielen Dank. Haben Sie Teilenummern? Was soll ich googeln, um diese Teile zu finden?
Benpro
1
Bei Änderung unterbrechen. Es scheint, als würde das Aufwachen zur Probe mehr Strom verbrauchen als nur auf das Ereignis zu warten.
Joel B
1
@ Joel: Nicht wirklich. Der Punkt der regelmäßigen Abtastung besteht darin, den Pullup die meiste Zeit ausgeschaltet zu halten. Um das Mikro mithilfe von Interrupt bei Änderung auszulösen, muss das Pullup ständig aktiviert sein. Dadurch wird durchschnittlich die Hälfte der Zeit und möglicherweise über einen längeren Zeitraum Strom verbraucht, wenn der Sensor nach der letzten Bewegung geschlossen wurde. Das periodische Aufwachen verbraucht sehr wenig Strom. Low Power Watchdogs sind unter 1 uA. Ein für 10 uS alle 10 ms ist 0,1% der Zeit, so dass 1 mA beim Laufen 1 uA Durchschnitt wird.
Olin Lathrop
2

Siehe meine Antwort auf diese Frage: Beschleunigungsmesserschalter zum Auslösen der LED-Überblendung .

Bei einigen anderen Vorschlägen gibt es Probleme: Beschleunigungsmesser vom Typ MEMS sind die ideale Lösung, müssen jedoch zum Erkennen eingeschaltet werden. Schalter, die zufällig geöffnet / geschlossen werden, benötigen auch etwas Strom, um die Erfassung durchzuführen (oder ein kompliziertes Abfragesystem). Kippschalter können gut sein, wenn die "Leerlauf" -Position bei ausgeschaltetem Schalter garantiert ist.

Mein supergünstiger Beschleunigungsmesser (den ich nicht erfunden habe) kann mit unterschiedlichen Empfindlichkeiten hergestellt werden und verbraucht keinen Strom, wenn keine Bewegung stattfindet. Wenn Ihr Mikrocontroller keine guten Energieeinsparungsfunktionen bietet, können Sie wahrscheinlich einen eigenen externen Schaltkreis erstellen, um die Stromversorgung der MCU abzuschalten, bis Bewegung auftritt.

Gemeinschaft
quelle
1

Suchen Sie einen Neigungsschalter ? Es erkennt nicht so viele Arten von Bewegungen wie ein 3-Achsen-Beschleunigungsmesser, ist jedoch einfacher. Es kann über einen sehr großen Pull-up-Widerstand mit Strom versorgt werden, um Energieverschwendung zu vermeiden.

Es gibt auch piezoelektrische Schwingungssensoren . Sie würden 3 orthogonal benötigen, um Bewegungen in jede Richtung zu erfassen. Sie erzeugen ihre eigene Spannung.

Endolith
quelle