
简介: 这是基于STM32F103RBT6这个MCU设计的硬件电路,利用外部中断接收触发信号,定时器进行PWM占空比的输出,485进行指令控制占空比,通过可控硅实现220V市电的输出。 + @! Y' s6 U% K: w( L 原理:; g* g8 }* f7 u* z; ?% x ![]() 这个是输入波形的输出波形的大致原理。 ![]() % S2 S8 z: Y% N) D4 h# F 9 Y, L/ a3 g: |! S( h% ^ 7 f4 N9 _* ~- D ]" Y+ Y : H" }3 J) f+ S: R' G( b S" V! k 解析:$ |' {9 n# b. Y0 n U1 Q, O- i 这里进入的是220V电压,为50HZ。经过我们原理中的B1这个器件波形变成100HZ的波形,再进过器件U6转成如图100HZ的波形,这个为MCU输入同步信号检测。当我们检测到一个上升沿的时候启动PWM信号输出,这里PWM也要设为100HZ的频率。输出这个波形可以自己调节占空比,当PWM为低电平的时候可控硅不导通,高电平的时候导通,通过可控硅再次将波形转化为50HZ。% V5 _# X. T% |* K$ B) A: m$ U9 ] % D7 q. j7 D, G 程序逻辑: 程序逻辑流程图: ![]() $ T& M, X' \9 k5 h) k1 F8 u5 l 解析:我们通过指令将这个占空比数值传给PWM配置(定义一个全局变量)。这里每次检测到上升沿就进行一次PWM启动,完成后退出中断,这里要一直采集输出信号进行波形校正,所以在中断里面进行配置。这里采用上升沿中断比较好,因为有硬件延时。% |( P- N" t7 H: ~: r9 t* P 下面是实现的效果图,第一张图片是输入检测输出占空比为10%的PWM两个波形,第二张图片是40%的PWM占空比和220V输出的两个波形,效果如下: ![]() 注意: 这里中断方式采用上升沿中断较好,因为硬件也有延时,定时器计数要采用向下计数,因为PWM那个基准值,当计数值大于这个基准值的时候输出为低电平,小于这个基准值的时候为高电平。 |
梳理STM32芯片的内部架构
使用Nano板验证驱动SPI串口屏的颜色显示
【STM32H7体验】+CANopen协议简介
【经验分享】基于STM32F103C8的 USB 外部flash虚拟U盘
【经验分享】基于STM32F103的NEC红外发送接收使用同一个定时器的一体设计
STM32F103的GPIO与DMA的终极(没啥用)玩法
STM32F103的RTC模块用作32位计数器
蓝桥杯旧嵌入式板STM32F103RBT6驱动练习笔记
STM32F103RBT6型号说明
基于STM32F103C8T6的点灯设计