单片机学习小组
登录
直播中
恐龙之家
9年用户
908经验值
私信
关注
如何实现基于STM32的倾斜仪设计?
开启该帖子的消息推送
STM32
倾斜仪
加速度传感器
硬件设计
如何实现基于
STM32
的倾斜仪设计?
回帖
(1)
孙瑞军
2022-2-15 11:00:17
开一篇博客记录一下自己的毕设工作。
在此次设计中,我们选用stm32作为控制核心和处理核心,并辅以485通信,可以实现倾斜仪与上位机的通信功能。
在设计完成之后,我们将其应用于工业现场,测量吊篮的倾斜角,通过485通信传给上位机,上位机可以利用倾斜数据做出相应的控制。同时,我们所研发的倾斜仪还具有自动报警功能,当被测平面与水平面之间的夹角超过一定的阈值时,装置会发出警示,且操作人员可以随时通过上位机对此阈值进行修改,以适应不同场合的需求。
首先介绍一下硬件部分设计:
2.1
总体框架
本设计的硬件框架主要由以下几个部分组成:传感器电路、信号调理电路、单片机处理电路和通信电路。除此之外,附加了OLED显示电路,从而可以于将角度数据实时显示出来。结构框图如图2-1所示。
图2-1 硬件结构框图
当本产品工作时,倾角传感器将倾斜角信号转化为电信号输出,再由调理电路将输出的电信号进行滤波和放大,使得信号易于被单片机处理,再将信号输入至单片机的AD口。单片机接收到调理电路传来的电信号之后进行AD处理,并计算出被测平面的倾斜角,然后将角度信号以485通信的方式发送给上位机,同时利用OLED将角度值实时的表示出来。
2.2
倾角传感器
在倾角传感器的选用上,结合前辈们的使用经验并分析了各种型号的传感器之后,本设计倾斜仪选用FXLN8361Q这款传感器。FXLN8361Q是飞思卡尔公司基于MEMS技术研发的差分电容式三轴加速度传感器,该芯片采用1.71V~3.76V直流电压供电,可以选择±2g或者±8g的量程。内部集成了从电容到电压的转换电路,运算放大器,输出跟随器等单元。[8]其内部结构如图2-2所示:
图2-2 FXLN8361Q内部结构
芯片采用QFN进行封装,共有12个引脚。其中2脚为VCC;6脚和7脚为GND;4脚为使能引脚;5脚为量程选择引脚;8脚9脚和10脚为传感器的输出,分别输出三个轴的加速度值。
输出引脚的电压与加速度的关系如表2-1所示:
表2-1 各轴加速度与输出电压的关系
模式
-1g
0g
+1g
2g
0.521V
0.750V
0.979V
8g
0.693V
0.750V
0.807V
当芯片与水平面之间的夹角发生变化时,其各轴的加速度值也会发生变化,于是导致了输出电压的变化,我们可以根据芯片的输出电压反向推导出各轴的加速度值,进而通过一定的数学公式就可以得到被测表面与水平面之间的夹角,达到倾斜仪的测量目的。
该芯片的典型应用电路如图2-3所示:
图2-3 FXLN8361Q传感器设计电路
在将芯片接入电路时,要注意以下几点:
a.2脚接的两个电容C19和C20要尽可能贴近芯片,这样可以更好地起到滤波的作用,防止电源带来的噪声干扰。
b.C21的作用是稳定输出电压。
c.使能端口必须要在VDD的电压大于1.71V之后才能置高,不然可能导致芯片无法启动工作。
d.每个输出引脚上应该接一个电容到地,这样在输出时起到一个滤波作用,使得输出的电压更加稳定。
e.在焊接时应使得芯片尽可能去贴合电路板,这样以便于芯片与被测平面保持在同一水平面。
2.3
调理电路
在倾角芯片将倾斜角信号转化为电信号之后,CPU接收电信号之前,我们需要一个调理电路对倾角芯片产生的电信号进行处理,对其进行滤波放大的操作。由于倾角传感器是采用模拟输出,所以不可避免的会产生一定的噪声,为了尽可能减少噪声对测量结果的影响,我们在芯片产生电信号之后接入这个调理电路。经过这个调理电路处理之后,可以使得传入CPU的电压信号更加稳定且易于处理和分析,提高系统的精度。
经过分析和比较,我们选用了二阶压控型低通有源滤波器作为我们调理电路的主体,[9]其电路结构如图2-4所示:
图2-4 调理电路
根据运放的知识,在信号频率比较低的时候,各个电容可以视为开路,所以此电路的通带增益为:
Aνp=1+
R
12
R
11
(2-1)
将此电路的输入电压设为
V
i
,输出电压设为
V
o
,且令
R
9=
R
10=
R
,
C
25=
C
26=
C
,可以得到如下结论:
V
0
=
Aνp
V
+
(2-2)
V
+
=
V
N
1
1+sCR
(2-3)
V
i
-
V
N
R
-
V
N
-
V
0
sC-
V
N
-
V
+
R
=0
(2-4)
联立(1)、(2)和(3)式,我们可以得到此滤波电路的传递函数为:
V
0
V
i
=
Aνp
1+
3-
Aνp
sCR+
(sCR)
2
(2-5)
根据电路的传递函数我们可以发现:此电路的通带增益不得大于3,否则电路将会无法稳定工作。在设计时我们令
R
12=
R
11,于是根据式(1),我们所设计的电路的通带增益为:
Aνp=1+
R
12
R
11
=2 (2-6)
由于设计中FXLN8361Q芯片的输出为0.512V-0.979V,1g的加速度变化对应的是0.229V的电压变化。将此电压作为输入电压输入至此滤波电路,于是此电路的输出为1.024V-1.958V。输出电压的范围符合STM32的AD口识别范围,而且此时加速度每变化1g,CPU所读取的电压变化量为0.458V。在同等加速度变化的情况下,电压变化值翻倍,可以使得我们的计算结果更具分辨力,提高产品的测量精度。
在放大器芯片的选用上,本设计选择的是四路运放LM324。LM324是一款具有真差动输入的四路运算放大器,由四个独立的高增益的运算放大器组成。其封装为14脚的SOIC封装,带宽为1.2MHZ。与单电源应用场合的标准运算放大器相比具有一些显著的优势:此芯片的工作电压范围较普通的运放来说非常宽泛,可以工作在3.0V-32V的电源之下;而且其共模输出范围较大,无需采用外部偏置器件。
在设计完调理电路之后,为验证其正确性,我们在multisim中对此调理电路做了简单的仿真,观察结果是否符合我们的预期。仿真设计如图2-5所示:
图2-5 调理电路仿真电路图
在输入端接上1V的阶跃信号之后,我们可以通过示波器观察到此时的输出信号,如图2-6所示:
图2-6 调理电路仿真结果
观察仿真结果,我们可以发现此电路可以很好的将输入信号放大两倍之后输出,符合我们的需求。值得一提的是,这个放大电路的通带增益必须小于3,在设计之初由于没有考虑到这一点导致输出电压不稳定,无法读出角度值,至于原因在上文中的公式2-5已经提及,此处就不再赘述。
开一篇博客记录一下自己的毕设工作。
在此次设计中,我们选用stm32作为控制核心和处理核心,并辅以485通信,可以实现倾斜仪与上位机的通信功能。
在设计完成之后,我们将其应用于工业现场,测量吊篮的倾斜角,通过485通信传给上位机,上位机可以利用倾斜数据做出相应的控制。同时,我们所研发的倾斜仪还具有自动报警功能,当被测平面与水平面之间的夹角超过一定的阈值时,装置会发出警示,且操作人员可以随时通过上位机对此阈值进行修改,以适应不同场合的需求。
首先介绍一下硬件部分设计:
2.1
总体框架
本设计的硬件框架主要由以下几个部分组成:传感器电路、信号调理电路、单片机处理电路和通信电路。除此之外,附加了OLED显示电路,从而可以于将角度数据实时显示出来。结构框图如图2-1所示。
图2-1 硬件结构框图
当本产品工作时,倾角传感器将倾斜角信号转化为电信号输出,再由调理电路将输出的电信号进行滤波和放大,使得信号易于被单片机处理,再将信号输入至单片机的AD口。单片机接收到调理电路传来的电信号之后进行AD处理,并计算出被测平面的倾斜角,然后将角度信号以485通信的方式发送给上位机,同时利用OLED将角度值实时的表示出来。
2.2
倾角传感器
在倾角传感器的选用上,结合前辈们的使用经验并分析了各种型号的传感器之后,本设计倾斜仪选用FXLN8361Q这款传感器。FXLN8361Q是飞思卡尔公司基于MEMS技术研发的差分电容式三轴加速度传感器,该芯片采用1.71V~3.76V直流电压供电,可以选择±2g或者±8g的量程。内部集成了从电容到电压的转换电路,运算放大器,输出跟随器等单元。[8]其内部结构如图2-2所示:
图2-2 FXLN8361Q内部结构
芯片采用QFN进行封装,共有12个引脚。其中2脚为VCC;6脚和7脚为GND;4脚为使能引脚;5脚为量程选择引脚;8脚9脚和10脚为传感器的输出,分别输出三个轴的加速度值。
输出引脚的电压与加速度的关系如表2-1所示:
表2-1 各轴加速度与输出电压的关系
模式
-1g
0g
+1g
2g
0.521V
0.750V
0.979V
8g
0.693V
0.750V
0.807V
当芯片与水平面之间的夹角发生变化时,其各轴的加速度值也会发生变化,于是导致了输出电压的变化,我们可以根据芯片的输出电压反向推导出各轴的加速度值,进而通过一定的数学公式就可以得到被测表面与水平面之间的夹角,达到倾斜仪的测量目的。
该芯片的典型应用电路如图2-3所示:
图2-3 FXLN8361Q传感器设计电路
在将芯片接入电路时,要注意以下几点:
a.2脚接的两个电容C19和C20要尽可能贴近芯片,这样可以更好地起到滤波的作用,防止电源带来的噪声干扰。
b.C21的作用是稳定输出电压。
c.使能端口必须要在VDD的电压大于1.71V之后才能置高,不然可能导致芯片无法启动工作。
d.每个输出引脚上应该接一个电容到地,这样在输出时起到一个滤波作用,使得输出的电压更加稳定。
e.在焊接时应使得芯片尽可能去贴合电路板,这样以便于芯片与被测平面保持在同一水平面。
2.3
调理电路
在倾角芯片将倾斜角信号转化为电信号之后,CPU接收电信号之前,我们需要一个调理电路对倾角芯片产生的电信号进行处理,对其进行滤波放大的操作。由于倾角传感器是采用模拟输出,所以不可避免的会产生一定的噪声,为了尽可能减少噪声对测量结果的影响,我们在芯片产生电信号之后接入这个调理电路。经过这个调理电路处理之后,可以使得传入CPU的电压信号更加稳定且易于处理和分析,提高系统的精度。
经过分析和比较,我们选用了二阶压控型低通有源滤波器作为我们调理电路的主体,[9]其电路结构如图2-4所示:
图2-4 调理电路
根据运放的知识,在信号频率比较低的时候,各个电容可以视为开路,所以此电路的通带增益为:
Aνp=1+
R
12
R
11
(2-1)
将此电路的输入电压设为
V
i
,输出电压设为
V
o
,且令
R
9=
R
10=
R
,
C
25=
C
26=
C
,可以得到如下结论:
V
0
=
Aνp
V
+
(2-2)
V
+
=
V
N
1
1+sCR
(2-3)
V
i
-
V
N
R
-
V
N
-
V
0
sC-
V
N
-
V
+
R
=0
(2-4)
联立(1)、(2)和(3)式,我们可以得到此滤波电路的传递函数为:
V
0
V
i
=
Aνp
1+
3-
Aνp
sCR+
(sCR)
2
(2-5)
根据电路的传递函数我们可以发现:此电路的通带增益不得大于3,否则电路将会无法稳定工作。在设计时我们令
R
12=
R
11,于是根据式(1),我们所设计的电路的通带增益为:
Aνp=1+
R
12
R
11
=2 (2-6)
由于设计中FXLN8361Q芯片的输出为0.512V-0.979V,1g的加速度变化对应的是0.229V的电压变化。将此电压作为输入电压输入至此滤波电路,于是此电路的输出为1.024V-1.958V。输出电压的范围符合STM32的AD口识别范围,而且此时加速度每变化1g,CPU所读取的电压变化量为0.458V。在同等加速度变化的情况下,电压变化值翻倍,可以使得我们的计算结果更具分辨力,提高产品的测量精度。
在放大器芯片的选用上,本设计选择的是四路运放LM324。LM324是一款具有真差动输入的四路运算放大器,由四个独立的高增益的运算放大器组成。其封装为14脚的SOIC封装,带宽为1.2MHZ。与单电源应用场合的标准运算放大器相比具有一些显著的优势:此芯片的工作电压范围较普通的运放来说非常宽泛,可以工作在3.0V-32V的电源之下;而且其共模输出范围较大,无需采用外部偏置器件。
在设计完调理电路之后,为验证其正确性,我们在multisim中对此调理电路做了简单的仿真,观察结果是否符合我们的预期。仿真设计如图2-5所示:
图2-5 调理电路仿真电路图
在输入端接上1V的阶跃信号之后,我们可以通过示波器观察到此时的输出信号,如图2-6所示:
图2-6 调理电路仿真结果
观察仿真结果,我们可以发现此电路可以很好的将输入信号放大两倍之后输出,符合我们的需求。值得一提的是,这个放大电路的通带增益必须小于3,在设计之初由于没有考虑到这一点导致输出电压不稳定,无法读出角度值,至于原因在上文中的公式2-5已经提及,此处就不再赘述。
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32
倾斜仪
加速度传感器
硬件设计
怎样去设计一种基于
STM32
F103R8T6的
倾斜仪
呢
2021-11-09
1511
可以用陀螺
仪
测量
倾斜
角度吗?
2023-10-12
521
怎样使得‘陀螺
仪
鼠标’能随着你的
倾斜
程度改变鼠标方向
2017-11-13
4823
倾斜
计怎么
实现
指示
倾斜
方向的?
2019-11-06
1051
倾斜
角传感器的测量原理是什么?
2019-10-23
4364
如何用
STM32
实现
一个电子罗盘?
2019-10-27
2266
如何利用陀螺
仪
来更新STEVAL-MKI182V2评估板的
倾斜
测量和电子罗盘数据呢?
2022-12-08
502
用图像处理可以判断出
倾斜
角度吗
2013-05-15
2429
请问怎样在LabVIEW中
实现
柱状图横轴字体的
倾斜
?
2017-09-18
6589
如何利用SCA3000和LPC2210设计三轴
倾斜
角智能传感器?
2021-04-07
1950
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分