Descrição
Especificações:
Voltagem: 2.0-3.6VDC
Ultra Low Power: 40uA em modo de medição, 0.1uA em standby @ 2.5V
Tap / Double Tap Detecção
de queda livre Detecção
SPI e as interfaces I2C
Dimensões: 30 x20 mm
Peso: 3g
Código de exemplo
/ *
A circuito:
VCC: 5V
GND: solo
SCL: UM SLC
SDA: UM SDA
Este código de exemplo é de domínio público.
* /
#include
// registos para ADXL345
#define ADXL345_ADDRESS (0xA6 >> 1) // endereço para o dispositivo é de 8 bits, mas mudar para o
// direita por 1 bit para marcar 7 Porque o pouco
// Toma fio na biblioteca só 7 endereços bit
# define ADXL345_REGISTER_XLSB (0x32)
int accelerometer_data [3];
// vazio ESTA Porque só conta a CIP para enviar dados para a saída registrar seu
// grava dados para o buffer do escravo
i2c_write void (endereço int, reg byte, dados byte) {
// Enviar saída de endereço registo
Wire.beginTransmission (endereço);
// Conecte ao dispositivo
Wire.write (reg);
// Envie dados
Wire.write (data); // byte baixo
Wire.endTransmission ();
}
// void porque usando ponteiros
// microcontrolador lê dados do registro de entrada do sensor
void i2c_read (int endereço, byte reg, int count, byte * data) {
// Usado para ler o número de dados recebidos
int i = 0;
// Envia o endereço do registro de entrada
Wire.beginTransmission (address);
// Conecte ao dispositivo
Wire.write (reg);
Wire.endTransmission ();
// Conecte ao dispositivo
Wire.beginTransmission (endereço);
// Solicitar dados do escravo
// Count significa número de bytes para solicitar
Wire.requestFrom (address, count);
while (Wire.available ()) // slave pode enviar menos do que o solicitado
{
char c = Wire.read (); // recebe um byte como
dados de caractere [i] = c;
i ++;
}
Wire.endTransmission ();
}
void init_adxl345 () {
byte data = 0;
i2c_write (ADXL345_ADDRESS, 0x31, 0x0B); // modo de 13 bits + _ 16g
i2c_write (ADXL345_ADDRESS, 0x2D, ??0x08); // Registro de energia
i2c_write (ADXL345_ADDRESS, 0x1E, 0x00); // x
i2c_write (ADXL345_ADDRESS, 0x1F, 0x00); // Y
i2c_write (ADXL345_ADDRESS, 0x20, 0x05); // Z
// Verifique se funcionou!
i2c_read (ADXL345_ADDRESS, 0X00, 1 e dados);
if (data == 0xE5)
Serial.println ("funciona Sucesso");
else
Serial.println ("funciona Fail");
}
void read_adxl345 ()
{
byte bytes [6];
memset (bytes, 0,6);
// Leia 6 bytes da ADXL345
i2c_read (ADXL345_ADDRESS, ADXL345_REGISTER_XLSB, 6 bytes);
// dados Desembale
para (int i = 0; i accelerometer_data [i] = (int) bytes [2 * i] + (((int) bytes [2 * i + 1])}
}
// inicializar e iniciar tudo
vazio configuração () {
Wire.begin ();
Serial.begin (9600);
para (int i = 0; i accelerometer_data [i] = 0;
}
init_adxl345 ();
}
vazio laço () {
read_adxl345 ();
Serial.print ( "ACCEL");
Serial.print (([0]) * 3.9 / 1000 flutuador accelerometer_data); // 3,9 mg / LSB factor de escala no modo de 13 bits
Serial.print (" t");
Serial.print (float (accelerometer_data [1]) * 3,9 / 1000);
Serial.print (" t");
Serial.print (float (accelerometer_data [2]) * 3,9 / 1000);
Serial.print (" n");
atraso (100);
}
Link: http://wiki.keyestudio.com/index.php/Ks0012_keyestudio_ADXL345_Three_Axis_Acceleration_Module