Locale Icon
English
  • Forums

    Popular Forums

    • LTspice
    • RF and Microwave
    • Video
    • Power Management
    • Precision ADCs
    • FPGA Reference Designs
    • Linux Software Drivers

    Product Forums

    • Amplifiers
    • Microcontrollers
    • Clock and Timing
    • Data Converters
    • Direct Digital Synthesis (DDS)
    • Energy Monitoring and Metering
    • Interface and Isolation
    • MEMS Inertial Sensors
    • Power Management
    • Processors and DSP
    • Switches/Multiplexers
    • Temperature Sensors
    • Voltage References
    View All

    Application Forums

    • A2B
    • Audio
    • Automated Test Equipment (ATE)
    • Condition-Based Monitoring
    • Depth, Perception & Ranging Technologies
    • Embedded Vision Sensing Library
    • Motor Control Hardware Platforms
    • Precision Technology Signal Chains Library
    • Video
    • Wireless Sensor Networks Reference Library

    Design Center Forums

    • ACE Evaluation Software
    • ADEF System Platforms
    • Design Tools and Calculators
    • FPGA Reference Designs
    • Linux Software Drivers
    • Microcontroller no-OS Drivers
    • Reference Designs
    • Signal Chain Power (SCP)
    • Software Interface Tools
    • System Demonstration Platform (SDP) Support
  • Learn

    Highlighted Webinar

    Simplifying Connectivity - Remote Controlled (RC) Nodes in a Software Defined Vehicle (SDV)

    This webinar will introduce remote-controlled edge nodes and how they promise to simplify the automotive network architecture and expedite the integration...

    Places

    • ADI Education Home
    • ADI Webinars
    • GMSL U
    • StudentZone (Analog Dialogue)
    • Video Annex
    • Virtual Classroom

    Libraries

    • 3D ToF Depth Sensing Library
    • Continuous-Wave CMOS Time of Flight (TOF) Library
    • Embedded Vision Sensing Library
    • Gigabit Multimedia Serial Link (GMSL) Library
    • Optical Sensing Library
    • Precision Technology Signal Chains Library
    • Software Modules and SDKs Library
    • Supervisory Circuits Library
    • Wireless Sensor Networks Library

    Latest Webinars

    • Simplifying Connectivity - Remote Controlled (RC) Nodes in a Software Defined Vehicle (SDV)
    • Upcoming Webinar: Simplify High-Accuracy Instrumentation Design with Latest Precision Data Converters
    • Design High Performance Power Systems with Ultralow Noise Technology
    • µModule Solution for Intelligent Motion Control
    • Accelerating Embedded System Development with CodeFusion Studio™︎
    View All Webinars
  • Community Hub

    Challenge Yourself!

      KCC's Quizzes AQQ286 about Right Labels on the Right Boxes containing colored balls

      1. Quote of the week: "Knowledge is knowing a tomato is a fruit. Wisdom is not putting it in a fruit salad" - unknown Sources: commons.wikimedia...

    View All

    What's Brewing

      GMSL Quiz! Read the blog, take the quiz, and enter to win a gift card!

      Quiz! Read the GMSL Link Lock Blog - Take the Quiz and You are Entered to Win! Important: Read the blog first . The quiz questions are all based on...

    View All

    Places

    • Community Help
    • Logic Lounge
    • Super User Program

    Resources

    • EZ Code of Conduct
    • EZ How To Help Articles
    • Getting Started Guide
    • ADI: Words Matter
    • Community Help Videos
    View All
  • Blogs

    Highlighted Blogs

    IO-Link: Power Dissipation in Practice

    The Limitation of Heat Dissipation IO-Link is used across many branches of factory automation, and in these applications, areas of the factory floor...

     

    GMSL Debugging: Getting a Lock

    Imagine a scenario where you have a brand-new board design or are excited to try out some evaluation kits only to find out that the two devices can’t talk...

    Latest Blogs

    • Exploring DCM and CCM in SMPS: Part 1 of 6
    • Let’s Take a Field-Bus Trip
    • Countable vs Non-countable Faults
    • Power Your Signal: DAS Networks Unleashed: Part 2 of 4
    • Combining Functional Safety and Availability Using Redundancy
    Read All Blogs

    ADI Blogs

    • EZ Spotlight
    • The Engineering Mind
  • ContentZone

    Visit ContentZone

    ContentZone

    Technical articles. Blogs. Videos. Your ADI content, all in one place.

    View ContentZone

    Featured Content

    Featured Content Title

    Blurb About Content

    View Content By Industry

    • Aerospace and Defense Systems
    • Automotive Solutions
    • Consumer Technology Solutions
    • Data Center Solutions
    • Energy Solutions
    • Healthcare Solutions
    • Industrial Automation Technology Solutions
    • Instrumentation and Measurement Solutions
    • Intelligent Building Solutions
    • Internet of Things (IoT)
    • Wireless Communication Solutions

    View Content By Technology

    • A2B Audio Bus
    • ADI OtoSense Predictive Maintenance Solutions
    • Dynamic Speaker Management
    • Gallium Nitride (GaN) Technology
    • Gigabit Multimedia Serial Link (GMSL)
    • Industrial Vision
    • Power Solutions
    • Precision Technology
    • RF
    • Security Solutions
    • Sensor Interfaces
    • SmartMesh
  • Partners

    Partner Forums

    • Boston Engineering
    • PalmSens
    • Richardson RFPD
    • Tri-Star Design, Inc.

    Partner Libraries

    • Calian, Advanced Technologies Library
    • Clockworks Signal Processing Library
    • Colorado Engineering Inc. (DBA CAES AT&E) Library
    • Epiq Solutions Library
    • Fidus Library
    • VadaTech Library
    • Vanteon Library
    • X-Microwave Library
