SKU:RB-02S096 ADXL335 三軸加速度模塊

來(lái)自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
02S09601.png

目錄

產(chǎn)品概述

在加速度傳感器中有一種是三軸加速度傳感器,同樣的它是基于加速度的基本原理去實(shí)現(xiàn)工作的,加速度是個(gè)空間矢量,一方面,要準(zhǔn)確了解物體的運(yùn)動(dòng)狀態(tài),必須測(cè)得其三個(gè)坐標(biāo)軸上的分量;另一方面,在預(yù)先不知道物體運(yùn)動(dòng)方向的場(chǎng)合下,只有應(yīng)用三軸加速度傳感器來(lái)檢測(cè)加速度信號(hào)。由于三軸加速度傳感器也是基于重力原理的,因此用三軸加速度傳感器可以實(shí)現(xiàn)雙軸正負(fù)90度或雙軸0-360度的傾角,通過(guò)校正后期精度要高于雙軸加速度傳感器大于測(cè)量角度為60度的情況。

產(chǎn)品參數(shù)

1、產(chǎn)品類(lèi)型:模擬傳感器
2、接口類(lèi)型:KF2510
3、工作電壓:5V
4、引腳定義:

  • X:加速度計(jì) X 軸
  • Y:加速度計(jì) Y 軸
  • Z:加速度計(jì) Z 軸
  • -:電源負(fù)極
  • +:電源正極

5、檢測(cè)范圍:

  • X 軸輸出值:靜止輸出偏差:±1,輸出范圍:275 - 425
  • Y 軸輸出值:靜止輸出偏差:±1,輸出范圍:270 - 420
  • Z 軸輸出值:靜止輸出偏差:±1,輸出范圍:280 - 425

6、工作溫度:-25℃~+85℃
7、產(chǎn)品尺寸(mm):30 x 25 mm
8、固定孔尺寸(mm):23 x 18 mm
9、重量(g):3g


  • 產(chǎn)品尺寸圖:
Size023.jpg

使用方法

  • 實(shí)驗(yàn)環(huán)境
硬件環(huán)境:

(1)Arduino UNO 控制器 * 1個(gè)
(2)三軸加速度傳感器 * 1個(gè)
(3)USB 數(shù)據(jù)線 * 1條

軟件環(huán)境:Arduino 1.7.10
  • 硬件連接

如圖所示,將三軸加速度傳感器連接到 Starduino UNO R3 的模擬接口上

02S09602.png

簡(jiǎn)單讀取輸出值

  • 實(shí)驗(yàn)?zāi)康模鹤x取ADXL335模塊 x、y、z 軸的輸出模擬量大小
  • 硬件連接:

(1)ADXL335 模塊的 X 連接 UNO 控制器的 A0
(1)ADXL335 模塊的 Y 連接 UNO 控制器的 A1
(1)ADXL335 模塊的 Z 連接 UNO 控制器的 A2
(1)ADXL335 模塊的 + 連接 UNO 控制器的 3.3V
(1)ADXL335 模塊的 - 連接 UNO 控制器的 GND

  • 例子程序
const int xInput = A0;// X axis input use Analog 0 pin
const int yInput = A1;//Y 1 pin
const int zInput = A2;//Z 2 pin
const int sampleSize = 10;
 
void setup() 
{
  //analogReference(EXTERNAL);
//默認(rèn)使用5V的基準(zhǔn)電壓則注釋此語(yǔ)句,如果使用自己設(shè)置的基準(zhǔn)電壓,例如使用3.3V基準(zhǔn)電壓,只需要將UNO的AREF引腳連接到3.3V,并取消對(duì)本句話的注釋
  Serial.begin(9600);
}
 
void loop() 
{
  int xRaw = ReadAxis(xInput);
  int yRaw = ReadAxis(yInput);
  int zRaw = ReadAxis(zInput);
  
  Serial.print ("x:");
  Serial.print (xRaw);
  
  Serial.print ("y:");
  Serial.print (yRaw);
  
  Serial.print ("z:");
  Serial.print (zRaw);
   Serial.println("");//return
  
  delay(500);
  }


int ReadAxis(int axisPin)
{
  long reading = 0;
  analogRead(axisPin);
  delay(1);
  for (int i = 0; i < sampleSize; i++)
  {
    reading += analogRead(axisPin);
  }
  return reading/sampleSize;
}
  • 程序效果

通過(guò)串口監(jiān)視器可以查看當(dāng)前 X、Y、Z 軸輸出的模擬量值。

Adxl3350001.png

檢測(cè)角度值

  • 例子程序
float Vzerog = 1.5;//ADXL335 三軸加速度計(jì) 0g 基準(zhǔn)電壓典型值
int Sensitivity = 300;//ADXL335 三軸加速度計(jì)靈敏度參數(shù)典型值
void setup()
{
    Serial.begin(115200);
}
void loop()
{
  //獲取ADLX335三軸加速度計(jì)模擬量
  int x = analogRead(A0);
  int y = analogRead(A1);
  int z = analogRead(A2);
 //將模擬量轉(zhuǎn)換成電壓值
  float vx = x * 5.0/1024.0;
  float vy = y * 5.0/1024.0;
  float vz = z * 5.0/1024.0;
 //將模擬量轉(zhuǎn)換成每個(gè)軸向的g值,1.5是三軸加速度計(jì)的0g基準(zhǔn)電壓,單位為V,300是三軸加速度計(jì)的靈敏度,單位是mv/g
  float Rx = (vx - Vzerog)/(Sensitivity / 1000.0);
  float Ry = (vy - Vzerog)/(Sensitivity / 1000.0);
  float Rz = (vz - Vzerog)/(Sensitivity / 1000.0);
 //得出重力加速度g值大小
  float R = sqrt(pow(Rx,2) + pow(Ry,2) + pow(Rz,2));
 //計(jì)算與三軸的夾角對(duì)應(yīng)弧度值
  float Axr = acos(Rx/R);
  float Ayr = acos(Ry/R);
  float Azr = acos(Rz/R);
  Serial.println(Azr);
 //將水平弧度值轉(zhuǎn)換為對(duì)應(yīng)角度,并通過(guò)串口打印
  float anglex = 180.0 * Axr / 3.14;
  float angley = 180.0 * Ayr / 3.14;
  float anglez = 180.0 * Azr / 3.14;
  Serial.print("anglex = ");
  Serial.print(anglex);
  Serial.print("  angley = ");
  Serial.print(angley);
  Serial.print("  anglez = ");
  Serial.println(anglez);
  delay(300);  
 }
  • 程序效果

說(shuō)明:程序中,ADXL335 靈敏度及 0g 偏置電平使用的均為典型值(ADXL335 芯片手冊(cè)可查),如果測(cè)試結(jié)果與實(shí)際有誤差,可通過(guò)修改兩個(gè)值來(lái)改變 Vzerog,Sensitivity 兩個(gè)參數(shù)初始值來(lái)調(diào)節(jié)。

02S00000.jpg

資料下載

Erweima.png
  • 產(chǎn)品資料

下載鏈接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA 提取碼:ziea