相關(guān)商品










































相關(guān)文章
- 【奧松新品】首款帶車(chē)輪Arduino控制板亮相——Arduino Robot
- 【奧松新品】Arduino極客愛(ài):全新無(wú)線Linux板–Arduino Yun
- 【奧松新品】Arduino家族新寵兒——以ARM為核心的Arduino Due
- [轉(zhuǎn)載] Andrew "bunnie" Huang:開(kāi)源硬件、創(chuàng)客與硬件黑客
- 【奧松新品】基于Arduino、ADXL335與APC220的無(wú)線遙控器
- 【奧松新品】MEAS壓電式震動(dòng)傳感器測(cè)評(píng)
- 【奧松新品】基于Arduino的觸摸式變色臺(tái)燈
- 【奧松新品】集成了Arduino控制器的Ethernet評(píng)測(cè)
- 【奧松新品】Pololu Zumo Arduino履帶相撲機(jī)器人測(cè)評(píng)(上)
- 【奧松新品】AS-6DOFB六自由度機(jī)械臂玩家測(cè)評(píng)
- 【奧松新品】Pololu Zumo Arduino履帶相撲機(jī)器人測(cè)評(píng)(下)
- 【奧松新品】Zumo Robot Kit for Arduino零部件實(shí)測(cè)
- 【奧松新品】Simulator for Arduino 模擬器使用評(píng)測(cè)
- 【新書(shū)】《Arduino機(jī)器人制作指南》助你圓夢(mèng)
- 【新書(shū)】《Arduino機(jī)器人權(quán)威指南》于欣龍譯著重磅發(fā)行
- 【新書(shū)】《愛(ài)上機(jī)器人:學(xué)Arduino玩轉(zhuǎn)機(jī)器人制作》
- 【奧松新品】源自Sparkfun——SOUND DETECTOR聲音檢測(cè)傳感器評(píng)測(cè)
- 【奧松新品】水蒸氣傳感器,打造屬于你的“晴雨表”
- 【奧松新品】好玩的百變盒子
- 【奧松新品】樹(shù)莓派7寸觸摸屏 輕松點(diǎn)控盡顯掌中
- 【奧松新品】小身體,大數(shù)據(jù)——模擬聲音傳感器
- 【奧松新品】Speaker發(fā)聲模塊——打造自己的音樂(lè)盒
- 【奧松新品】條形LED模塊——制作光線強(qiáng)度指示燈
- 【奧松新品】TEMT6000光敏傳感器——感光燈制作
- 【奧松新品】可調(diào)微型直流潛水泵
- 【新書(shū)】《Arduino制作手冊(cè)》于欣龍推薦
- 【新書(shū)】《Arduino 完全實(shí)戰(zhàn)》經(jīng)典之作,奧松創(chuàng)始人于欣龍推薦!
- 【好書(shū)推薦】《Arduino從基礎(chǔ)到實(shí)踐》手把手50個(gè)案例教你玩轉(zhuǎn)Arduino
- 【新訊快遞】Arduino UNO控制器的新小伙伴 小奧與你深扒Arduino UNO背后的秘密
- 【奧松新品】四位七段數(shù)碼管——制作時(shí)鐘
- 【產(chǎn)品測(cè)評(píng)】基于 ADXL345 三軸加速度計(jì)的角度測(cè)試儀
【產(chǎn)品測(cè)評(píng)】基于 ADXL345 三軸加速度計(jì)的角度測(cè)試儀
編輯:neil2016-09-27 瀏覽次數(shù):1431
三軸加速度傳感器采用ADXL345芯片,此芯片應(yīng)用MEMS技術(shù),具有SPI和IIC數(shù)字輸出功能,芯片小巧輕薄,功耗低,量程可變,分辨率高。外形尺寸僅為3mm×5mm×1mm;在典型電壓Vs=2.5V時(shí)功耗電流約為25~130μA,最大量程可達(dá)±16g,另可選擇±2、±4、±8g 量程,可采用固定的4mg/LSB 分辨率模式,該分辨率可測(cè)得0.25°的傾角變化。
ADXL345非常適合移動(dòng)設(shè)備應(yīng)用。它可以在傾斜檢測(cè)應(yīng)用中測(cè)量靜態(tài)重力加速度,還可以測(cè)量運(yùn)動(dòng)或沖擊導(dǎo)致的動(dòng)態(tài)加速度。該器件提供多種特殊檢測(cè)功能,活動(dòng)和非活動(dòng)檢測(cè)功能。通過(guò)比較任意軸上的加速度與用戶設(shè)置的閾值來(lái)檢測(cè)有無(wú)運(yùn)動(dòng)發(fā)生。敲擊檢測(cè)功能可以檢測(cè)任意方向的單振和雙振動(dòng)作。自由落體檢測(cè)功能可以檢測(cè)器件是否正在掉落。這些功能可以獨(dú)立映射到兩個(gè)中斷輸出引腳中的一個(gè)。
下面我們就使用ADXL345三軸加速度計(jì)制作角度測(cè)試儀
在實(shí)驗(yàn)前,先對(duì)ADXL345三軸加速度計(jì)傳感器接口做個(gè)簡(jiǎn)單的介紹
本模塊使用ADXL345的IIC通信接口
共有四個(gè)引腳分別是:+、-、SDA、SCL
其中+、-是模塊的供電Vcc和GND,SDA是IIC的時(shí)鐘引腳、SCL是IIC的數(shù)據(jù)引腳
接下來(lái)開(kāi)始進(jìn)行試驗(yàn)
* 準(zhǔn)備硬件
1、Carduino UNO R3 控制器 * 1個(gè)
2、LCD12864 液晶擴(kuò)展板 * 1個(gè)
3、杜邦線 * 4條
4、USB數(shù)據(jù)線 * 1條
* 硬件連接
如圖所示:本實(shí)驗(yàn)接線非常簡(jiǎn)單,LCD12864液晶擴(kuò)展板接口是與Carduino UNO R3控制器完全兼容的,將他們對(duì)應(yīng)插接在一起即可,然后連接ADXL345模塊,+、- 分別連接到液晶擴(kuò)展板的 Vcc(紅色排針)、GND(黑色排針),SDA 連接 A4,SCL 連接 A5
* 示例代碼
#include "U8glib.h"
#include
#define Register_ID 0 //器件ID
#define Register_2D 0x2D //靜止、活動(dòng)、休眠、喚醒
#define Register_X0 0x32 //X軸數(shù)據(jù)0
#define Register_X1 0x33 //X軸數(shù)據(jù)1
#define Register_Y0 0x34 //Y軸數(shù)據(jù)0
#define Register_Y1 0x35 //Y軸數(shù)據(jù)1
#define Register_Z0 0x36 //Z軸數(shù)據(jù)0
#define Register_Z1 0x37 //Z軸數(shù)據(jù)1
int ADXAddress = 0xA7>>1; //轉(zhuǎn)換為7位地址
int X0,X1,X_out;
int Y0,Y1,Y_out;
int Z1,Z0,Z_out;
int valx,valy,valz;
U8GLIB_MINI12864 u8g(5, 6, 2, 4, 3);
void draw()
{
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0,11,"x_angle:");
u8g.setPrintPos(70,11);
u8g.print(valx);
u8g.drawStr( 0,36,"y_angle:");
u8g.setPrintPos(70,36);
u8g.print(valy);
u8g.drawStr( 0,63,"z_angle:");
u8g.setPrintPos(70,63);
u8g.print(valz);
}
int Readx()
{
Wire.beginTransmission(ADXAddress);
Wire.write(Register_X0);//請(qǐng)求X0數(shù)據(jù)
Wire.write(Register_X1);//請(qǐng)求X1數(shù)據(jù)
Wire.endTransmission();
Wire.requestFrom(ADXAddress,2);//發(fā)送請(qǐng)求
if(Wire.available()<=2);
{
X0 = Wire.read();//收到X0數(shù)據(jù)
X1 = Wire.read();//收到X1數(shù)據(jù)
X1 = X1<<8;
X_out = X0+X1;
}
valx = map(X_out,-256,256,-90,90);
return valx;
}
int Ready()
{
Wire.beginTransmission(ADXAddress);
Wire.write(Register_Y0);
Wire.write(Register_Y1);
Wire.endTransmission();
Wire.requestFrom(ADXAddress,2);
if(Wire.available()<=2);
{
Y0 = Wire.read();
Y1 = Wire.read();
Y1 = Y1<<8;
Y_out = Y0+Y1;
}
valy = map(Y_out,-256,256,-90,90);
return valy;
}
int Readz()
{
Wire.beginTransmission(ADXAddress);
Wire.write(Register_Z0);
Wire.write(Register_Z1);
Wire.endTransmission();
Wire.requestFrom(ADXAddress,2);
if(Wire.available()<=2);
{
Z0 = Wire.read();
Z1 = Wire.read();
Z1 = Z1<<8;
Z_out = Z0+Z1;
}
valz = map(Z_out,-256,256,-90,90);
return valz;
}
void setup() {
Serial.begin(9600); //設(shè)置通信波特率
Wire.begin(); //初始化I2C
Wire.beginTransmission(ADXAddress);//發(fā)送芯片地址
Wire.write(Register_2D);//特性控制
Wire.write(8);//關(guān)閉休眠模式
Wire.endTransmission();//結(jié)束發(fā)送
}
void loop() {
valy = Ready();
valx = Readx();
valz = Readz();
u8g.firstPage();
do {
draw();
}
while( u8g.nextPage() );
delay(200);
}
注意此程序需要使用到庫(kù)文件,大家可以點(diǎn)擊此處,進(jìn)入奧松機(jī)器人官方技術(shù)論壇,下載模塊的示例程序及技術(shù)文檔
* 程序效果
如圖所示:在LCD12864液晶擴(kuò)展板上會(huì)實(shí)時(shí)顯示當(dāng)前傳感器的X、Y、Z軸角度
----------------------------------------------------------------------------------------------------------------
奧松機(jī)器人官網(wǎng):www.robotbase.cn
微信號(hào):搜索公眾號(hào)“奧松機(jī)器人”
QQ群: 271230889(討論,解惑)
微博:@奧松機(jī)器人基地
----------------------------------------------------------------------------------------------------------------
溫馨提示:予人玫瑰,手留余香;如果你喜歡這篇文章,不妨轉(zhuǎn)發(fā)推薦給你身邊的朋友!
用戶評(píng)價(jià)
- 咨詢內(nèi)容:
- 很好
- 管理員:
-
謝謝您的認(rèn)可,歡迎您咨詢問(wèn)題呢!