Skip to content

fix #3 #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
42 changes: 42 additions & 0 deletions examples/AccelerometerTap/AccelerometerTap.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
Arduino LSM6DS3 - Accelerometer Tap

this code is to detect tap
using IMU.accelerationAvailable()

*/

#include <Arduino_LSM6DS3.h>

void setup() {
Serial.begin(9600);

while (!Serial);

while (!IMU.begin()) {
Serial.println("Failed to initialize IMU!");
delay(3000); // wait for 3 sec and check if it can be initialized again
}
}
float tapThreshold = 0.05; //0.05 g acceleration in some direction is considered as tap. it can be changed for the required sensitivity.

int down = 3; // signifying the direction of which is facing downward 1 for x axis; 2 for y axis; 3 for z axis;

void loop() {
float x, y, z;
if (IMU.accelerationAvailable()) {
IMU.readAcceleration(x, y, z);

if ((x > tapThreshold || x < -tapThreshold) && down != 1) {
Serial.println("Tap detected across X-axis");
}

if ((y > tapThreshold || y < -tapThreshold) && down != 2) {
Serial.println("Tap detected across Y-axis");
}

if ((z > tapThreshold || z < -tapThreshold) && down != 3) {
Serial.println("Tap detected across Z-axis");
}
}
}