EngineerZone
EngineerZone
MEMS Inertial Sensors
  • Log In
  • User
  • Site
  • Search
OR
Ask a Question
MEMS Inertial Sensors
MEMS Inertial Sensors
Documents ADXL362 + Arduino: Using Interrupts to Implement Motion-Activated Sleep
  • Forums
  • Files
  • FAQs/ Docs
  • Members
  • Tags
  • More
  • Cancel
  • +Documents
  • +3-D Model/STEP: FAQ
  • +AD22282-A-R2: FAQ
  • +ADIS16000: FAQ
  • +ADIS16003 MTBF: FAQ
  • +ADIS16006: FAQ
  • +ADIS16201: FAQ
  • +ADIS16203: FAQ
  • +ADIS16204: FAQ
  • +ADIS16209: FAQ
  • +ADIS16210: FAQ
  • +ADIS16223: FAQ
  • +ADIS16227: FAQ
  • +ADIS16228: FAQ
  • +ADIS16229: FAQ
  • +ADIS16240: FAQ
  • +ADIS16255: FAQ
  • +ADIS16355: FAQ
  • +ADIS16364: FAQ
  • +ADIS16365: FAQ
  • +ADIS16375: FAQ
  • +ADIS16385: FAQ
  • +ADIS16400: FAQ
  • +ADIS16405: FAQ
  • +ADIS16407: FAQ
  • +ADIS16445: FAQ
  • +ADIS16448: FAQ
  • +ADIS16460: FAQ
  • +ADIS16475: FAQ
  • +ADIS16477: FAQ
  • +ADIS1647x: FAQ
  • +ADIS16480: FAQ
  • +ADISUSB: FAQ
  • +ADXL001: FAQ
  • +ADXL203: FAQ
  • +ADIS16300: FAQ
  • +ADIS16485: FAQ
  • +ADIS16488: FAQ
  • +ADIS16488A: FAQ
  • +ADIS16490: FAQ
  • +ADIS16495: FAQ
  • +ADIS16497: FAQ
  • +ADXL103: FAQ
  • +ADXL150: FAQ
  • +ADxL193: FAQ
  • +ADXL202: FAQ
  • +ADXL206: FAQ
  • +ADXL210: FAQ
  • +ADXL210E: FAQ
  • +ADXL213: FAQ
  • +ADxL230: FAQ
  • +ADXL278: FAQ
  • +ADXL312: FAQ
  • +ADXL313: FAQ
  • +ADXL320: FAQ
  • +ADXL321: FAQ
  • +ADXL322: FAQ
  • +ADXL327: FAQ
  • +ADXL335: FAQ
  • +ADXL337: FAQ
  • +ADXL345: FAQ
  • +AD22290: FAQ
  • +ADIS16003: FAQ
  • +ADIS16133: FAQ
  • +ADIS16135: FAQ
  • +ADIS16265: FAQ
  • +ADIS16305: FAQ
  • +ADXL326: FAQ
  • +ADXL350: FAQ
  • -ADXL362: FAQ
    • ADXL362 + Arduino: Using Interrupts to Implement Motion-Activated Sleep
    • ADXL362 200Hz Bandwidth
    • ADXL362 Arduino How-To
    • ADXL362 as a Motion Switch
    • ADXL362 Clock Accuracy
    • ADXL362 Current Usage versus Competitors
    • ADXL362 Evaluation Boards
    • ADXL362 External Sync Pin
    • ADXL362 FIFO
    • ADXL362 FIFO Advantages
    • ADXL362 footprint error in datasheet (Rev C)
    • ADXL362 Motion Status Indicator Pin
    • ADXL362 register configuration
    • ADXL362 Self Test Procedure
    • ADXL362 Target Applications
    • ADXL362 Wakeup Mode vs. Full Power Mode
    • ADXL362  advantages as a motion switch
    • ADXL362: Acceleration beyond measurement range
    • ADXL362: Accessing real-time data in Wakeup Mode
    • ADXL362: autosleep mode
    • ADXL362: Bare minimum to acquire data
    • ADXL362: Output Data Rates (ODR)
    • ADXL362: Wakeup Mode and Autosleep
    • ADXL362: Wider bandwitdh than 200Hz
    • Are customers parts close to the ADXL362
    • EVAL-ADXL362Z-MLP threshold setting
    • Evaluating the ADXL362
    • Is ADXL362 data AC coupled?
    • Is ultrasonic welding a suitable assembly process for ADXL362 ?
    • Logging Data Prior to an Event
  • +ADXL375: FAQ
  • +ADXL377: FAQ
  • +ADXL78: FAQ
  • +ADXRS150: FAQ
  • +ADXRS290: FAQ
  • +ADXRS300: FAQ
  • +ADXRS401: FAQ
  • +ADXRS453: FAQ
  • +ADXRS610: FAQ
  • +ADxRS614: FAQ
  • +ADXRS623: FAQ
  • +ADXRS646: FAQ
  • +ADXRS652: FAQ
  • +ADXRS800: FAQ
  • +ADIS16136: FAQ
  • +ADIS16137: FAQ
  • +ADIS16266: FAQ
  • +ADIS16334: FAQ
  • +ADIS16362 Evaluation Tool: FAQ
  • +ADIS16364 Evaluation Tool: FAQ
  • +ADIS16367: FAQ
  • +ADIS163xx: FAQ
  • +ADIS16489: FAQ
  • +ADIS1648x: FAQ
  • +ADXL346: FAQ
  • +ADXL363: FAQ
  • +EVAL-ADIS: FAQ
  • +EVAL-ADIS2: FAQ
  • +Filtering Functions: FAQ
  • +General: FAQ
  • +Gyroscope: FAQ
  • +Hard & Soft Iron Correction: FAQ
  • +ISEB USB: FAQ
  • +IMU: FAQ
  • +MEMS: FAQ
  • +Slip Ring Interface: FAQ
  • +SPI Troubleshooting: FAQ
  • +TEMP_OUT Variation: FAQ
  • +Test Procedures: FAQ
  • +AD590: FAQ
  • +AD5940: FAQ
  • +ADXL357: FAQ
  • +ADXL367: FAQ
  • DS1922E: FAQ
  • +DS1922L: FAQ
  • +EVAL-ADXL312-SDP: FAQ
  • +MAX30003: FAQ
  • +MAX30003WING: FAQ
  • +MAX30009EVKIT: FAQ
  • +MAX30134EVSYS: FAQ

