Skip to main content

Demo de Detección de Movimiento de Toque en Wio Terminal

Este repositorio demuestra cómo Wio Terminal utiliza el acelerómetro integrado para detectar el movimiento de toque de un solo clic o doble clic.

Inicialización del Acelerómetro de 3 Ejes

Para inicializar el acelerómetro en Wio Terminal, por favor visita Primeros Pasos con IMU para más información.

Configuraciones de Sensibilidad de Toque

Para la sensibilidad del toque, ajusta el valor de THRESHOLD según el rango de escala del IMU:

Rango de Escala2g4g8g16g
THRESHOLD40-8020-4010-205-10

Clic simple o Doble clic

Para usar la función click, simplemente llámala como sigue, donde el primer parámetro se usa para determinar la detección de clic simple o doble clic (1 o 2), y el segundo parámetro es para el valor de umbral.

void setup() {
...
lis.click(1,THRESHOLD);
//¡Señal de interrupción para activar cuando se detecta un toque!
attachInterrupt(digitalPinToInterrupt(GYROSCOPE_INT1), count, RISING);
}

Nota: GYROSCOPE_INT1 es el Pin de Interrupción 1 del Acelerómetro.

Código Completo

#include"LIS3DHTR.h"
LIS3DHTR<TwoWire> lis;

//Adjust this threshold value for sensitivity of clicking
#define THRESHOLD 40
uint8_t cnt=0;

void count() {
cnt++;
Serial.print("Tap Count: ");
Serial.println(cnt);
}

void setup() {
Serial.begin(115200);
lis.begin(Wire1);

if (!lis) {
Serial.println("ERROR");
while(1);
}
lis.setOutputDataRate(LIS3DHTR_DATARATE_25HZ); //Data output rate
lis.setFullScaleRange(LIS3DHTR_RANGE_2G); //Scale range set to 2g

//1 for single click, 2 for double click
//smaller the threshold value, the more sensitive
lis.click(1, THRESHOLD);
//Interrupt signal to trigger when a tap is detected!
attachInterrupt(digitalPinToInterrupt(GYROSCOPE_INT1), count, RISING);
}

void loop() {
}
Loading Comments...