“SKU:RB-02S096 ADXL335 三軸加速度模塊”的版本間的差異

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導航搜索
?輸出角度值
?資料下載
 
(未顯示1個用戶的6個中間版本)
第20行: 第20行:
 
8、固定孔尺寸(mm):23 x 18 mm<br/>
 
8、固定孔尺寸(mm):23 x 18 mm<br/>
 
9、重量(g):3g<br/>
 
9、重量(g):3g<br/>
 +
 +
 +
* 產(chǎn)品尺寸圖:
 +
[[文件:size023.jpg|500px|縮略圖|居中]]
 +
 
==使用方法==
 
==使用方法==
 
* 實驗環(huán)境
 
* 實驗環(huán)境
 
:硬件環(huán)境:<br/>
 
:硬件環(huán)境:<br/>
?
(1)[http://lifestyle201.com/goods-546.html Starduino UNO R3 控制器] * 1個<br/>
+
(1)Arduino UNO 控制器 * 1個<br/>
 
(2)[http://lifestyle201.com/goods-775.html 三軸加速度傳感器] * 1個<br/>
 
(2)[http://lifestyle201.com/goods-775.html 三軸加速度傳感器] * 1個<br/>
 
(3)[http://lifestyle201.com/goods-90.html USB 數(shù)據(jù)線] * 1條<br/>
 
(3)[http://lifestyle201.com/goods-90.html USB 數(shù)據(jù)線] * 1條<br/>
第33行: 第38行:
  
 
===簡單讀取輸出值===
 
===簡單讀取輸出值===
 +
* 實驗目的:讀取ADXL335模塊 x、y、z 軸的輸出模擬量大小
 +
* 硬件連接:
 +
(1)ADXL335 模塊的 X 連接 UNO 控制器的 A0<br/>
 +
(1)ADXL335 模塊的 Y 連接 UNO 控制器的 A1<br/>
 +
(1)ADXL335 模塊的 Z 連接 UNO 控制器的 A2<br/>
 +
(1)ADXL335 模塊的 + 連接 UNO 控制器的 3.3V<br/>
 +
(1)ADXL335 模塊的 - 連接 UNO 控制器的 GND<br/>
 
* 例子程序
 
* 例子程序
 
<pre style='color:blue'>
 
<pre style='color:blue'>
?
void setup()
+
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()  
 
{
 
{
?
    Serial.begin(115200);
+
  //analogReference(EXTERNAL);
 +
//默認使用5V的基準電壓則注釋此語句,如果使用自己設置的基準電壓,例如使用3.3V基準電壓,只需要將UNO的AREF引腳連接到3.3V,并取消對本句話的注釋
 +
  Serial.begin(9600);
 
}
 
}
?
void loop()
+
 +
void loop()  
 
{
 
{
?
      int x,y,z;
+
  int xRaw = ReadAxis(xInput);
?
      Serial.print("X OUTPUT");
+
  int yRaw = ReadAxis(yInput);
?
      Serial.println(analogRead(A0));
+
  int zRaw = ReadAxis(zInput);
?
      Serial.print("Y OUTPUT");
+
 
?
      Serial.println(analogRead(A1));
+
  Serial.print ("x:");
?
      Serial.print("Z OUTPUT");
+
  Serial.print (xRaw);
?
      Serial.println(analogRead(A2));
+
 
?
}
+
  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;
 +
}
 
</pre>
 
</pre>
 
* 程序效果
 
* 程序效果
 
通過串口監(jiān)視器可以查看當前 X、Y、Z 軸輸出的模擬量值。<br/>
 
通過串口監(jiān)視器可以查看當前 X、Y、Z 軸輸出的模擬量值。<br/>
 +
[[文件:adxl3350001.png|500px|縮略圖|居中]]
  
 
===檢測角度值===
 
===檢測角度值===
第69行: 第111行:
 
   int z = analogRead(A2);
 
   int z = analogRead(A2);
 
  //將模擬量轉(zhuǎn)換成電壓值
 
  //將模擬量轉(zhuǎn)換成電壓值
?
   float vx = x * 5.0/1023.0;
+
   float vx = x * 5.0/1024.0;
?
   float vy = y * 5.0/1023.0;
+
   float vy = y * 5.0/1024.0;
?
   float vz = z * 5.0/1023.0;
+
   float vz = z * 5.0/1024.0;
 
  //將模擬量轉(zhuǎn)換成每個軸向的g值,1.5是三軸加速度計的0g基準電壓,單位為V,300是三軸加速度計的靈敏度,單位是mv/g
 
  //將模擬量轉(zhuǎn)換成每個軸向的g值,1.5是三軸加速度計的0g基準電壓,單位為V,300是三軸加速度計的靈敏度,單位是mv/g
 
   float Rx = (vx - Vzerog)/(Sensitivity / 1000.0);
 
   float Rx = (vx - Vzerog)/(Sensitivity / 1000.0);
第99行: 第141行:
 
[[文件:02S00000.jpg|600px|縮略圖|居中]]
 
[[文件:02S00000.jpg|600px|縮略圖|居中]]
  
?
==產(chǎn)品相關推薦==
+
==資料下載==
 
[[文件:erweima.png|230px|無框|右]]
 
[[文件:erweima.png|230px|無框|右]]
?
===產(chǎn)品購買地址===
+
* 產(chǎn)品資料
?
* [http://lifestyle201.com/goods-775.html 三軸加速度模塊]
+
下載鏈接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA
?
* [http://wenku.baidu.com/link?url=XEh-hnMvIK8dILyN76HWp-O5DpVhJHWIzgVzV2hUryHAyAZl0K_cpOD64i_GqInxcvcWz1Nj7yBw4q2AVo4djQFhvnhtWNUoeC0lt5KzH__ ADXL335 芯片手冊]
+
提取碼:ziea
 +
* 產(chǎn)品購買鏈接:http://lifestyle201.com/goods-775.html
 +
* 奧松機器人技術論壇:http://www.makerspace.cn

2021年10月8日 (五) 11:42的最后版本

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


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

使用方法

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

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

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

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

02S09602.png

簡單讀取輸出值

  • 實驗目的:讀取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);
//默認使用5V的基準電壓則注釋此語句,如果使用自己設置的基準電壓,例如使用3.3V基準電壓,只需要將UNO的AREF引腳連接到3.3V,并取消對本句話的注釋
  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;
}
  • 程序效果

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

Adxl3350001.png

檢測角度值

  • 例子程序
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);
 //將模擬量轉(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值,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);
 //將水平弧度值轉(zhuǎn)換為對應角度,并通過串口打印
  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 芯片手冊可查),如果測試結(jié)果與實際有誤差,可通過修改兩個值來改變 Vzerog,Sensitivity 兩個參數(shù)初始值來調(diào)節(jié)。

02S00000.jpg

資料下載

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

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