ADXL335加速度计连接到 Arduino UNO
首先将加速计放在试验板上。将 VCC 引脚连接到 Arduino 的 5V 引脚,将 GND 引脚连接到 Arduino 的 Ground 引脚。将 X、Y 和 Z 输出连接到 Arduino 的模拟引脚 A0、A1 和 A2。
这里更改 Arduino 的模拟参考 (AREF) 电压才能获得精确的结果。这可以通过将 Arduino 的 3.3V 引脚连接到 AREF 引脚来实现。
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十九:GY-61 ADXL335模拟量加速度模块 倾斜角度三轴加速度传感器
项目之二:更改Arduino 的模拟参考 AREF 电压 获得精确结果
实验开源代码
/*
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十九:GY-61 ADXL335模拟量加速度模块 倾斜角度三轴加速度传感器
项目之二:更改Arduino 的模拟参考 AREF 电压 获得精确结果
*/
const int xInput = A0;
const int yInput = A1;
const int zInput = A2;
// initialize minimum and maximum Raw Ranges for each axis
int RawMin = 0;
int RawMax = 1023;
// Take multiple samples to reduce noise
const int sampleSize = 10;
void setup()
{
analogReference(EXTERNAL);
Serial.begin(9600);
}
void loop()
{
//Read raw values
int xRaw = ReadAxis(xInput);
int yRaw = ReadAxis(yInput);
int zRaw = ReadAxis(zInput);
// Convert raw values to ‘milli-Gs”
long xScaled = map(xRaw, RawMin, RawMax, -3000, 3000);
long yScaled = map(yRaw, RawMin, RawMax, -3000, 3000);
long zScaled = map(zRaw, RawMin, RawMax, -3000, 3000);
// re-scale to fractional Gs
float xAccel = xScaled / 1000.0;
float yAccel = yScaled / 1000.0;
float zAccel = zScaled / 1000.0;
Serial.print("X, Y, Z :: ");
Serial.print(xRaw);
Serial.print(", ");
Serial.print(yRaw);
Serial.print(", ");
Serial.print(zRaw);
Serial.print(" :: ");
Serial.print(xAccel, 0);
Serial.print("G, ");
Serial.print(yAccel, 0);
Serial.print("G, ");
Serial.print(zAccel, 0);
Serial.println("G");
delay(200);
}
// Take samples and return the average
int ReadAxis(int axisPin)
{
long reading = 0;
analogRead(axisPin);
delay(1);
for (int i = 0; i < sampleSize; i++)
{
reading += analogRead(axisPin);
}
return reading / sampleSize;
}
代码解读
这段代码使用 模拟传感器(如加速度计) 采集 X、Y、Z 轴数据 并转换为 加速度值(单位 G),核心逻辑如下:
1. 传感器连接
✅ const int xInput = A0; → X 轴信号连接到 A0
✅ const int yInput = A1; → Y 轴信号连接到 A1
✅ const int zInput = A2; → Z 轴信号连接到 A2
2. 初始化
✅ analogReference(EXTERNAL); → 使用外部参考电压,提高精度
✅ Serial.begin(9600); → 启动串口通信
3. 读取并处理数据
✅ ReadAxis(xInput); → 采集 X、Y、Z 轴数据
✅ map(xRaw, RawMin, RawMax, -3000, 3000); → 将 ADC 值映射到 milli-G(±3G)
✅ / 1000.0 → 转换为 G(加速度单位)
4. 串口输出
✅ Serial.print(xAccel, 0); → 打印 X 轴加速度(单位 G)
✅ Serial.print(yAccel, 0); Serial.print(zAccel, 0); → 打印 Y、Z 轴加速度
✅ 以格式化方式输出数据,便于查看
5. 采样优化
✅ sampleSize = 10; → 每次采集 10 次求平均值,减少噪声
✅ delay(1); → 防止连续读取过快,提高稳定性
这段代码让 加速度传感器不断采集 XYZ 数据,并在串口显示。
实验串口返回情况

实验串口绘图器返回情况



实验记录视频(36秒)
【【花雕学编程】Arduino动手做(239)---测试GY-61 ADXL335三轴加速度传感器#单片机开发 #电子爱好者 #嵌入式 #科技改变生活 #编程】
下图显示了串行监视器上不同位置的加速度计输出。


评论