Ultraschallsensor (Ping) und Tiefschlaf-Arduino

Ist es möglich, einen Ultraschallsensor zu verwenden, um einen Arduino aufzuwecken, der sich im Tiefschlaf befindet, wenn ein Objekt innerhalb weniger cm erkannt wird, und dann Dinge zu tun?

Es ist ein aktiver Sensor: Er wendet Pings an, um Informationen über seine Umgebung zu sammeln. Um Pings zu erzeugen, muss es Strom verbrauchen. Wie viel Strom verbraucht der Sensor? Wie ist es im Vergleich zum Tiefschlaf des Arduino? Ist es die Mühe wert, den Arduino im Tiefschlaf zu halten?

Antworten (2)

Für eine wirklich stromsparende Arduino-basierte Lösung ist mindestens Folgendes erforderlich:

A) HARDWARE-SEITE:

  1. Verwenden Sie eine möglichst niedrige Versorgungsspannung und Taktfrequenz. Das Arduino Pro Mini 3.3V @ 8Mhz Board ist ein guter Ausgangspunkt für ein erstes Projekt.
  2. Befreien Sie sich von allen LEDs in der Platine. Ihr Verbrauch liegt im mA-Bereich, viel zu hoch.
  3. Entfernen Sie den Onboard-Regler und ersetzen Sie ihn durch einen Regler mit niedrigem Ruhestrom und niedrigem Dropout wie dem MCP1700 . Es kann nur 250 mA liefern, während der AMS1117 für bis zu 1 A ausgelegt ist, aber 250 mA werden wahrscheinlich gut genug für Ihre Low-Power-Anwendung sein. OTOH, nur für den Fall, dass Sie sich fragen: Sie brauchen keinen Schaltregler, es sei denn, Ihr Arduino verbringt die meiste Zeit wach und verbraucht viel Strom, was ein sehr unwahrscheinliches Szenario ist. Der hohe Ruhestrom von Schaltreglern scheidet für diese Art von Anwendungen aus.
  4. Wählen Sie einen Sensor mit geringem Stromverbrauch und eine Signalkonditionierungsschaltung. PIR- und CMOS-Logikfamilie 74HC sind dafür gute Technologien. Wie Nick Alexeev betonte, wird ein Ultraschallsensor ständig emittieren, wodurch Ihre Energieeinsparungen auf dem Arduino nutzlos werden. Vermeide es.
  5. Die Signalkonditionierungsschaltung muss aus jedem Signal, das der Sensor liefert, eine Pegelunterbrechung erzeugen. Hierfür können Zeitglieder (z. B. Kondensatoren) oder Latches erforderlich sein. Legen Sie ihn sicherheitshalber für einen rücksetzbaren Impuls von 100 ms aus.

B) SOFTWARE-SEITE:

  1. Installieren Sie eine Low-Power-Arduino-Bibliothek wie diese . Verwenden Sie den Power-Down-Sleep-Modus des ATmega328p.
  2. Schreiben Sie eine Interrupt Service Routine (ISR). Dies ist das Stück Code, das sich mit allem befasst, was bei einem Interrupt-Ereignis getan werden muss.
  3. Konfigurieren (hängen) Sie die Interrupts nach Bedarf. Beachten Sie, dass nur durch Pegel ausgelöste Interrupts ATmega328p aus dem Power-Down-Sleep-Modus wecken können , wie im Datenblatt angegeben:

Wake-up-Quellen

Hier finden Sie wirklich gute und praktische Informationen zum Thema Energiesparen. Für eine gründlichere Anleitung lesen Sie dies auch.

Hallo @Enric, also ist meine Frage, ob der Dosis-Ping-Sensor im Hintergrund arbeitet, während sich ATMega im Tiefschlaf befindet?
Ja, ATMega befindet sich im Tiefschlaf, aber der Regler nicht (es ist ein externer IC), sodass der Sensor immer noch den Strom erhält, den er benötigt. Aber denken Sie daran, dass, wie Nick sagte, der vom Sensor verbrauchte Strom hoch genug sein kann, um jede Energieeinsparung zu überschatten, die dadurch entsteht, dass die MCU im Tiefschlaf gehalten wird!
Stromkreis zieht derzeit ca. 22mA, hat: Regler, ATMega 328PU, HF-Modul und Ping-Modul... Was braucht am meisten Strom?
Das sollten Sie durch genauere Betrachtung der Datenblätter herausfinden. Schauen Sie sich auch Folgendes an: gammon.com.au/power Wenn Ihre Schaltung 22 mA zieht, wenn ATmega schläft, ist das schlecht.
Ohne Schlaf zieht es 22mA ...

Wenn Sie den Stromverbrauch wirklich minimieren möchten, benötigen Sie nicht nur eine stromsparende MCU-Schaltung, sondern auch einen Ultraschallempfänger, den Sie deaktivieren können.

Wecken Sie die MCU von einem periodischen Zeitgeber mit geringer Leistung auf und geben Sie einen Impuls ab, gehen Sie dann für mindestens die Sensorklingelzeit oder die Zeit des minimalen interessierenden Bereichs zurück in den Ruhezustand.

Wecken Sie die MCU und den Empfänger zu dem Zeitpunkt wieder auf, an dem Sie zum ersten Mal ein interessantes Echo erwarten, und bleiben Sie nur so lange wach, bis Sie eines sehen, oder für den Zeitraum, in dem Ihr Echo eintreffen könnte.

Handeln Sie, wenn Sie ein Echo hören.

Sobald Sie ein Echo hören oder das interessierende Fenster abgelaufen ist, schalten Sie bis zum nächsten Messintervall alles bis auf den Low-Power-Timer wieder aus.

Wie oft Sie die Messung wiederholen müssen, hängt davon ab, wie schnell sich Ihre Objekte bewegen können und/oder wie kurz eine Betätigung des Ausgangs sinnvoll ist und/oder die maximal zulässige Latenzzeit beim Reagieren auf ein Erscheinen oder Verschwinden. Als untere Grenze sollten Sie sicherstellen, dass Sie keine neue Messung durchführen, bis alle Mehrfachreflexionen oder Reflexionen an entfernten Wänden des alten Sendeimpulses abgeklungen sind.