免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: jiaxv
打印 上一主题 下一主题

求助:python树莓派多线程编程 [复制链接]

论坛徽章:
11
2015年迎新春徽章
日期:2015-03-04 09:55:282017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之辽宁
日期:2016-12-15 10:24:1715-16赛季CBA联赛之佛山
日期:2016-11-30 09:04:2015-16赛季CBA联赛之江苏
日期:2016-04-29 15:56:1215-16赛季CBA联赛之同曦
日期:2016-04-12 13:21:182016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之山东
日期:2016-02-16 11:37:52每日论坛发贴之星
日期:2016-02-07 06:20:00程序设计版块每日发帖之星
日期:2016-02-07 06:20:0015-16赛季CBA联赛之新疆
日期:2018-01-09 16:25:37
11 [报告]
发表于 2016-03-31 09:51 |只看该作者
回复 10# amduroncn

这个问题的本质其实是生产者太快了,消费者太慢了
并且消费者最好每次消费的都是最新的

用multiprocessing.Process处理消费者就够了,multiprocessing.Pool没有必要
考虑用一个multiprocessing.Queue把数据传过去,限定qsize为N(1<N<5)
生产者往里放:如果是满的,弹出一个,再放
消费者,取的时候,一直取最后一个来处理


   

论坛徽章:
0
12 [报告]
发表于 2016-04-02 15:21 |只看该作者
回复 6# amduroncn


    电热丝是ac220v供电的,功率大约有70W左右?在程序未修改为多线程版本之前继电器一开始动作比较频繁,因为上限温度和下限温度差距只有0.2度(在网上查到的鸡蛋孵化温度范围是37.7-37.9),所以当温度达到下限37.7度后,如果被数码管显示子程序阻塞并加热6秒后,就会超过上限的37.9度,这时候降温子程序将会启动风扇来降温,然后下一轮的数码管子程序又会阻塞并降温6秒,温度又会降到37.7度之下。这种情况下继电器就会动作较为频繁了。
我试试照您的方法来改为多线程版本,应该会改善很多吧。
还有,您提到的pwm升温,具体怎么个实现法呢?还望不吝赐教。

论坛徽章:
0
13 [报告]
发表于 2016-04-02 17:42 |只看该作者
回复 11# bskay


    您分析的极是,在这里获取传感器温度子程序是生产者,耗时不到1秒,而数码管显示子程序是消费者,耗时6秒,而且消费者每次都需要最新的数据。
您的意思是把消费者设为一个进程来获取最新的数据,数据从一个生产者提供的队列里来获取。
那么生产者也需要开一个进程吗?方便的话,您能写一些相关的代码吗?非常感谢!

论坛徽章:
0
14 [报告]
发表于 2016-04-03 02:38 |只看该作者
本帖最后由 amduroncn 于 2016-04-03 02:47 编辑

找到合适的电源

QQ图片20160403022539.png (13.01 KB, 下载次数: 34)

QQ图片20160403022539.png

论坛徽章:
0
15 [报告]
发表于 2016-04-03 02:39 |只看该作者
本帖最后由 amduroncn 于 2016-04-03 03:01 编辑

找到合适的电源(最好将电源定为12V,谁家没有几个旧电脑电源呢,一般12V它可以提供10A的电流输出能力,千万不要用小功率12V电源,接上要烧的),确定电压电流,然后上TB买低压的发热丝,根据使用的功率,找到合适的场效应管(要求导通电阻小,从废电脑主板cpu供电部分拆一般都能满足要求,比如ntd4806,(30V,6mohm@Vgs 10V)。

然后控制pwm占空比,调节发热丝功率,温度然后就恒定了,如果控制得好,超调量小,连风扇都可以省略~~~

论坛徽章:
0
16 [报告]
发表于 2016-04-12 10:23 来自手机 |只看该作者
直流控制起来是不是可以比较精确的控温呢?可是我的温箱热丝已经缠好了,查了查其他资料,好像用pwm方式来控制固态继电器做控制也可以(目前用的是电磁继电器),但是具体怎么来控制脉宽和加热之间的关系呢?还望您能再次拨冗指教。

论坛徽章:
0
17 [报告]
发表于 2016-04-23 22:09 |只看该作者
回复 16# jiaxv


    不是直流就能精确控制,交流也是一样。我只是认为大电压的交流搞起来有危险。

论坛徽章:
0
18 [报告]
发表于 2016-04-28 20:34 |只看该作者
回复 17# amduroncn


    谢谢指教,我查询了一些恒温控制的文章,其中提到了使用Pid控制的方法,尤其提到了一种增量pid的方法,可惜没有python的例子。我希望能借鉴到这些方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP