Keyestudio EASY plug ADXL345 Üç Eksenli Hızlanma Modülü
124,24 TL
EASY plug ADXL345 Üç Eksenli Hızlanma Modülü
Tanıtım
ADXL345 modülü, düşük güce sahip 3 eksenli MEMS ivmeölçerdir
tüketim ve kompakt tasarım. 13 bit yüksek çözünürlüklü,
± 16g'a kadar ölçüm (yerçekimi kuvveti). Dijital çıkış verileri
16 bit ikiye tamamlayıcı olarak biçimlendirilmiş ve
SPI veya I2C dijital arayüz.
Not: Bu modülün EASY fiş kontrol kartı ile birlikte kullanılması gerekir.
Özellikler
- Interface: Easy plug
- 2.0-3.6VDC Besleme Gerilimi
Ultra Düşük Güç: Ölçüm modunda 40uA, 2.5V'da bekleme modunda 0.1uA
Musluk / Çift Musluk Algılama
Serbest Düşme Algılama
Boyut: 40 * 20mm
Ağırlık: 5g
Diagram Giriş
Örnek Kod
#include// place file "Wire.h” under the directory "libraries” of Arduino // Registers for ADXL345 #define ADXL345_ADDRESS (0xA6 >> 1) // address for device is 8 bit but shift to the // right by 1 bit to make it 7 bit because the // wire library only takes in 7 bit addresses #define ADXL345_REGISTER_XLSB (0x32) int accelerometer_data[3]; // void because this only tells the cip to send data to its output register // writes data to the slave's buffer void i2c_write(int address, byte reg, byte data) { // Send output register address Wire.beginTransmission(address); // Connect to device Wire.write(reg); // Send data Wire.write(data); //low byte Wire.endTransmission(); } // void because using pointers // microcontroller reads data from the sensor's input register void i2c_read(int address, byte reg, int count, byte* data) { // Used to read the number of data received int i = 0; // Send input register address Wire.beginTransmission(address); // Connect to device Wire.write(reg); Wire.endTransmission(); // Connect to device Wire.beginTransmission(address); // Request data from slave // Count stands for number of bytes to request Wire.requestFrom(address, count); while(Wire.available()) // slave may send less than requested { char c = Wire.read(); // receive a byte as character data[i] = c; i++; } Wire.endTransmission(); } void init_adxl345() { byte data = 0; i2c_write(ADXL345_ADDRESS, 0x31, 0x0B); // 13-bit mode +_ 16g i2c_write(ADXL345_ADDRESS, 0x2D, 0x08); // Power register i2c_write(ADXL345_ADDRESS, 0x1E, 0x00); // x i2c_write(ADXL345_ADDRESS, 0x1F, 0x00); // Y i2c_write(ADXL345_ADDRESS, 0x20, 0x05); // Z // Check to see if it worked! i2c_read(ADXL345_ADDRESS, 0X00, 1, &data); if(data==0xE5) Serial.println("it work Success"); else Serial.println("it work Fail"); } void read_adxl345() { byte bytes[6]; memset(bytes,0,6); // Read 6 bytes from the ADXL345 i2c_read(ADXL345_ADDRESS, ADXL345_REGISTER_XLSB, 6, bytes); // Unpack data for (int i=0;i<3;++i) { accelerometer_data[i] = (int)bytes[2*i] + (((int)bytes[2*i + 1]) << 8); } } // initialise and start everything void setup() { Wire.begin(); Serial.begin(9600); for(int i=0; i<3; ++i) { accelerometer_data[i] = 0; } init_adxl345(); } void loop() { read_adxl345(); Serial.print("ACCEL: "); Serial.print(float(accelerometer_data[0])*3.9/1000);//3.9mg/LSB scale factor in 13-bit mode 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"); delay(100); }
Kaynak
https://drive.google.com/open?id=1Tf19JMZ9C_47d3Gzar8xb766qp5pAFz2
Bu ürüne ilk yorumu siz yapın!