
简介:2 ^& |" o1 @, z3 E9 w/ J 这是基于STM32F103RBT6这个MCU设计的硬件电路,利用外部中断接收触发信号,定时器进行PWM占空比的输出,485进行指令控制占空比,通过可控硅实现220V市电的输出。* W9 u9 o# c0 r+ ?0 J" `8 J 0 Z5 D1 ?0 R8 W ?4 W 原理:2 q$ B2 c3 n6 K0 J3 A; r7 ] ![]() 这个是输入波形的输出波形的大致原理。 ![]() ) @- l: C4 V6 Y3 e, P$ Y7 J% h 解析: 这里进入的是220V电压,为50HZ。经过我们原理中的B1这个器件波形变成100HZ的波形,再进过器件U6转成如图100HZ的波形,这个为MCU输入同步信号检测。当我们检测到一个上升沿的时候启动PWM信号输出,这里PWM也要设为100HZ的频率。输出这个波形可以自己调节占空比,当PWM为低电平的时候可控硅不导通,高电平的时候导通,通过可控硅再次将波形转化为50HZ。 # s3 p Y7 b- ~! J; Z% ? ! ~0 j3 j& E9 n; a* P. T 程序逻辑: 程序逻辑流程图: ![]() : W; H0 j# ?! d D/ G! ~9 | 解析:我们通过指令将这个占空比数值传给PWM配置(定义一个全局变量)。这里每次检测到上升沿就进行一次PWM启动,完成后退出中断,这里要一直采集输出信号进行波形校正,所以在中断里面进行配置。这里采用上升沿中断比较好,因为有硬件延时。 3 A+ c! j& \6 \2 U; _" h ) ^7 }: ~) l' q( q& I3 J 下面是实现的效果图,第一张图片是输入检测输出占空比为10%的PWM两个波形,第二张图片是40%的PWM占空比和220V输出的两个波形,效果如下: ![]() 5 s& T8 S \, @( O c. q 注意: 这里中断方式采用上升沿中断较好,因为硬件也有延时,定时器计数要采用向下计数,因为PWM那个基准值,当计数值大于这个基准值的时候输出为低电平,小于这个基准值的时候为高电平。 |
梳理STM32芯片的内部架构
使用Nano板验证驱动SPI串口屏的颜色显示
【STM32H7体验】+CANopen协议简介
【经验分享】基于STM32F103C8的 USB 外部flash虚拟U盘
【经验分享】基于STM32F103的NEC红外发送接收使用同一个定时器的一体设计
STM32F103的GPIO与DMA的终极(没啥用)玩法
STM32F103的RTC模块用作32位计数器
蓝桥杯旧嵌入式板STM32F103RBT6驱动练习笔记
STM32F103RBT6型号说明
基于STM32F103C8T6的点灯设计