zhcj66 发表于 2020-12-14 15:20:10

交流过零检测,控制pwm实现调制如何实现呢?中断100次?

如题<交流过零检测,控制pwm实现调制如何实现呢?中断100次?>

在工频50hz 过零要100次,那么单片机要获取过零点来实现调制,难道只有让mcu在1s去中断100次,去置零计数器来实现脉宽调制,还有其他方法吗?

lyping1987 发表于 2020-12-14 15:35:40

先获得准确的100次中断吧。这个问题解决了,软件好办了。

硬件已经有了吗

zhcj66 发表于 2020-12-14 15:49:01

lyping1987 发表于 2020-12-14 15:35
先获得准确的100次中断吧。这个问题解决了,软件好办了。

硬件已经有了吗 ...

硬件有了,就是这个100次中断太占用资源了,还有好的办法吗

lyping1987 发表于 2020-12-14 16:06:40

zhcj66 发表于 2020-12-14 15:49
硬件有了,就是这个100次中断太占用资源了,还有好的办法吗

100次中断还好吧。。。电路愿意分享学习吗?   我之前一个项目是用AD去读过零。

mcu5i51 发表于 2020-12-14 16:09:08

做什么用,越看越晕;
要输出一个和交流采样同步的PWM波形吗

dengxiaofeng 发表于 2020-12-14 16:15:05

100次 对于 MCU来说很容易的事情   随便啥M0 都可以妥妥的完成

kebaojun305 发表于 2020-12-14 16:19:40

家电中 很多都是125us 中断来处理所有事物的。包含你说的 交流过零调整功率

laujc 发表于 2020-12-14 16:29:18

kebaojun305 发表于 2020-12-14 16:19
家电中 很多都是125us 中断来处理所有事物的。包含你说的 交流过零调整功率 ...

是的,125us应该是顺便推蜂鸣器,每秒中断8K次

cpumaker 发表于 2020-12-14 16:35:12

这种问题百度就有答案吧,简单的话就全桥+光耦

zhcj66 发表于 2020-12-14 16:51:52

mcu5i51 发表于 2020-12-14 16:09
做什么用,越看越晕;
要输出一个和交流采样同步的PWM波形吗

220直流电机调速

zhcj66 发表于 2020-12-14 16:53:26

lyping1987 发表于 2020-12-14 16:06
100次中断还好吧。。。电路愿意分享学习吗?   我之前一个项目是用AD去读过零。 ...

见图片            

ahong2hao 发表于 2020-12-14 17:19:26

10ms中断一次,对于单片机来说,洒洒水拉~{:lol:}。怕处理不过来就上主频更高的

fengyunyu 发表于 2020-12-14 17:26:16

10ms,没有问题

wye11083 发表于 2020-12-14 17:48:33

ahong2hao 发表于 2020-12-14 17:19
10ms中断一次,对于单片机来说,洒洒水拉~。怕处理不过来就上主频更高的 ...

10ms不算什么,我用stc跑到32mhz开到256khz中断交错采样adc再做合并然后串口1mbps出来都轻轻松松。。当然arm不一定能到这么高,毕竟51中断不用保存几个寄存器,而arm需要保存几十个。

lyping1987 发表于 2020-12-14 18:53:18

zhcj66 发表于 2020-12-14 16:53
见图片

ZERO脚的波形你量过吗?100HZ准确吗?

留声而过 发表于 2020-12-14 20:32:42

中断检测加定时器8M的单片机轻松应付了

mcu5i51 发表于 2020-12-15 08:18:03

外部零点中断中复位定时器和IO,定时中断中置位IO,很轻松

zhcj66 发表于 2020-12-15 08:32:02

lyping1987 发表于 2020-12-14 18:53
ZERO脚的波形你量过吗?100HZ准确吗?

数字补丁                        

zhcj66 发表于 2020-12-15 08:34:32

wye11083 发表于 2020-12-14 17:48
10ms不算什么,我用stc跑到32mhz开到256khz中断交错采样adc再做合并然后串口1mbps出来都轻轻松松。。当然 ...

看来stc还是比较牛掰的,最近他们出的stc8怎么样,看价格很低

wye11083 发表于 2020-12-15 09:11:44

zhcj66 发表于 2020-12-15 08:34
看来stc还是比较牛掰的,最近他们出的stc8怎么样,看价格很低

就是8g系列。这么高的中断率深度优化之后差不多占了70%的cpu吧。。所有判断条件全部最精简化,然后多级判断也是重新排序深度优化。进入中断过程有1个cyc的抖动(stc有极个别指令是多t的,用到这些指令就会产生额外延迟)。

tomzbj 发表于 2020-12-15 09:28:04

用现成的过零光耦, TLP3064什么的, 然后mcu这边正常pwm就行了

cc2666 发表于 2020-12-15 09:31:10

罪过罪过,有个类似的应用,定时器中断是100us的,stc的单片机

zhcj66 发表于 2020-12-15 11:11:39

cc2666 发表于 2020-12-15 09:31
罪过罪过,有个类似的应用,定时器中断是100us的,stc的单片机

红外接收或者433解码用的吧

cc2666 发表于 2020-12-15 11:13:49

zhcj66 发表于 2020-12-15 11:11
红外接收或者433解码用的吧

不是,也是光耦过零调pwm,想调的丝滑一下{:lol:} {:lol:} {:lol:}

zhcj66 发表于 2020-12-15 11:43:44

