“SKU:RB-02S096 ADXL335 三軸加速度模塊”的版本間的差異
(→?使用方法) |
(→?資料下載) |
||
(未顯示1個(gè)用戶的9個(gè)中間版本) | |||
第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|縮略圖|居中]] | ||
+ | |||
==使用方法== | ==使用方法== | ||
* 實(shí)驗(yàn)環(huán)境 | * 實(shí)驗(yàn)環(huán)境 | ||
:硬件環(huán)境:<br/> | :硬件環(huán)境:<br/> | ||
? | + | (1)Arduino UNO 控制器 * 1個(gè)<br/> | |
(2)[http://lifestyle201.com/goods-775.html 三軸加速度傳感器] * 1個(gè)<br/> | (2)[http://lifestyle201.com/goods-775.html 三軸加速度傳感器] * 1個(gè)<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/> | ||
第30行: | 第35行: | ||
* 硬件連接 | * 硬件連接 | ||
如圖所示,將三軸加速度傳感器連接到 Starduino UNO R3 的模擬接口上 | 如圖所示,將三軸加速度傳感器連接到 Starduino UNO R3 的模擬接口上 | ||
+ | [[文件:02S09602.png|500px|縮略圖|居中]] | ||
+ | |||
+ | ===簡(jiǎn)單讀取輸出值=== | ||
+ | * 實(shí)驗(yàn)?zāi)康模鹤x取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'> | ||
+ | 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; | ||
+ | } | ||
+ | </pre> | ||
+ | * 程序效果 | ||
+ | 通過(guò)串口監(jiān)視器可以查看當(dāng)前 X、Y、Z 軸輸出的模擬量值。<br/> | ||
+ | [[文件:adxl3350001.png|500px|縮略圖|居中]] | ||
+ | |||
+ | ===檢測(cè)角度值=== | ||
+ | * 例子程序 | ||
+ | <pre style='color:blue'> | ||
+ | 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); | ||
+ | }</pre> | ||
+ | * 程序效果 | ||
+ | 說(shuō)明:程序中,ADXL335 靈敏度及 0g 偏置電平使用的均為典型值(ADXL335 芯片手冊(cè)可查),如果測(cè)試結(jié)果與實(shí)際有誤差,可通過(guò)修改兩個(gè)值來(lái)改變 Vzerog,Sensitivity 兩個(gè)參數(shù)初始值來(lái)調(diào)節(jié)。 | ||
+ | [[文件:02S00000.jpg|600px|縮略圖|居中]] | ||
+ | |||
+ | ==資料下載== | ||
+ | [[文件:erweima.png|230px|無(wú)框|右]] | ||
+ | * 產(chǎn)品資料 | ||
+ | 下載鏈接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA | ||
+ | 提取碼:ziea | ||
+ | * 產(chǎn)品購(gòu)買鏈接:http://lifestyle201.com/goods-775.html | ||
+ | * 奧松機(jī)器人技術(shù)論壇:http://www.makerspace.cn |
2021年10月8日 (五) 11:42的最后版本
目錄 |
產(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)品類型:模擬傳感器
2、接口類型: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)品尺寸圖:
使用方法
- 實(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 的模擬接口上
簡(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 軸輸出的模擬量值。
檢測(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é)。
資料下載
- 產(chǎn)品資料
下載鏈接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA 提取碼:ziea
- 產(chǎn)品購(gòu)買鏈接:http://lifestyle201.com/goods-775.html
- 奧松機(jī)器人技術(shù)論壇:http://www.makerspace.cn