STMCU小助手
发布时间:2022-6-21 13:23
|
在之前的文章中,我们已经了解了使用 STM32 进行 ADC 转换。现在,我们将了解STM32 中的 PWM(脉冲宽度调制)以及如何使用 PWM 技术控制 LED 的亮度或直流风扇的速度。 我们知道有两种类型的电路信号:模拟和数字。模拟信号有3V、3.1V、2V...等电压信号,而数字信号只有1 和 0。6 q7 e$ K n1 d. _* g 传感器输出的是模拟信号,这些模拟信号使用 ADC 转换为数字信号,因为微控制器只理解数字信号。处理完这些 ADC 值后,需要再次将输出转换为模拟形式以驱动模拟设备。为此,我们使用某些方法,如 PWM、数模 (DAC) 转换器等。 : c5 h: ?/ \. y9 s# x 什么是 PWM(脉冲宽度调制)?(前面的文章也有相关介绍) PWM可以让数字值控制模拟设备,例如控制电机的速度,LED的亮度等。我们知道电机和LED工作在模拟信号上。但是PWM不提供纯模拟输出,PWM看起来像是由短脉冲产生的模拟信号。, C5 ^- P* q5 \ Q$ n $ J5 C& ? F+ X PWM 的占空比 PWM 信号保持高电平(ON Time)的时间百分比称为占空比。如果信号始终打开,则占空比为 100%,如果始终关闭,则占空比为 0%。 ' p0 S" Z* `6 H& H/ O 占空比 = ON Time /(ON Time + OFF Time): k# a i: a6 s5 x, k* R- {" L 3 f! T+ w; A! k) N2 Z8 u+ v3 Y) @
$ A+ D: `$ P0 ?" ]" o3 A6 Z 0 c4 j C/ r% M: q9 P7 @5 r8 W! w* S STM32中的PWM; n6 l. f& R$ H: H2 ~ STM32F103C8 有 15 个 PWM 引脚和 10 个 ADC 引脚。它具有 16 位 PWM 分辨率(2^16)。& z7 Q- V7 g4 s0 }" X/ l 3 A0 \3 f1 [& ], S 所以 65535 的值为100% 占空比,平均电压=总电压;8 d. E% [1 E0 u0 v* N3 j$ T; H3 g 同样,32767 的值为50% 占空比,平均电压=50%总电压; 13107 的值为20% 占空比,平均电压=20%总电压。 ; U ]1 n2 j6 I& \, b 这里我们使用电位器和 STM32 通过 PWM 技术来改变 LED 的亮度和直流风扇的速度。1602 LCD用于显示 ADC 值 (0-4095) 和输出的PWM 值 (0-65535) 。4 |9 v5 Z( {: j, \& d" S 直流风扇:这里使用的直流风扇是PC 的 BLDC 风扇。它需要额外提供电源,所以我们使用 9V 直流电池。: _9 m) T- o$ j& m1 t 4 B- B( Q/ Z3 e$ F* f/ x- P; ~ ULN2003电机驱动IC:用于单向驱动电机。下面是ULN2003的图片图:
引脚(IN1 到 IN7)是输入引脚,(OUT 1 到 OUT 7)是相应的输出引脚。COM 是负载的正极电压。 电位器:使用两个电位器,一个用于分压器,用于模拟输入到 ADC,另一个用于控制 LED 的亮度。. W$ |5 {/ E. I9 ^$ G) d . `, G8 A- U% ^4 l STM32的管脚细节: J8 a" [& U; c% ^: x! J# ?
1 s4 E/ M2 \8 O+ { 我们可以看到 PWM 引脚以波浪线(~) 表示,有 15 个这样的引脚;有 10 个 ADC 引脚用于模拟输入,ADC 引脚以绿色标出。# n' A" a: `4 s) c ) z+ E1 ?. w0 n4 M1 z4 Y- g 电路图和连接 : D/ e/ U$ x1 ~% ?; ~
& m: R. R5 i$ e0 C2 y 5 C( P& d' z" K; X# m- Q3 a1 ^ STM32 与各种组件的连接说明如下:% @$ d; V* \# o- p0 _ R > STM32的模拟(ADC)输入: X" D* C; |/ o5 }5 ~; q 靠近ST32开发板的电位器的中心引脚连接到STM32 的ADC引脚(PA4),该电位器用来调节输入ADC的电压。 >STM32连接LED3 S1 o7 [& b- h ; {! q5 R/ g5 e; L8 \5 N' V STM32 PWM 输出引脚(PA9)通过串联电阻连接到 LED 的正极引脚,LED并联一个电容。8 J7 w( o2 O% J6 B) B >STM32 连接ULN2003 和 ULN2003连接风扇 : |4 F; r, X& ]; a$ b STM32 PWM 输出引脚(PA8)连接到 ULN2003 IC 的输入引脚(IN1),ULN2003 的相应输出引脚(OUT1)连接到 直流风扇的负极线。 " a& B/ z' K M 直流风扇的正极引脚连接到 ULN2003 IC 的 COM 引脚,外部电池(9V DC)也连接到 ULN2003 IC 的相同 COM 引脚。ULN2003 的GND、 STM32的GND、电池负极连接到电路相同的 GND。 5 p$ M6 H2 M J$ x3 R >STM32 连接LCD (1602)
>整体电路 : r8 W4 C! ^( p8 `% H, B& j7 D) L
编程STM322 ^0 t& |1 G" V( \# W. u
|
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版