“SKU:RB-02S096 ADXL335 三軸加速度模塊”的版本間的差異
(→?輸出角度值) |
(→?資料下載) |
||
(未顯示1個(gè)用戶(hù)的6個(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ù)線(xiàn)] * 1條<br/> | (3)[http://lifestyle201.com/goods-90.html USB 數(shù)據(jù)線(xiàn)] * 1條<br/> | ||
第33行: | 第38行: | ||
===簡(jiǎn)單讀取輸出值=== | ===簡(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'> | <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() | ||
{ | { | ||
? | + | //analogReference(EXTERNAL); | |
+ | //默認(rèn)使用5V的基準(zhǔn)電壓則注釋此語(yǔ)句,如果使用自己設(shè)置的基準(zhǔn)電壓,例如使用3.3V基準(zhǔn)電壓,只需要將UNO的AREF引腳連接到3.3V,并取消對(duì)本句話(huà)的注釋 | ||
+ | Serial.begin(9600); | ||
} | } | ||
? | void loop() | + | |
+ | 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> | </pre> | ||
* 程序效果 | * 程序效果 | ||
通過(guò)串口監(jiān)視器可以查看當(dāng)前 X、Y、Z 軸輸出的模擬量值。<br/> | 通過(guò)串口監(jiān)視器可以查看當(dāng)前 X、Y、Z 軸輸出的模擬量值。<br/> | ||
+ | [[文件:adxl3350001.png|500px|縮略圖|居中]] | ||
===檢測(cè)角度值=== | ===檢測(cè)角度值=== | ||
第69行: | 第111行: | ||
int z = analogRead(A2); | int z = analogRead(A2); | ||
//將模擬量轉(zhuǎn)換成電壓值 | //將模擬量轉(zhuǎn)換成電壓值 | ||
? | float vx = x * 5.0/ | + | float vx = x * 5.0/1024.0; |
? | float vy = y * 5.0/ | + | float vy = y * 5.0/1024.0; |
? | float vz = z * 5.0/ | + | float vz = z * 5.0/1024.0; |
//將模擬量轉(zhuǎn)換成每個(gè)軸向的g值,1.5是三軸加速度計(jì)的0g基準(zhǔn)電壓,單位為V,300是三軸加速度計(jì)的靈敏度,單位是mv/g | //將模擬量轉(zhuǎn)換成每個(gè)軸向的g值,1.5是三軸加速度計(jì)的0g基準(zhǔn)電壓,單位為V,300是三軸加速度計(jì)的靈敏度,單位是mv/g | ||
float Rx = (vx - Vzerog)/(Sensitivity / 1000.0); | float Rx = (vx - Vzerog)/(Sensitivity / 1000.0); | ||
第99行: | 第141行: | ||
[[文件:02S00000.jpg|600px|縮略圖|居中]] | [[文件:02S00000.jpg|600px|縮略圖|居中]] | ||
? | == | + | ==資料下載== |
[[文件:erweima.png|230px|無(wú)框|右]] | [[文件:erweima.png|230px|無(wú)框|右]] | ||
? | + | * 產(chǎn)品資料 | |
? | * | + | 下載鏈接: https://pan.baidu.com/s/1z8P8aon2NT-QGj33fzpNqA |
? | * | + | 提取碼:ziea |
+ | * 產(chǎn)品購(gòu)買(mǎi)鏈接: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)品類(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)品尺寸圖:
使用方法
- 實(shí)驗(yàn)環(huán)境
- 硬件環(huán)境:
(1)Arduino UNO 控制器 * 1個(gè)
(2)三軸加速度傳感器 * 1個(gè)
(3)USB 數(shù)據(jù)線(xiàn) * 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ì)本句話(huà)的注釋 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)買(mǎi)鏈接:http://lifestyle201.com/goods-775.html
- 奧松機(jī)器人技術(shù)論壇:http://www.makerspace.cn