Arduino UNO開發板連接ADXL345加速度計的方法

2021-02-20 一板網電子技術論壇

眾所周知,加速度計和陀螺儀主要用於檢測加速度。加速度計可以測量線性加速度,而陀螺儀可以幫助找到旋轉加速度。陀螺儀用於測量角速度,該角速度使用地球的重力來確定運動對象的方向。像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軸上的變化的方式。

歡迎打賞+點讚+留言+轉發!

更多內容請點擊「閱讀原文」 》》

相關焦點

  • 詳解arduino uno製作學習
    本期將講解如何自製arduino uno。目前常見的有國產版和義大利版,兩者處理器晶片atmega328p封裝、usb轉串口下載驅動有點區別外,其他性能一樣,價格也挺大的。一般義大利版本130多rmb。國產一般售價15rmb左右現在以國產版本設計給大家講解,主要適合初學者入門學習,擁有自己的一塊arduino uno。原理圖設計還有pcb加工都採用嘉立創。成本低,溝通製作等比較齊全。
  • 【板卡申請】Arduino uno R3開發板免費申請
    活動時間: 2017.5.12-2017.7.12活動對象: 電子愛好者活動板卡/數量: Arduino unoR3開發板 /  5 塊點擊閱讀原文至活動頁面,點擊「我要參加」完成申請報名(用於寄送板卡)。
  • 基於Arduino Uno開發板的藥物提醒系統
    打開APP 基於Arduino Uno開發板的藥物提醒系統 風箏 發表於 2020-12-13 11:53:57 提醒時,有很多方法可以提醒它: 1.  在顯示器上顯示 2.  通過電子郵件或電話發送通知 3.  使用移動應用 4.  嗡嗡聲報警 5.  使用藍牙/ Wi-Fi 6.  接電話 7.  在提醒當前時間的同時提醒下一次上藥時間 我們可以根據需要組合方式。
  • ARDUINO開發板與讀卡模塊的連接使用
    直接串口輸出操作: 1.RDM6300讀卡模塊接線如下:5v供電 2.arduino開發板燒寫空程序即可: void setup(){} void loop(){} 3. arduino IDE串口讀卡輸出數據:
  • 大牛輕鬆帶你玩轉Arduino智能硬體三-arduino入門:打造LED流水燈
    (三)arduino入門:打造LED流水燈  學完上節課的內容,學會了如何控制led燈之後,我相信這幾科的內容一會非常容易的。這節課是控制多個led燈。  一、準備材料arduino uno開發板一塊led燈6個(顏色隨意)杜邦線若干usb數據線  二、編程環境Arduino IED  三、原理講解控制單個LED燈是只需要引腳給高低電平,就可以控制燈的亮滅流水燈:多個led燈需要使用多個引腳控制,所以這裡使用2到7號引腳。分別控制燈的亮滅,就可以實現流水燈的效果。
  • 使用Arduino開發板實現與MPU6050陀螺儀傳感器連接的方法
    它是由一個MEMS加速度計、一個MEMS陀螺儀和溫度傳感器組成。該模塊在將模擬量轉換為數字量時非常準確,因為每個通道都有一個16位的模數轉換器硬體。該模塊能夠同時捕獲x、y和z通道。它有一個I2C接口與主控制器進行通信。這款MPU6050模塊是一款兼備加速度計和陀螺儀的小型晶片。對於無人機、機器人、運動傳感器等許多應用來說,這是一個非常有用的設備。它也被稱為陀螺儀或三軸加速度計。
  • STM開發之ADXL345 傳感器介紹
    本文我們來學習當下比較流行的一款三軸加速度傳感器:ADXL345,該傳感器廣泛用於手機、遊戲手柄等設計,具有非常廣泛的應用範圍。STM32F1開發板自帶了三軸加速度傳感器 ADXL345,通過本文的介紹讓大家學會如何使用這款功能強大的三軸加速度傳感器。
  • 採用3軸加速度計ADXL345的全功能計步器方案設計
    圖1.最活躍軸的濾波數據 加速度計相關文章:加速度計原理
  • 如何使用Arduino UNO製作一臺PM2.5顯示器
    步驟2:硬體連接: 1 ---- NC 2 ---- NC 3 ---- 5V 4 ---- NC 5 ---- GND 6 ---- arduino-tx 7 ---- arduino-rx 4-數字管連接: 1— ser--連接到arduino8 2— clk—連接至arduino9
  • 初次使用Arduino UNO R3
    實驗時注意不要超過該電流■ 6路模擬輸入A0到A5:10位的解析度,默認輸入信號範圍為0到5V■ AREF:模擬輸入信號的參考電壓■ Flash 內存:32 KB (ATmega328P中有0.5 KB用於引導程序)■ LED:用於測試的LED保留接口(13引腳),輸出為高時點亮LED■ 官方網站:http://www.arduino.cc
  • 基於Arduino UNO開發板無線連接伺服電機方案設計
    基於Arduino UNO開發板無線連接伺服電機方案設計 風箏 發表於 2021-01-09 11:47:36 在機器人中使用伺服電機進行精確控制很常見。
  • 一種奇怪的Arduino-Gemma開發板的使用
    \hardware\arduino\avr\variants\gemma目錄下找到pins_arduino.h文件,這裡面就是Gemma管腳與Attiny85的管腳對應關係。然後在..\hardware\arduino\avr\bootloaders\gemma裡面能看見Gemma的hex文件,好,然後我們在..
  • arduino 從零開始(2)探索arduino開發板和arduino IDE
    1、你將會探索arduino開發板2、你將會打開並上傳程序到arduino 板3、你將會學到arduino程序的基本框架和基本函數4、你將會自己編寫並上傳arduino程序一、arduino 板簡單來說,arduino(硬體)就是一個可以用來根據你的要求進行編程從而可以和很多輸入輸出設備進行交互的一個微型電腦系統。
  • 如何給Atmega328P單片機燒錄Arduino引導程序
    Arduino開發板預先寫入了bootloader,通過USB轉串口晶片下發下載命令給Arduino開發板使其復位進入bootloader,bootloader識別到下載命令後接著引導新的用戶程序下載到單片機內部flash,若沒有識別到下載命令則跳轉到原來的用戶應用程式繼續執行。
  • arduino ISP下載程序方法、LGT8F328P程序下載方法
    ArduinoISP代碼:2.編程板和要下載的目標板連接,如下圖:4.最後開始燒錄,注意不要直接點「上傳」,而是要去工具欄裡找到「通過編程器」上傳,這裡的編程器其實就是第4步設置的Arduino as ISP,也就是指定了通過uno板進行上傳
  • Arduino UNO 開發板
    包含兩個部分:硬體部分是用來做電路連接的Arduino電路板:另外一部分則是Arduino IDE,是用於提供程序開發環境的應用程式,集成了代碼編寫功能、分析功能、編譯功能等一體化的軟體。    Arduino能通過各種各樣的傳感器來感知環境,也可以通過控制燈光、馬達和其他裝置來反饋、影響環境。
  • Arduino-Ethernet庫學習筆記(1)
    該庫可以幫助Arduino開發板連接到Internet上。該板既可以充當接受傳入連接的伺服器,也可以充當進行傳出連接的客戶端。該庫最多支持八個並發連接(W5100和<= 2 kB SRAM的板限制為四個)並發連接(傳入,傳出或組合)。Arduino開發板使用SPI總線與屏蔽板通信。
  • ADI推出MEMS微功耗加速度計ADXL362
    AnalogDevices,Inc--全球領先的高性能信號處理解決方案供應商,最近推出一款業界功耗最低的MEMS加速度計ADXL362。ADXL362是一款3軸數字MEMS加速度計,在運動檢測喚醒模式下功耗僅為300nA,與最接近的競爭傳感器相比,相同模式下的功耗低60%。
  • Arduino-Ethernet庫學習筆記(1)
    該庫可以幫助Arduino開發板連接到Internet上。該板既可以充當接受傳入連接的伺服器,也可以充當進行傳出連接的客戶端。該庫最多支持八個並發連接(W5100和<= 2 kB SRAM的板限制為四個)並發連接(傳入,傳出或組合)。Arduino開發板使用SPI總線與屏蔽板通信。它位於Uno板的數字引腳11、12和13以及Mega板的數字引腳50、51和52上。
  • 如何用Matlab連接控制Arduino:GUI界面製作與電機控制
    而Arduino開發板是一種越來越受到歡迎的開源硬體。  一個是什麼都能算的軟體,一個是最火爆的開源硬體,兩者結合能碰撞出什麼樣的火花呢?筆者以Matlab軟體研究如何控制Arduino,將從Matlab製作Arduino的GUI界面和simulink應用出發,探索如何使用Matlab連接和控制Arduino。