找回密码
 立即注册
楼主: 紫气东

市电过零检测相关——AI8G1K08A单片机通过PCA模块捕获市电脉冲宽度,测量结果有误

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:30
  • 最近打卡:2025-06-16 10:11:48
已绑定手机

6

主题

26

回帖

196

积分

注册会员

积分
196
发表于 2025-6-6 16:56:18 | 显示全部楼层
网*** 发表于 2025-6-6 16:01
这个测量方案就是有问题的,很难获得准确结果
>电阻分压直接连IO脚的过零检方法,测并非到真正0V才给信号,具 ...

感谢您的回复,我一条一条回应您
1.火线——1M电阻——       |      ——    |   ——IO口                (电路结构示意图)
                                 10M电阻      100nF电容
                        (并联100nF电容)    |
                                      |                 |
                                   GND             GND
2.过零点的RC滤波延迟确实没有考虑到。
3.ADC采样采的是反馈端引脚,仅有一个100nF电容接地用于滤波。
4.我把PCA检测部分的代码剥离出去,发现测量到的市电脉冲宽度仍然会有少部分超过10ms
5.使用的单片机定时器资源有限(仅有两个),在定时器1中做了分时复用配置,以满足不同定时基准的需求,对时间捕捉的影响需要重新评估
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:30
  • 最近打卡:2025-06-16 10:11:48
已绑定手机

6

主题

26

回帖

196

积分

注册会员

积分
196
发表于 2025-6-6 17:03:47 | 显示全部楼层
网*** 发表于 2025-6-6 16:16
想要确保继电器刚好在电网过零吸合,有一些问题需要考虑
>继电器动作时间一般几个ms,不同型号不同厂家的继电 ...

1. 考虑到产品差异,我本来的设想是根据反馈脚测量情况,动态调整前端过零延迟时间(负反馈),比如说脉宽测量是8ms,那么前端过零延迟的时间就减少2ms,这样市电10ms脉宽就能被完整检测到,也就意味着确实是市电零点时,用电器端通电。
2.感谢您的提醒,电网电压对过零信号的影响确实没考虑到
3.如果考虑到反馈调节,是否可以修正识别门限带来的差异?
4. 感谢您的提醒,之后会关注温度影响
5.单片机时钟问题,如果差异较大,只能当做次品处理


非常感谢您的回复
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6090

回帖

1万

积分

超级版主

积分
12723
发表于 2025-6-6 17:19:50 | 显示全部楼层
首先第一步,测量市电过0点和市电周期,先测好这个再说,一个外中断+定时器的事,简单任务。
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:409
  • 最近打卡:2025-06-17 00:48:11

8

主题

353

回帖

2476

积分

金牌会员

积分
2476
发表于 2025-6-6 17:50:27 | 显示全部楼层
原电路参数过零仿真波形,延迟太大了


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:409
  • 最近打卡:2025-06-17 00:48:11

8

主题

353

回帖

2476

积分

金牌会员

积分
2476
发表于 2025-6-6 18:04:13 | 显示全部楼层
改进如下: R2,R3是为了方便波形比较用,实际电路没这俩电阻
超过50V的1khz谐波噪声会引起过零检测输出多个脉冲,此时可以适当增加滤波电容容量,加到0.01uF时就可以,但相应的过零延时会稍微大一点

截图202506061804035856.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:30
  • 最近打卡:2025-06-16 10:11:48
已绑定手机

6

主题

26

回帖

196

积分

注册会员

积分
196
发表于 2025-6-7 15:00:00 | 显示全部楼层
网*** 发表于 2025-6-6 18:04
改进如下: R2,R3是为了方便波形比较用,实际电路没这俩电阻
超过50V的1khz谐波噪声会引起过零检测输出多个脉 ...

感谢您的回复!

关于滤波延迟的影响确实非常重要,我需要重新设计检测逻辑
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:30
  • 最近打卡:2025-06-16 10:11:48
已绑定手机

6

主题

26

回帖

196

积分

注册会员

积分
196
发表于 2025-6-7 15:01:12 | 显示全部楼层
梁*** 发表于 2025-6-6 17:19
首先第一步,测量市电过0点和市电周期,先测好这个再说,一个外中断+定时器的事,简单任务。 ...

好的,感谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9128

积分

超级版主

DebugLab

积分
9128
发表于 2025-6-8 16:08:13 | 显示全部楼层
方案不合理,存在各种误差和不确定因素
继电器响应时间是不固定的,受机械疲劳、弹性形变、温湿度、触点烧蚀、机械振动、重力方向等因素影响,这些是无法控制的
最好的方式是可控硅(晶闸管)并联继电器,用过零触发光耦(如MOC3063)触发可控硅,延时一个周期(20ms)以上再给继电器通电
这样可控硅发热时间短暂,也不需要散热片,继电器也没有触点烧蚀问题,兼顾功耗和寿命
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:30
  • 最近打卡:2025-06-16 10:11:48
已绑定手机

6

主题

26

回帖

196

积分

注册会员

积分
196
发表于 6 天前 | 显示全部楼层
Debu*** 发表于 2025-6-8 16:08
方案不合理,存在各种误差和不确定因素
继电器响应时间是不固定的,受机械疲劳、弹性形变、温湿度、触点烧 ...

感谢您的建议!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:30
  • 最近打卡:2025-06-16 10:11:48
已绑定手机

6

主题

26

回帖

196

积分

注册会员

积分
196
发表于 6 天前 | 显示全部楼层
暂且不考虑过零方案的可行性

我发现,如果将 端口检测到高电平 视为开启PCA计数模块的条件,那么在PCA停止计数时(比如说启动下降沿中断,在中断内记录计数值并关闭PCA),得到的计数值结果实际上是不准确的

这也就是为什么,我上面测出的脉冲宽度能出现大于10ms的情况,(理论上脉冲宽度最大也就是市电周期的一半)

可能是端口开启电压检测,会造成PCA模块提前启用,也可能PCA模块计数计着就跑飞了

所以我准备放弃使用PCA功能来测量一个到来时刻未知的信号初始脉冲宽度

点评

一般都是处理方式不对导致的。 使用PCA来检测过0、测量周期、移相触发可控硅,这是非常典型的操作方式,也是简单的控制方式,基本没看到有人有遇到不准确的问题,即使使用一般的外部晶振,测量精度很容易能达到0.01%  详情 回复 发表于 6 天前
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-17 06:51 , Processed in 0.294022 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表