Danh sách sản phẩm

Cảm biến gia tốc GY-291 ADXL345

Mã sản phẩm: IMA040   |   Tình trạng: Còn 10 sản phẩm có sẵn
40.000₫

Mô tả sản phẩm

GY-291 ADXL345 Mạch Cảm Biến Gia Tốc là một máy đo gia tốc 3 trục nhỏ, mỏng, công suất thấp với độ phân giải cao (13 bit) đo lên đến ± 16g. Dữ liệu đầu ra kỹ thuật số được định dạng dưới dạng bổ sung 16 bit hai chiều và có thể truy cập thông qua giao diện kỹ thuật số SPI (3 hoặc 4 dây) hoặc I2C.

Cảm biến gia tốc này rất phù hợp cho các ứng dụng thiết bị di động. Nó đo gia tốc tĩnh của trọng lực trong các ứng dụng cảm biến độ nghiêng, cũng như gia tốc động do chuyển động hoặc sốc. Độ phân giải cao của nó (4 mg/LSB) cho phép đo các thay đổi độ nghiêng dưới 1,0°.

Thông số kỹ thuật:

  • Điện áp cấp: 3~5VDC
  • Chuẩn giao tiếp: I2C/SPI
  • Phạm vi đo: ±2g±16g
  • 3 trục, ±2g±4g±8g±16g
  • Kích thước: 14x19mm

Sơ đồ chân:


Code tham khảo Arduino: 

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
/* Assign a unique ID to this sensor at the same time */
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);

void displaySensorDetails(void)
{
sensor_t sensor;
accel.getSensor(&sensor);
Serial.println("------------------------------------");
Serial.print ("Sensor: "); Serial.println(sensor.name);
Serial.print ("Driver Ver: "); Serial.println(sensor.version);
Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id);
Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" m/s^2");
Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" m/s^2");
Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" m/s^2"); 
Serial.println("------------------------------------");
Serial.println("");
delay(500);
}

void displayDataRate(void)
{
Serial.print ("Data Rate: ");

switch(accel.getDataRate())
{
case ADXL345_DATARATE_3200_HZ:
Serial.print ("3200 "); 
break;
case ADXL345_DATARATE_1600_HZ:
Serial.print ("1600 "); 
break;
case ADXL345_DATARATE_800_HZ:
Serial.print ("800 "); 
break;
case ADXL345_DATARATE_400_HZ:
Serial.print ("400 "); 
break;
case ADXL345_DATARATE_200_HZ:
Serial.print ("200 "); 
break;
case ADXL345_DATARATE_100_HZ:
Serial.print ("100 "); 
break;
case ADXL345_DATARATE_50_HZ:
Serial.print ("50 "); 
break;
case ADXL345_DATARATE_25_HZ:
Serial.print ("25 "); 
break;
case ADXL345_DATARATE_12_5_HZ:
Serial.print ("12.5 "); 
break;
case ADXL345_DATARATE_6_25HZ:
Serial.print ("6.25 "); 
break;
case ADXL345_DATARATE_3_13_HZ:
Serial.print ("3.13 "); 
break;
case ADXL345_DATARATE_1_56_HZ:
Serial.print ("1.56 "); 
break;
case ADXL345_DATARATE_0_78_HZ:
Serial.print ("0.78 "); 
break;
case ADXL345_DATARATE_0_39_HZ:
Serial.print ("0.39 "); 
break;
case ADXL345_DATARATE_0_20_HZ:
Serial.print ("0.20 "); 
break;
case ADXL345_DATARATE_0_10_HZ:
Serial.print ("0.10 "); 
break;
default:
Serial.print ("???? "); 
break;
} 
Serial.println(" Hz"); 
}

void displayRange(void)
{
Serial.print ("Range: +/- ");

switch(accel.getRange())
{
case ADXL345_RANGE_16_G:
Serial.print ("16 "); 
break;
case ADXL345_RANGE_8_G:
Serial.print ("8 "); 
break;
case ADXL345_RANGE_4_G:
Serial.print ("4 "); 
break;
case ADXL345_RANGE_2_G:
Serial.print ("2 "); 
break;
default:
Serial.print ("?? "); 
break;
} 
Serial.println(" g"); 
}

void setup(void) 
{
Serial.begin(9600);
Serial.println("Accelerometer Test"); Serial.println("");

/* Initialise the sensor */
if(!accel.begin())
{
/* There was a problem detecting the ADXL345 ... check your connections */
Serial.println("Ooops, no ADXL345 detected ... Check your wiring!");
while(1);
}

/* Set the range to whatever is appropriate for your project */
accel.setRange(ADXL345_RANGE_16_G);
// displaySetRange(ADXL345_RANGE_8_G);
// displaySetRange(ADXL345_RANGE_4_G);
// displaySetRange(ADXL345_RANGE_2_G);

/* Display some basic information on this sensor */
displaySensorDetails();

/* Display additional settings (outside the scope of sensor_t) */
displayDataRate();
displayRange();
Serial.println("");
}

void loop(void) 
{
/* Get a new sensor event */ 
sensors_event_t event; 
accel.getEvent(&event);

/* Display the results (acceleration is measured in m/s^2) */
Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" ");
Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" ");
Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");Serial.println("m/s^2 ");
delay(500);
}

Tài liệu tham khảo:

Video tham khảo:

Khách hàng nhận xét