STMCU小助手
发布时间:2022-6-21 17:29
|
几乎每个嵌入式应用程序中都使用的一个常见功能是 ADC 模块(模数转换器)。这些模数转换器可以从温度传感器、倾斜传感器、电流传感器、弯曲传感器等模拟传感器读取电压。现在,我们学习 如何使用 STM32F103C8 中的 ADC 读取模拟电压,我们将一个电位器连接到 STM32 Blue Pill 板,通过改变电位器阻值为ADC提供不同的电压,将读取的电压显示在 1602 LCD 上。 % d. w) B# K! v$ S STM32F103C8 中的 ADC' G3 k1 I) Z* X8 ]# { 在 STM32F103C8有 10 个通道、12 位 ADC,输入范围为 0V -3.3V。它将 0 到 3.3 伏之间的输入电压映射为 0 到 4095 之间的整数值。2 a2 |: K) u6 s4 t& j& w9 W4 i 这里的术语 10 通道意味着有 10 个 ADC 引脚可以用来测量模拟电压。术语 12 位表示ADC 的分辨率,表示000000000000-111111111111(2^12即 4096)。这是我们 ADC 的采样步数,因此我们的 ADC 值的范围从 0 到 4095。该值将从 0 增加到4095基于每步电压值,可通过方面方式计算 电压 / 步数 = 参考电压 / 4096 = (3.3/4096= 8.056mV) 每单位。 模拟信号如何转换为数字格式 由于计算机仅存储和处理二进制/数字值(1 和 0)。因此,模拟信号(如传感器的伏特输出)必须转换为数字值以进行处理,并且转换需要准确。当在模拟输入端向 STM32 提供输入模拟电压时,模拟值被读取并存储在整数变量中. 使用以下方式将存储的模拟值(0-3.3V)转换为整数值(0-4096):" Q Q: m% H4 X! F2 o, e 1 J0 E9 z4 z0 F1 H 输入电压 = (ADC 值 / ADC 分辨率) * 参考电压 . x B* o* y9 O. O 分辨率 = 4096$ _5 k7 l& p' K: k: \ @& O 参考电压 = 3.3V" I3 h1 ^3 q+ n5 f STM32F103C8T6 中的 ADC 引脚# N: \8 L9 t* K STM32 中有 10 个ADC引脚,从 PA0 到 PB1。9 e; g; O5 |6 b0 K& ^) y. Y " k- W* f: C% H
电路图及说明 / E0 g2 z+ X2 m; Q, j% d5 k! I
LCD与STM32连接. _% X5 \) J! @- D 5 c; _1 ^& T2 p# \- F5 J+ w! B8 I
$ l3 y% R+ F* L7 K, I4 N7 [2 V% k 1602 LCD根据上表进行连接。电路中有两个电位器,第一个用于分压器,用于改变电压并为 STM32 提供模拟输入。该电位器的左侧引脚从 STM32(3.3V)获得输入正电压,右侧引脚接地,电位器的中心引脚连接到 STM32 的模拟输入引脚(PA7)。另一个电位器用于改变 LCD 显示屏的对比度。STM32 的电源由 PC的 USB 电源提供。4 ]2 _+ Z' R7 F/ { 2 h, a" _4 Q2 D" y! ~
: \% u. U. a) z T3 M) a! C P- V 对 STM32 进行编程以读取 ADC 值9 N7 Y& K5 q) r0 X6 \+ b/ A; g 通过 STM32 的 USB 端口将其连接到 PC 并开始使用 ARDUINO IDE 进行编程。在程序中,读取模拟值并使用该值计算电压,然后在 LCD 屏幕上显示模拟值和数字值。
|
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版