ADXL362 + Arduino: Using Interrupts to Implement Motion-Activated Sleep

This tutorial details, step-by-step, how to use an ADXL362 to put an Arduino in a low-power state when the circuit is not moving, and then power it back up when motion is detected.

Before you get started:

If you haven't already, make sure you are able to successfully complete the ADXL362 Arduino How-To tutorial, which will guide you through hookup, ADXL362 Arduino library installation, and uploading/executing the "ADXL362_SimpleRead" example.  Any unresolved issues you have while working through the first tutorial will cause you trouble in this one.

Download the Rocket Scream Low Power Arduino Library:

I'm sure there are many good examples/libraries for putting your Arduino to sleep, but I have had good luck with Rocket Scream's Low Power Arduino library - download zip file here.

In my examples, I renamed the "Low-Power" top level library directory to "LowPower".  (My environment doesn't like the hyphen... I'm not sure if it's an OS issue, or perhaps the hyphen worked fine on an older version of the Arduino software?  Either way... please remove the hyphen to make the library work with my example code.)

Remember lessons learned while installing the ADXL362 Arduino library in previous tutorial.  "LowPower" library folder should be placed in your <sketchbook>/libraries folder.

You libraries directory structure should look like the picture below.  Go to ADXL362 Arduino How-To for a more detailed description of how to install Arduino libraries.

If you have it installed successfully, The Rocket Scream LowPower library will show up under Sketch -> Import Library -> LowPower (See image below):

Add interrupt connection between ADXL362 and Arduino:

This sleep example utilizes the INT1 pin of the ADXL362, and the Interrupt 0 (digital pin 2) on the Arduino.  So, adding to the connections that were made on the previous tutorial, add a wire to connect INT1 pin on the ADXL362 to DP2 pin on the Arduino.  See image below for an illustration of required connections:

More information about Arduino interrupts can be found at https://arduino.cc/en/Reference/AttachInterrupt

Upload ADXL362_MotionActivatedSleep sketch to Arduino:

Once you have completed steps above, uploading the ADXL362_MotionActivatedSleep example to your Arduino should be simple and straightforward.  The Motion activated sleep example requires the LowPower library to be properly installed.

Open the example by clicking File -> Examples -> ADXL362 -> ADXL362_MotionActivatedSleep, as shown in image below:

Make sure you have the correct board and serial port selected (see previous tutorial) and click the Upload button, as illustrated below:

Observe awake/asleep activity on Serial Monitor:

Open the serial monitor,  and watch as your circuit goes to sleep and wakes up, depending on if it's being shaken or moved.

In the example code, the circuit stays "on" for two seconds after it's been motionless, then shuts off.  The on/off timing, as well as the motion threshold, can be changed by tweaking the activity/inactivity interrupt settings, which I've set with the setupDCActivityInterrupt and setupDCInactivityInterrupt functions.

Or, Observe awake/Asleep activity with a multimeter:

To measure overall current, I disconnected the Pro Mini Arduino from my PC and FTDI Basic, and connected a multimeter in series with a 4.5V battery supply - I connected the battery supply to the RAW pin of my Pro Mini Arduino.  My quick observation was that the overall circuit consumes a little over 4mA while awake, and roughly 270uA while asleep.

  This tutorial does not include a thorough investigation of what portions of the circuit are consuming what portion of the overall power dissipation.  But in this example, the ADXL362 consumes less than 3uA while on, and 300nA while the circuit is "sleeping." (The ADXL362 current consumption varies slightly with output data rate, input voltage, and mode)  Therefore, most of the overall current, awake or asleep, is being consumed by the Pro Mini Arduino.  I'll leave it to the reader to conduct their own experiments regarding power consumption.

Images below - Current consumption while Pro Mini Arduino + ADXL362 circuit is "awake," and "asleep."

And, for even lower sleep power, use a Rocket Scream Ultra Mini Arduino-compatible

So, as much as I love, love, love the Pro Mini, I wasn't completely satisfied with the sleep current of my overall circuit.  And, I probably could have hacked my Pro Mini to make a few improvements (removing the 10K resistor across VCC comes to mind), I instead decided to purchase a Rocket Scream Mini Ultra Arduino-compatible board, especially since I'm using their handy Arduino library for sleep modes.

https://www.rocketscream.com/blog/wp-content/uploads/2011/07/miniUltra8Mhz.jpg

   Using the Mini Ultra, I was able to get my sleep current down to roughly 2uA! That's more like it!

Image below - Current consumption while Mini Ultra + ADXL362 circuit is  "asleep."

What am I going to do with my motion-activated Arduino?

I have a few ideas... stay tuned!

 

Tags: lowest_power accelerometers motion arduino ADXl362 motion_detection Sensors and MEMS low_power lowpower Show More
  • Share
  • History
  • More
  • Cancel
 
Related Content
  • ADXL362 Arduino How-To
    GenevaCooper
    What you'll need: A 3.3V Arduino, such as: Arduino Pro Mini (3.3V version) - requires FTDI Breakout (3.3V version) Or, Arduino Pro (3.3V version) - requires FTDI Breakout (3.3V version) ...
  • Comment on ADXL362 + Arduino: Using Interrupts to Implement Motion-Activated Sleep
    stefanoc
    Hi, thanks for your tutorial and for your library. I've a problem. I installed your Arduino ADXL362 library; everything works fine and the demo "ADXL362_SimpleRead" has no problem. Instead, loading the...
  • Comment on ADXL362 + Arduino: Using Interrupts to Implement Motion-Activated Sleep
    AnneM
    Stefano, Oh no! So sorry for the trouble... I can verify I'm having the same issue. A month or so ago, I merged in a bunch of pull requests, many of which were excellent improvements. It looks like...
 
Related Content
  • ADXL362 Arduino How-To
    GenevaCooper
    What you'll need: A 3.3V Arduino, such as: Arduino Pro Mini (3.3V version) - requires FTDI Breakout (3.3V version) Or, Arduino Pro (3.3V version) - requires FTDI Breakout (3.3V version) ...
  • Comment on ADXL362 + Arduino: Using Interrupts to Implement Motion-Activated Sleep
    stefanoc
    Hi, thanks for your tutorial and for your library. I've a problem. I installed your Arduino ADXL362 library; everything works fine and the demo "ADXL362_SimpleRead" has no problem. Instead, loading the...
  • Comment on ADXL362 + Arduino: Using Interrupts to Implement Motion-Activated Sleep
    AnneM
    Stefano, Oh no! So sorry for the trouble... I can verify I'm having the same issue. A month or so ago, I merged in a bunch of pull requests, many of which were excellent improvements. It looks like...
analog-devices logo

About Analog Devices

  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue

Get the Latest News

Stay up to date with our latest news and articles about Analog Devices' products, design tools, trainings, and events.

Sign Up Now
  • Instagram page
  • Twitter page
  • Linkedin page
  • Youtube page
  • Facebook
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings
沪ICP备09046653号-1

©2025 Analog Devices, Inc. All Rights Reserved

analog-devices

About Analog Devices

Down Up
  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

Down Up
  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue

Get the Latest News

Stay up to date with our latest news and articles about Analog Devices' products, design tools, trainings, and events.

Instagram page Facebook Twitter page Linkedin page Youtube page
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings
沪ICP备09046653号-1

©2025 Analog Devices, Inc. All Rights Reserved