📜  Arduino加速度计(1)

📅  最后修改于: 2023-12-03 15:13:28.499000             🧑  作者: Mango

Arduino加速度计介绍

什么是加速度计?

加速度计是一种用于测量物体加速度的传感器,它能够测量物体在三个方向上的加速度。在航空航天、工业制造、机器人、医疗设备等领域十分常见。

Arduino加速度计

Arduino是一款开源平台,基于ATMEL AVR系列单片机,是电子制作爱好者的常用工具。利用Arduino可以非常方便地制作各种简单的电子设备,其中就包括加速度计。

材料准备
  • Arduino UNO板子
  • ADXL345加速度计模块
  • 杜邦线若干
  • 电脑
图示

ADXL345安装示意图

代码实现
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);

void setup(void) 
{
  Serial.begin(9600);
  if(!accel.begin())
  {
    Serial.println("无法找到ADXL345传感器");
    while(1);
  }
}

void loop() 
{
  sensors_event_t event;
  accel.getEvent(&event);
  Serial.print("X轴加速度: ");
  Serial.print(event.acceleration.x);
  Serial.print(" m/s^2 ");

  Serial.print("Y轴加速度: ");
  Serial.print(event.acceleration.y);
  Serial.print(" m/s^2 ");

  Serial.print("Z轴加速度: ");
  Serial.print(event.acceleration.z);
  Serial.print(" m/s^2 ");
  Serial.println();
  delay(500);
}
代码解释

我们首先要引入Adafruit_Sensor和Adafruit_ADXL345_U库,它们可以帮助我们更加简单地驱动ADXL345传感器。

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);

我们向余传感器参数,创建了一个Adafruit_ADXL345_Unified类的对象。

void setup(void) 
{
  Serial.begin(9600);
  if(!accel.begin())
  {
    Serial.println("无法找到ADXL345传感器");
    while(1);
  }
}

setup()函数中,我们首先初始化串口,并进行传感器的初始化,如果无法找到传感器,则会输出错误信息。

void loop() 
{
  // 读取传感器数据
  sensors_event_t event;
  accel.getEvent(&event);

  // 输出X轴加速度
  Serial.print("X轴加速度: ");
  Serial.print(event.acceleration.x);
  Serial.print(" m/s^2 ");

  // 输出Y轴加速度
  Serial.print("Y轴加速度: ");
  Serial.print(event.acceleration.y);
  Serial.print(" m/s^2 ");

  // 输出Z轴加速度
  Serial.print("Z轴加速度: ");
  Serial.print(event.acceleration.z);
  Serial.print(" m/s^2 ");

  Serial.println();
  delay(500);
}

loop()函数中,我们通过getEvent()函数读取传感器数据,然后输出X、Y、Z三个方向上的加速度,最后延迟500ms后再次读取数据。

总结

通过这个简单的例子,我们可以看到Arduino加速度计的使用非常简单。只需要引入库文件,并通过简单的调用函数就可以读取三个方向上的加速度数据,可以广泛应用于物体加速度测量等领域。