Voila le code que j'ai pour l'instant :
#include <Wire.h>
#include <Adxl345.h>
ADXL345 adxl; //variable adxl is an instance of the ADXL345 library
void setup(){
Serial.begin(115200);//115200
pinMode(13, OUTPUT);
pinMode(39, OUTPUT);
pinMode(41, OUTPUT);
pinMode(43, OUTPUT);
pinMode(7, OUTPUT);
pinMode(44 , OUTPUT);
pinMode(42 , OUTPUT);
pinMode(40 , OUTPUT);
pinMode(38 , OUTPUT);
pinMode(36 , OUTPUT);
pinMode(52 , OUTPUT);
pinMode(53 , OUTPUT);
pinMode(51 , OUTPUT);
pinMode(50 , OUTPUT);
pinMode(49 , OUTPUT);
pinMode(48 , OUTPUT);
pinMode(47 , OUTPUT);
pinMode(46 , OUTPUT);
pinMode(36, OUTPUT);
pinMode(35, INPUT);
pinMode(45, INPUT);
pinMode(37, INPUT);
pinMode(34, INPUT);
adxl.powerOn();//réglage accéléromètre
//set activity/ inactivity thresholds (0-255)
adxl.setActivityThreshold(75); //62.5mg per increment
adxl.setInactivityThreshold(75); //62.5mg per increment
adxl.setTimeInactivity(255); // how many seconds of no activity is inactive?
//look of activity movement on this axes - 1 == on; 0 == off
adxl.setActivityX(1);
adxl.setActivityY(1);
adxl.setActivityZ(1);
//look of inactivity movement on this axes - 1 == on; 0 == off
adxl.setInactivityX(0);
adxl.setInactivityY(0);
adxl.setInactivityZ(0);
//look of tap movement on this axes - 1 == on; 0 == off
adxl.setTapDetectionOnX(1);
adxl.setTapDetectionOnY(1);
adxl.setTapDetectionOnZ(1);
//set values for what is a tap, and what is a double tap (0-255)
adxl.setTapThreshold(37); //62.5mg per increment
adxl.setTapDuration(11); //625?s per increment
adxl.setDoubleTapLatency(120); //1.25ms per increment
adxl.setDoubleTapWindow(220); //1.25ms per increment
//set values for what is considered freefall (0-255)
adxl.setFreeFallThreshold(7); //(5 - 9) recommended - 62.5mg per increment
adxl.setFreeFallDuration(45); //(20 - 70) recommended - 5ms per increment
//setting all interupts to take place on int pin 1
//I had issues with int pin 2, was unable to reset it
adxl.setInterruptMapping( ADXL345_INT_SINGLE_TAP_BIT, ADXL345_INT1_PIN );
adxl.setInterruptMapping( ADXL345_INT_DOUBLE_TAP_BIT, ADXL345_INT1_PIN );
adxl.setInterruptMapping( ADXL345_INT_FREE_FALL_BIT, ADXL345_INT1_PIN );
adxl.setInterruptMapping( ADXL345_INT_ACTIVITY_BIT, ADXL345_INT1_PIN );
adxl.setInterruptMapping( ADXL345_INT_INACTIVITY_BIT, ADXL345_INT1_PIN );
//register interupt actions - 1 == on; 0 == off
adxl.setInterrupt( ADXL345_INT_SINGLE_TAP_BIT, 1);
adxl.setInterrupt( ADXL345_INT_DOUBLE_TAP_BIT, 1);
adxl.setInterrupt( ADXL345_INT_FREE_FALL_BIT, 1);
adxl.setInterrupt( ADXL345_INT_ACTIVITY_BIT, 1);
adxl.setInterrupt( ADXL345_INT_INACTIVITY_BIT, 1);
// unsigned char val;
// send the mouse start up
// while(mouse.write(0xAA)!=0);
// while(mouse.write(0x00)!=0);
Serial.println ("on");
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
}
void loop()
{
if (Wire.available ()) digitalWrite(13, HIGH);
else digitalWrite(13, LOW);
//Boring accelerometer stuff
int x,y,z;
adxl.readAccel(&x, &y, &z); //read the accelerometer values and store them in variables x,y,z
//Fun Stuff!
//read interrupts source and look for triggerd actions
//getInterruptSource clears all triggered actions after returning value
//so do not call again until you need to recheck for triggered actions
byte interrupts = adxl.getInterruptSource();
// freefall
if(adxl.triggered(interrupts, ADXL345_FREE_FALL)){
Serial.println("freefall");
//add code here to do when freefall is sensed
}
//ACTIVITY
if(adxl.triggered(interrupts, ADXL345_ACTIVITY)){
Serial.println("Activity");
digitalWrite(43, HIGH);
}
else digitalWrite(43, LOW);
//tap
if(adxl.triggered(interrupts, ADXL345_SINGLE_TAP))
{
//double tap
if(adxl.triggered(interrupts, ADXL345_DOUBLE_TAP))
{
digitalWrite(39, HIGH);
Serial.println("double tap");
}
else
{
digitalWrite(41, HIGH);
Serial.println("tap");
}
}
Serial.print ("Acc : ");
Serial.print ('x');
Serial.print (x, DEC);
Serial.print ("\t");
Serial.print ('y');
Serial.print (y, DEC);
Serial.print ("\t");
Serial.print ('z');
Serial.print (z, DEC);
Serial.print ("\t");
delay(175);
}
voila donc ce que je voudrait c'est pouvoir utiliser les variables x,y,z renvoyées par l’accéléromètre pour émuler la souris de mon pc mais je ne sait pas ce qu'il faut utiliser coté pc.