构建一个带RT-Spark(Spark-1)的简易电压表
扫描二维码
随时随地手机看文章
本项目的目标是制作一个非常简单的电压表,至少具备良好的精度,并理解模数转换器(ADC)的工作原理。该项目使用了RT-Thread公司生产的RT-Spark(Spark-1)开发板。
模数转换器(ADC)
ADC是一种外设设备,即一种具有特定功能的模块或子系统,通常与更大系统连接或集成,其目的是将模拟信号转换为数字信号,因此得名ADC。
在此场景中,ADC 是 RT-Spark(Spark-1)开发板的集成外设设备,采用 STM32F407ZGT6 微控制器。
设置ADC
首先,了解RT-Spark(Spark-1)配备了4个专用转换器是有利的:其中3个技术上相同但通道不同,还有一个为数字到模拟转换器(DAC)。在此场景下,为了简化操作,将使用第一个ADC。该ADC的数字值范围为0-4095,你需要通过代码将这些数值映射为电压。
首先,创建一个新的STM32项目,选择STM32F407ZGT6微控制器,并让默认设置自动生效。
然后,将引脚PA2设置为使用ADC模块1的通道2,并生成CubeMX代码。请注意,无需更改PA2引脚的GPIO配置,只需保持其默认设置即可。
输入电路图
在本节中,将使用分压器的概念,原因有以下几点:一是防止电压和电流超过RT-Spark引脚的最大或允许值,否则会导致电路因输入信号被减半而损坏或烧毁;二是通过降低通过的电流来减少检测电压时对电池的功耗。
完成后,更新代码,然后编译并运行。之后,改为进入调试模式,而不是直接运行代码,来检查 rawValue 变量的值。
增强型电压读取精度(可选)
为了进一步提高电压读数,只需使用可测量1MΩ电阻的万用表,测量R1和R2的实际电阻,并采用以下公式
本文编译自hackster.io





