Módulo Aceleração p/ Funduino - ADXL345
€6,65
€8,75
Adicionar ao Carrinho de Compras- Disponibilidade: Em stock
- SKU :: FUN-KS0012
- Tipo:: Robotica e prototipagem
- Marca:: Keyestudio
Descrição
Especificações: Voltagem: 2.0-3.6VDCUltra 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 baixoWire.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 bitsSerial.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