first commit
This commit is contained in:
72
include/drivers/AccelerometerController.h
Normal file
72
include/drivers/AccelerometerController.h
Normal file
@@ -0,0 +1,72 @@
|
||||
#ifndef ADXL345_CONTROLLER_H
|
||||
#define ADXL345_CONTROLLER_H
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <Wire.h>
|
||||
|
||||
#define ADXL345_DEVID 0x00
|
||||
#define ADXL345_THRESH_TAP 0x1D
|
||||
#define ADXL345_OFSX 0x1E
|
||||
#define ADXL345_OFSY 0x1F
|
||||
#define ADXL345_OFSZ 0x20
|
||||
#define ADXL345_DUR 0x21
|
||||
#define ADXL345_LATENT 0x22
|
||||
#define ADXL345_WINDOW 0x23
|
||||
#define ADXL345_THRESH_ACT 0x24
|
||||
#define ADXL345_THRESH_INACT 0x25
|
||||
#define ADXL345_TIME_INACT 0x26
|
||||
#define ADXL345_ACT_INACT_CTL 0x27
|
||||
#define ADXL345_THRESH_FF 0x28
|
||||
#define ADXL345_TIME_FF 0x29
|
||||
#define ADXL345_TAP_AXES 0x2A
|
||||
#define ADXL345_ACT_TAP_STATUS 0x2B
|
||||
#define ADXL345_BW_RATE 0x2C
|
||||
#define ADXL345_POWER_CTL 0x2D
|
||||
#define ADXL345_INT_ENABLE 0x2E
|
||||
#define ADXL345_INT_MAP 0x2F
|
||||
#define ADXL345_INT_SOURCE 0x30
|
||||
#define ADXL345_DATA_FORMAT 0x31
|
||||
#define ADXL345_DATAX0 0x32
|
||||
#define ADXL345_DATAX1 0x33
|
||||
#define ADXL345_DATAY0 0x34
|
||||
#define ADXL345_DATAY1 0x35
|
||||
#define ADXL345_DATAZ0 0x36
|
||||
#define ADXL345_DATAZ1 0x37
|
||||
#define ADXL345_FIFO_CTL 0x38
|
||||
#define ADXL345_FIFO_STATUS 0x39
|
||||
|
||||
#define DEFAULT_MIN_READ_INTERVAL 50
|
||||
|
||||
class ADXL345Controller {
|
||||
private:
|
||||
uint8_t _deviceAddress;
|
||||
unsigned long _lastReadTime;
|
||||
unsigned long _minReadInterval;
|
||||
double _lastX;
|
||||
double _lastY;
|
||||
double _lastZ;
|
||||
bool _lastReadSuccess;
|
||||
|
||||
void setRegister(uint8_t reg, uint8_t value);
|
||||
uint8_t readRegister(uint8_t reg);
|
||||
void readRegisters(uint8_t reg, uint8_t count, uint8_t *buffer);
|
||||
|
||||
public:
|
||||
ADXL345Controller(uint8_t deviceAddress = 0x53);
|
||||
|
||||
void begin();
|
||||
|
||||
bool read();
|
||||
|
||||
double getX();
|
||||
double getY();
|
||||
double getZ();
|
||||
|
||||
bool isLastReadSuccessful() const;
|
||||
void setMinReadInterval(unsigned long interval);
|
||||
void setRange(uint8_t range);
|
||||
void setDataRate(uint8_t rate);
|
||||
void setOffsets(int8_t xOffset, int8_t yOffset, int8_t zOffset);
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user