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

來自ALSROBOT WiKi
2016年12月14日 (三) 13:52Arduino77討論 | 貢獻的版本

跳轉至: 導航、 搜索
02S09601.png

目錄

產(chǎn)品概述

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

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

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

  • X:加速度計 X 軸
  • Y:加速度計 Y 軸
  • Z:加速度計 Z 軸
  • -:電源負極
  • +:電源正極

5、檢測范圍:

  • 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

使用方法

  • 實驗環(huán)境
硬件環(huán)境:

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

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

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

02S09602.png

簡單讀取輸出值

  • 例子程序
void setup()
{
    Serial.begin(115200);
}
void loop()
{
      int x,y,z;  
      Serial.print("X OUTPUT");
      Serial.println(analogRead(A0));
      Serial.print("Y OUTPUT");
      Serial.println(analogRead(A1));
      Serial.print("Z OUTPUT");
      Serial.println(analogRead(A2));
 }
  • 程序效果

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

輸出角度值

  • 例子程序
float Vzerog = 1.5;//ADXL335 三軸加速度計 0g 基準電壓典型值
int Sensitivity = 300;//ADXL335 三軸加速度計靈敏度參數(shù)典型值
void setup()
{
    Serial.begin(115200);
}
void loop()
{
  //獲取ADLX335三軸加速度計模擬量
  int x = analogRead(A0);
  int y = analogRead(A1);
  int z = analogRead(A2);
 //將模擬量轉換成電壓值
  float vx = x * 5.0/1023.0;
  float vy = y * 5.0/1023.0;
  float vz = z * 5.0/1023.0;
 //將模擬量轉換成每個軸向的g值,1.5是三軸加速度計的0g基準電壓,單位為V,300是三軸加速度計的靈敏度,單位是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));
 //計算與三軸的夾角對應弧度值
  float Axr = acos(Rx/R);
  float Ayr = acos(Ry/R);
  float Azr = acos(Rz/R);
  Serial.println(Azr);
 //將水平弧度值轉換為對應角度,并通過串口打印
  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);  
 }
  • 程序效果

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

02S00000.jpg

產(chǎn)品相關推薦

Erweima.png

產(chǎn)品購買地址