wye11083 发表于 2020-12-14 17:48
10ms不算什么,我用stc跑到32mhz开到256khz中断交错采样adc再做合并然后串口1mbps出来都轻轻松松。。当然 ...

问个题外话,

想控制一个加热棒+型材的温度,通电升温后大概30s 温度传感器才有升温反应,像这种热惯性也比较大

对于这种加热控制如果设置120度,温度过冲不要超过2度稳定后温度控制在±1%以内拨动,有什么好的办法吗?

买外面的温控器30升120能超温到180度,60度的差值有点恐怖,好在最终稳定能看着稳定在120度上

fengyunyu 发表于 2020-12-15 12:10:00

交流光耦,TLP620,学习

cheng-8yang 发表于 2020-12-15 12:30:31

zhcj66 发表于 2020-12-14 16:53
见图片

为什么输出要加个比较器,不加行吗?

wye11083 发表于 2020-12-15 13:25:39

zhcj66 发表于 2020-12-15 11:43
问个题外话,

想控制一个加热棒+型材的温度,通电升温后大概30s 温度传感器才有升温反应,像这种热惯性也比 ...

整一批设备,然后用不同参数跑一批数据,拿svm训一下做个pid就行了。

iamseer 发表于 2020-12-15 13:38:11

wye11083 发表于 2020-12-15 13:25
整一批设备,然后用不同参数跑一批数据,拿svm训一下做个pid就行了。

同求 ”拿svm训一下做个pid“ 的思路

lyping1987 发表于 2020-12-15 19:59:38

zhcj66 发表于 2020-12-15 08:32
数字补丁

波形看上去很漂亮。

596142041 发表于 2020-12-15 20:00:54

你这是控制晶匝管么

marshallemon 发表于 2020-12-15 21:05:28

过零要做好,貌似也不容易吧,过零相位准,触发阈值低,容易误触发;触发阈值设置的高,过零相位差大,抗干扰能力强;

zhcj66 发表于 2020-12-16 10:09:30

marshallemon 发表于 2020-12-15 21:05
过零要做好,貌似也不容易吧,过零相位准,触发阈值低,容易误触发;触发阈值设置的高,过零相位差大,抗干 ...

带上负载后,运行了一会mcu(gd的)莫名其妙的死掉了,重启恢复,但是还会死掉

lyping1987 发表于 2020-12-16 21:44:22

zhcj66 发表于 2020-12-16 10:09
带上负载后,运行了一会mcu(gd的)莫名其妙的死掉了,重启恢复,但是还会死掉

死掉的原因找到了吗?和中断有关?

szxszx 发表于 2020-12-17 07:46:50

10ms中断对于单片机很轻松,难道怕单片机累着?

sdsdc 发表于 2020-12-17 08:30:28

zhcj66 发表于 2020-12-16 10:09
带上负载后,运行了一会mcu(gd的)莫名其妙的死掉了,重启恢复,但是还会死掉

可能是这样的:电容用的少,布线不合理

zhcj66 发表于 2020-12-17 08:35:12

lyping1987 发表于 2020-12-16 21:44
死掉的原因找到了吗?和中断有关?

找到了,一根传感器线碰到了外壳,接地了

zhcj66 发表于 2020-12-17 08:36:32

本帖最后由 zhcj66 于 2020-12-17 08:37 编辑

szxszx 发表于 2020-12-17 07:46
10ms中断对于单片机很轻松,难道怕单片机累着?

喜欢上了mcu的儿子--DMA,有种强迫症{:biggrin:}

uboot 发表于 2020-12-17 22:51:44

我觉得用125us中断一次已经是太过频繁了。但我看小家电的有人的代码要开两个中断,一个是100us中断一次,这个是主时标以及很多东西都要放在这处理;另一个是50us中断一次,用于产生不同的pwm频率,发出不同的声音,单片机是普通的台系或者国产8位机。

qwe2231695 发表于 2020-12-18 00:38:46

家电 机器人项目 一般实时控制5ms - 10ms足矣,GUI可以去到 25ms~50ms.

faye 发表于 2021-9-1 00:02:06

zhcj66 发表于 2020-12-14 16:53
见图片

楼主你这个过零检测好用吗,会不会误触发

akey3000 发表于 2021-9-1 06:24:55

不错,学习

zhcj66 发表于 2021-9-1 09:15:56

faye 发表于 2021-9-1 00:02
楼主你这个过零检测好用吗,会不会误触发

未发现   

uboot 发表于 2023-11-1 08:15:20

挖旧帖,220v接一个1m大电阻直连mcu io口来检测过零,发现偶尔会丢失一个过零波形(即本来是每隔10ms电平就变化一次的,但偶尔出现20ms才变化一次),不知为何

yuyu87 发表于 2023-11-1 08:33:08

我一个加热控制的是不做过零检测,直接100HZ的PWM控制,最多两头误差2%,可以忽略,用了好几年了,很稳定,还简单。


修改:
是1HZ的PWM控制,

gdoujiajia 发表于 2023-11-6 15:58:29

yuyu87 发表于 2023-11-1 08:33
我一个加热控制的是不做过零检测,直接100HZ的PWM控制,最多两头误差2%,可以忽略,用了好几年了,很稳定, ...
(引用自45楼)

在零点附近开和在波峰波谷开,不会相差很多吗

yuyu87 发表于 2023-11-6 17:25:07

50hz的一秒有100个馒头波,所以最多误差2%
页: [1]
查看完整版本: 交流过零检测,控制pwm实现调制如何实现呢?中断100次?