我們都知道加速度計和陀螺儀,它們主要用于檢測加速度。雖然加速度計可以測量線性加速度,但陀螺儀可以幫助找到旋轉加速度。陀螺儀 用于測量角速度,該角速度使用地球的重力來確定運動中物體的方向。有一個像 MPU6050 這樣的傳感器,它同時具有加速度計和陀螺儀,它作為一個 慣性測量單元 (IMU) 來查找方向、位置和速度。
在這里,我們討論的是ADXL345 加速度計,它用于測量 x、y 和 z 軸的加速度或速度變化。這些小型傳感器用于汽車和自行車以檢測事故以展開安全氣囊,還用于手機中用于指南針和位置跟蹤等各種應用。
加速度計傳感器的類型
市場上有許多類型的MEMS 加速度計傳感器。它們可以根據精度、功耗和接口進行分類。所有這些傳感器都是便攜式的,可以安裝在任何類型的設備中,例如可穿戴設備。這些傳感器測量 3 軸 (x,y,z) 的加速度。
一些廣泛使用的傳感器是:
ADXL335
ADXL345
ADXL356

這些加速度計傳感器非常受歡迎,除了這三個之外,還有許多其他加速度計傳感器,如 ADXL354、ADXL355、ADXL372 等。
讓我們看看這些傳感器之間的區(qū)別。
比較:ADXL335 與 ADXL345 與 ADXL356

在上述三者中,ADXL345 因其數字特性而易于接口。但它的編程很困難,因為它適用于 SPI/I2C 協議。ADXL345 可以測量靜態(tài)和動態(tài)加速度,適用于移動應用。此外,這些傳感器經過實驗室校準,不需要任何進一步的校準。

在這里,我們將使用ADXL345 傳感器的 Adafruit 庫將其與 Arduino Uno 連接。
所需組件
Arduino UNO
ADXL345 加速度計
公母線
面包板
電路原理圖
ADXL345加速度計與Arduino接口的電路圖如下:

ADXL345 Arduino 連接:
連接 Arduino 的 A4 引腳 (SDA) -》 adxl345 的 SDA 引腳
連接 Arduino 的 A5 引腳 (SCL) -》 adxl345 的 SCL 引腳
連接 Arduino 的 GND -》 adxl345 的 GND 引腳
連接 Arduino 的 5V -》 adxl345 的 Vcc

ADXL345 Arduino代碼說明
對于這個ADXL345 Arduino項目,我們需要兩個用于ADXL345傳感器的庫。
阿達果ADXL345
Adafruit 統一傳感器
要下載上述庫,請打開 Arduino IDE 并轉到Sketch -》 Include Library -》 Manage Libraries。 搜索 Adafruit ADXL345 并安裝。同樣,搜索 Adafruit Unified sensor 并安裝。

現在,我們準備好編寫代碼了。示例代碼可在文件 -》 示例 -》 Adafruit ADXL345 -》 sensortest 中找到
1. 首先,包含所有必需的庫頭文件以支持傳感器的功能。在這里,我們還使用線庫進行 I2C 通信。
#include#include #include
2. 使用任何變量(如accel)創(chuàng)建一個實例,以使用 ADXL345 Arduino 庫的各種功能。
Adafruit_ADXL345_Unified 加速度 = Adafruit_ADXL345_Unified();
3. 在void setup()函數中,使用Serial.begin()函數初始化串行通信以在串行監(jiān)視器上打印數據。現在,檢查是否連接了有效的 ADXL 傳感器。我們將檢查accel.begin()函數返回的結果,如果它返回 false,則打印一條消息,表明沒有找到有效的傳感器。
無效設置()
{
序列號.開始(9600);
if(!accel.begin())
{
Serial.println("沒有找到有效的傳感器");
而(1);
}
}
4. 在void loop()函數中,創(chuàng)建一個變量以使用sensors_event_t結構。使用此變量(在本例中為“事件”)使用.getevent()函數填充結構成員。現在,使用event.acceleration.x()函數打印 x、y、z 軸的加速度值。
無效循環(huán)()
{
sensor_event_t 事件;
accel.getEvent(&事件);
Serial.print("X:"); Serial.print(event.acceleration.x); 序列號.print("");
Serial.print("Y:"); Serial.print(event.acceleration.y); 序列號.print("");
Serial.print("Z:"); Serial.print(event.acceleration.z); 序列號.print("");
Serial.println("m/s^2");
延遲(500);
}
本文末尾提供了帶有演示視頻的完整代碼。
測試 ADXL345 加速度計 Arduino 接口
最后,將 ADXL345 傳感器與 Arduino UNO 正確連接,并將代碼上傳到 Arduino Uno 板。然后打開串行監(jiān)視器,您將看到 x、y、z 軸的加速度讀數,如下所示。

嘗試向各個方向緩慢移動傳感器并觀察讀數。

這就是加速度計如何與 Arduino UNO 一起使用來檢測 x、y 和 z 軸的變化。
#include
#include
#include
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();
無效設置(無效)
{
Serial.begin(9600);
if(!accel.begin())
{
Serial.println("未找到有效傳感器");
而(1);
}
}
無效循環(huán)(無效)
{
傳感器事件_t事件;
accel.getEvent(&事件);
Serial.print("X:"); Serial.print(event.acceleration.x); 序列號.print("");
Serial.print("Y:"); Serial.print(event.acceleration.y); 序列號.print("");
Serial.print("Z:"); 串行。打?。╡vent.acceleration.z);序列號.print("");
Serial.println("m/s^2");
延遲(500);
}
-
加速度計
+關注
關注
6文章
775瀏覽量
47726 -
ADXL345
+關注
關注
14文章
73瀏覽量
35120 -
Arduino
+關注
關注
190文章
6512瀏覽量
195498
發(fā)布評論請先 登錄
ADXL345:3軸,±2g數字加速度計
基于3軸加速度計ADXL345的跌倒檢測應用
利用精密模擬微控制器ADuC7024和數字加速度計ADXL345檢測低g加速度
ADXL345 MEMS加速度計開發(fā)板的設置和使用方法
采用ADXL345加速度計實現球形相機的全景拍攝
GY-291 ADXL345數字三軸重力加速度傾斜度模塊的資料合集免費下載
ADXL345數字加速度計的數據手冊免費下載
AN-1588:使用連接到ADuC7024精密模擬微控制器的ADXL345數字加速度計檢測低g加速度

將ADXL345加速度計與Arduino UNO連接的方法
評論