• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖
  • 论坛首页
  • 单片机MCU/嵌入式
  • 请老师们给新手教一下:1、要求每个LED灯泡的闪烁由一个MCU控制; 2、要求100ms开;400ms关(1秒两个周期); 3、、要求在同一输入AC 90--110V 线上并N个灯泡,灯泡的闪烁要同步;

请老师们给新手教一下:1、要求每个LED灯泡的闪烁由一个MCU控制; 2、要求100ms开;400ms关(1秒两个周期); 3、、要求在同一输入AC 90--110V 线上并N个灯泡,灯泡的闪烁要同步;

1、要求每个LED灯泡的闪烁由一个MCU控制;

2、要求100ms开;400ms关(1秒两个周期);

3、要求在同一输入AC 90--110V  线上并N个灯泡,灯泡的闪烁要同步;

MCU是STC15F104W

全部回复(9)
正序查看
倒序查看
wuzijun
LV.4
2
2017-02-13 07:50
请老师们给指点:1,如何实现同步且要保证100ms开,400ms关的时间不出错
0
回复
2017-02-14 08:48
一个mcu 控制一个灯 ,有点奢侈吧,假设只有一个,那么90V出来经过降压电路之后得到DC5V稳压,滤波,给mcu供电。程序方面都得一样,这样上电之后,通过定时器定时才会有同步的效果,当然这是有误差的几微秒可以忽略不计。再有就是灯泡 电流大的话需要加驱动电路,不然还是不会亮
0
回复
wuzijun
LV.4
4
2017-02-14 09:46
@红豆一马萨
一个mcu控制一个灯,有点奢侈吧,假设只有一个,那么90V出来经过降压电路之后得到DC5V稳压,滤波,给mcu供电。程序方面都得一样,这样上电之后,通过定时器定时才会有同步的效果,当然这是有误差的几微秒可以忽略不计。再有就是灯泡电流大的话需要加驱动电路,不然还是不会亮

红豆一马萨老师:客户要求,(有驱动LED的电路)

要求一个灯泡一个MCU,100ms开,400ms关;并且N个灯泡接在同一交流是100V的输入电压上,灯泡的闪灭要同步

0
回复
2017-02-14 11:09
@wuzijun
红豆一马萨老师:客户要求,(有驱动LED的电路)要求一个灯泡一个MCU,100ms开,400ms关;并且N个灯泡接在同一交流是100V的输入电压上,灯泡的闪灭要同步
那这个主要写程序控制了,定时器定时100ms第0ms到了亮,也就是说程序开始就给亮.100ms开始灭,一直加到500ms的时候又亮,到600又灭这样在一秒内完成两个周期循环程序因人而异,这就是简单的定时计数器罢了
0
回复
2017-02-14 11:16
@wuzijun
红豆一马萨老师:客户要求,(有驱动LED的电路)要求一个灯泡一个MCU,100ms开,400ms关;并且N个灯泡接在同一交流是100V的输入电压上,灯泡的闪灭要同步
当然如果精度不高,还可以根据你的晶振,用软件延时那就更简单了,做个带参数的单位延时函数100ms,然后程序开始,IO口统一拉低,然后进入死循环。亮延时1,不亮延时4。没了。也可以做一个单位延时1ms的,程序里面改为100和400即可,以后还可以作为单位延时,在别的产品中使用就行。
0
回复
2017-02-14 11:27
@红豆一马萨
当然如果精度不高,还可以根据你的晶振,用软件延时那就更简单了,做个带参数的单位延时函数100ms,然后程序开始,IO口统一拉低,然后进入死循环。亮延时1,不亮延时4。没了。也可以做一个单位延时1ms的,程序里面改为100和400即可,以后还可以作为单位延时,在别的产品中使用就行。
但问题就是,不能同步,假设你有十个MCU,程序运行的好好地,其中有一个程序飞了,好加个看门狗自动复位了。但是与其他的不能同步,只能手动关闭所有,再重新启动。不过有种想法不知道可行不,第二个单片机开始每个检测上个单片机一个管脚高低电平值(这个值的设置和灯的状态一致),然后再加入看门狗就算程序跑飞也可以通过检测管脚来保持一致
0
回复
wuzijun
LV.4
8
2017-02-14 16:12
@红豆一马萨
但问题就是,不能同步,假设你有十个MCU,程序运行的好好地,其中有一个程序飞了,好加个看门狗自动复位了。但是与其他的不能同步,只能手动关闭所有,再重新启动。不过有种想法不知道可行不,第二个单片机开始每个检测上个单片机一个管脚高低电平值(这个值的设置和灯的状态一致),然后再加入看门狗就算程序跑飞也可以通过检测管脚来保持一致
红豆一马萨老师:问题还有同步,要求在同一条交流100V的输入上并接N个灯泡,灯泡的闪烁要同步
0
回复
2017-02-18 15:55
@红豆一马萨
但问题就是,不能同步,假设你有十个MCU,程序运行的好好地,其中有一个程序飞了,好加个看门狗自动复位了。但是与其他的不能同步,只能手动关闭所有,再重新启动。不过有种想法不知道可行不,第二个单片机开始每个检测上个单片机一个管脚高低电平值(这个值的设置和灯的状态一致),然后再加入看门狗就算程序跑飞也可以通过检测管脚来保持一致

你这样做:加1个过零检测电路,每个灯泡的导通从通电后的第0.5秒(这个时间可以自己调整)后的第一个过0点开始亮,那么所有的灯就同步了。为了防止个别个程序跑飞后复位不同步,你的计时器(它的时间为了防止有累加误差,每过几分钟或更长时间就要通过过0检测去校正)要一直累加,当跑飞后的单片机复位后,它控制的灯泡要在第N+0.5秒后的第一个过0点的时候,开始亮灯

这样做的前提是所有的灯泡的控制开关是同1个,如果是每个灯泡的通电是分别控制的话,那只能通信的方式了

0
回复
wuzijun
LV.4
10
2017-02-19 07:30
@sheng_ge520
你这样做:加1个过零检测电路,每个灯泡的导通从通电后的第0.5秒(这个时间可以自己调整)后的第一个过0点开始亮,那么所有的灯就同步了。为了防止个别个程序跑飞后复位不同步,你的计时器(它的时间为了防止有累加误差,每过几分钟或更长时间就要通过过0检测去校正)要一直累加,当跑飞后的单片机复位后,它控制的灯泡要在第N+0.5秒后的第一个过0点的时候,开始亮灯这样做的前提是所有的灯泡的控制开关是同1个,如果是每个灯泡的通电是分别控制的话,那只能通信的方式了
谢谢!老师们的建议!!
0
回复