“SKU:RB-02S096 ADXL335 三軸加速度模塊”的版本間的差異
(→?使用方法) |
(→?資料下載) |
||
第144行: | 第144行: | ||
[[文件:erweima.png|230px|無框|右]] | [[文件:erweima.png|230px|無框|右]] | ||
* 產(chǎn)品資料 | * 產(chǎn)品資料 | ||
? | + | 下載鏈接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA | |
? | + | 提取碼:ziea | |
* 產(chǎn)品購買鏈接:http://lifestyle201.com/goods-775.html | * 產(chǎn)品購買鏈接:http://lifestyle201.com/goods-775.html | ||
* 奧松機器人技術(shù)論壇:http://www.makerspace.cn | * 奧松機器人技術(shù)論壇:http://www.makerspace.cn |
2021年10月8日 (五) 11:42的最后版本
目錄 |
產(chǎn)品概述
在加速度傳感器中有一種是三軸加速度傳感器,同樣的它是基于加速度的基本原理去實現(xiàn)工作的,加速度是個空間矢量,一方面,要準確了解物體的運動狀態(tài),必須測得其三個坐標軸上的分量;另一方面,在預(yù)先不知道物體運動方向的場合下,只有應(yīng)用三軸加速度傳感器來檢測加速度信號。由于三軸加速度傳感器也是基于重力原理的,因此用三軸加速度傳感器可以實現(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)品尺寸圖:
使用方法
- 實驗環(huán)境
- 硬件環(huán)境:
(1)Arduino UNO 控制器 * 1個
(2)三軸加速度傳感器 * 1個
(3)USB 數(shù)據(jù)線 * 1條
- 軟件環(huán)境:Arduino 1.7.10
- 硬件連接
如圖所示,將三軸加速度傳感器連接到 Starduino UNO R3 的模擬接口上
簡單讀取輸出值
- 實驗?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); //默認使用5V的基準電壓則注釋此語句,如果使用自己設(shè)置的基準電壓,例如使用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)視器可以查看當(dāng)前 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); //將模擬量轉(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)); //計算與三軸的夾角對應(yīng)弧度值 float Axr = acos(Rx/R); float Ayr = acos(Ry/R); float Azr = acos(Rz/R); Serial.println(Azr); //將水平弧度值轉(zhuǎn)換為對應(yīng)角度,并通過串口打印 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é)。
資料下載
- 產(chǎn)品資料
下載鏈接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA 提取碼:ziea
- 產(chǎn)品購買鏈接:http://lifestyle201.com/goods-775.html
- 奧松機器人技術(shù)論壇:http://www.makerspace.cn