📅  最后修改于: 2023-12-03 15:13:28.499000             🧑  作者: Mango
加速度计是一种用于测量物体加速度的传感器,它能够测量物体在三个方向上的加速度。在航空航天、工业制造、机器人、医疗设备等领域十分常见。
Arduino是一款开源平台,基于ATMEL AVR系列单片机,是电子制作爱好者的常用工具。利用Arduino可以非常方便地制作各种简单的电子设备,其中就包括加速度计。
#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加速度计的使用非常简单。只需要引入库文件,并通过简单的调用函数就可以读取三个方向上的加速度数据,可以广泛应用于物体加速度测量等领域。