眾所周知,加速度計和陀螺儀主要用於檢測加速度。加速度計可以測量線性加速度,而陀螺儀可以幫助找到旋轉加速度。陀螺儀用於測量角速度,該角速度使用地球的重力來確定運動對象的方向。像MPU6050這樣的傳感器同時具有加速度計和陀螺儀,並且可以作為慣性測量單元(IMU)來查找方向、位置和速度。
在本篇文章中,我們將主要介紹ADXL345加速度計,該加速度計用於測量x、y和z軸上的加速度或速度變化。這些小型傳感器用在汽車和自行車中,以檢測安全氣囊展開時的事故,還用在行動電話中,用於各種應用,例如指南針和位置跟蹤。
加速度傳感器的類型
市場上有許多類型的MEMS加速度傳感器。可以根據精度、功耗和接口對其進行分類。所有這些傳感器都是可攜式的,可以安裝在任何類型的設備中,例如可穿戴設備。這些傳感器測量3軸(x、y、z)的加速度。
一些廣泛使用的傳感器是:
● ADXL335
● ADXL345
● ADXL356
這些加速度傳感器非常受歡迎,除了這三種加速度傳感器外,還有許多其他加速度傳感器,例如ADXL354、ADXL355、ADXL372等。
讓我們看看這些傳感器之間的區別。
ADXL356
ADXL345
ADXL335
量程
±10g至±40g
±16g
±3g,小量程,具有精確的讀數
接口
模擬
SPI、I2C
模擬
功耗
低,典型值:150µ
低,典型值:140µ
標準,典型值:350µ
價格
高
低
最低
在以上三種之中,ADXL345由於其數字特性而易於連接。但是它的編程很困難,因為它可以在SPI / I2C協議上工作。ADXL345可以測量靜態和動態加速度,適用於移動應用。而且,這些傳感器都經過實驗室校準,不需要任何進一步的校準。
在這裡,我們將使用ADXL345傳感器的Adafruit庫將其與Arduino Uno連接。
所需的組件
● Arduino UNO開發板
● ADXL345加速度計
● 連接導線
● 麵包板
電路圖
下面給出了ADXL345加速度傳感器與Arduino連接的電路圖:
ADXL345 Arduino代碼說明
對於此ADXL345 Arduino項目,我們需要兩個ADXL345傳感器庫。
● Adafruit ADXL345
● Adafruit Unified sensor
要下載上述庫,請打開Arduino IDE並轉至Sketch-> Include Library-> Manage Libraries。搜索並安裝Adafruit ADXL345。同樣,搜索Adafruit Unified sensor並安裝。
現在,我們準備編寫代碼。可以在Files -> Example -> Adafruit ADXL345 -> sensortest中找到示例代碼。
1. 首先,包括所有必需的庫頭文件以支持傳感器的功能。在這裡,我們將使用wire庫用於I2C通信。
#include <Wire.h>#include <Adafruit_Sensor.h>#include <Adafruit_ADXL345_U.h>2. 通過使用諸如accel之類的任何變量來使用ADXL345 Arduino庫的各種函數來創建實例。
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();3. 在void setup()函數中,使用Serial.begin()函數初始化串口通信以在串口監視器上列印數據。現在,檢查是否連接了有效的ADXL傳感器。我們將檢查accel.begin()函數返回的結果是否返回false,然後列印一條消息,指出找不到有效的傳感器。
void setup(){ Serial.begin(9600); if(!accel.begin()) { Serial.println("No valid sensor found"); while(1); }}4. 在void loop()函數中,創建一個變量以使用sensors_event_t結構體。使用此變量(在本例中為「event」)通過.getevent()函數填充結構成員。現在,使用event.acceleration.x()函數在x、y、z軸上列印加速度值。
void loop() {sensors_event_t event; accel.getEvent(&event);Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print("");Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print("");Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print("");Serial.println("m/s^2 ");delay(500);}測試ADXL345加速度計與Arduino連接
最後,將ADXL345傳感器與Arduino UNO正確連接,並將代碼上傳到Arduino Uno開發板上。然後打開串口監視器,您將在x、y、z軸上看到加速度讀數,如下所示。
嘗試在所有方向上緩慢移動傳感器,並觀察讀數。
因此,以上就是將加速度計與Arduino UNO一起使用以檢測x、y和z軸上的變化的方式。
歡迎打賞+點讚+留言+轉發!
更多內容請點擊「閱讀原文」 》》