凌晨了,一个程序还没搞定,大神们给点意见

[复制链接]
3950|22
 楼主| impenger 发表于 2013-5-26 02:02 | 显示全部楼层 |阅读模式
这是毕设中的一小部分,利用单片机和传感器测量电磁阀的开启时间和关闭时间,基本思路为阀前后各有一个压力传感器,电磁阀开启前先采集阀前压力作为参考值,然后电磁阀开启,当单片机采的的阀前后电压值一致时,这段时间则为需要求得的时间,并在数码管上显示时间。问题:如何计算时间?有思路的请详细说一下程序设计思路,如何定时计数等。单片机为51单片机。谢谢了。晚安
 楼主| impenger 发表于 2013-5-26 11:52 | 显示全部楼层
没有大神们给点意见啊?
lcdi 发表于 2013-5-26 14:00 | 显示全部楼层
本帖最后由 lcdi 于 2013-5-26 14:04 编辑

开启时间是不是说,电磁阀接到控制信号,然后电磁阀完全开启,这两者之间的时间?
提醒你一点,电磁阀开启时间也不会太慢的,而压力传感的反应时间却也不快,要计算一下这样的方案能不能满足要求。

另外,电磁阀开启后,到前后压力平衡,这也需要一定的时间,跟内部流体,管径,前后容积都有关系。
 楼主| impenger 发表于 2013-5-26 15:28 | 显示全部楼层
lcdi 发表于 2013-5-26 14:00
开启时间是不是说,电磁阀接到控制信号,然后电磁阀完全开启,这两者之间的时间?
提醒你一点,电磁阀开启 ...

对,开启时间是这两者的时间,一般开启时间为几或者十几ms,用压电式压力传感器,基本能满足,关于管径,流体等因素您说的很对,我就不能考虑了,我是学电气自动化的,这个液压方面的让我很头疼了。很谢谢您。
ningling_21 发表于 2013-5-26 15:44 | 显示全部楼层
本帖最后由 ningling_21 于 2013-5-26 15:46 编辑

计算时间,常用的是启动定时器来计时...

当条件满足时,启动定时器,条件停止时,停止定时器,看在这个时间内定时器计数多少次,例如设定定时器10MS,计数10次时间就是100MS了。
hwyqxl1234 发表于 2013-5-26 15:50 | 显示全部楼层
看看是什么东西呢
liub_2014 发表于 2013-5-26 16:02 | 显示全部楼层
哈哈都毕业了啊
lcdi 发表于 2013-5-26 16:19 | 显示全部楼层
impenger 发表于 2013-5-26 15:28
对,开启时间是这两者的时间,一般开启时间为几或者十几ms,用压电式压力传感器,基本能满足,关于管径, ...

如果只是要测量电磁阀本身开启时间,不用测量压力平衡的时间。
那么你可以考虑一下测量电磁阀的电流,因为电磁阀开始开启,到磁芯完全吸合,吸合以后,这些阶段的电流特征应该是不同的,我不是很了解,你测测看。
 楼主| impenger 发表于 2013-5-26 16:41 | 显示全部楼层
liub_2014 发表于 2013-5-26 16:02
哈哈都毕业了啊

20多天之后闪人。
 楼主| impenger 发表于 2013-5-26 16:42 | 显示全部楼层
lcdi 发表于 2013-5-26 16:19
如果只是要测量电磁阀本身开启时间,不用测量压力平衡的时间。
那么你可以考虑一下测量电磁阀的电流,因 ...

嗯,谢谢您耐心的回复。
cm398515912 发表于 2013-5-26 16:47 | 显示全部楼层
同为毕设的事情苦恼中。。。。不过我是计算机系的  做的单片机的proteus仿真用例系统
呵呵
lcdi 发表于 2013-5-26 16:52 | 显示全部楼层
impenger 发表于 2013-5-26 16:42
嗯,谢谢您耐心的回复。

百度了一下,你看看这个文档,第一页的曲线和前后的文字说明了电磁阀的电流曲线特征。
http://wenku.baidu.com/view/7682588ca0116c175f0e485f.html
 楼主| impenger 发表于 2013-5-26 16:59 | 显示全部楼层
ningling_21 发表于 2013-5-26 15:44
计算时间,常用的是启动定时器来计时...

当条件满足时,启动定时器,条件停止时,停止定时器,看在这个时 ...

您的意思是一个计数器,一个定时器吗?如果是条件满足后关闭定时器,我怎么知道定时是10ms呢?是不是先设定定时10ms,满足条件后计数器、定时器同时工作,条件停止时,看看计数多少。计数×10ms为所求的时间?或者是先设定一个参考定时,然后让count++,如果条件满足,m=count,则时间为m×参考定时。这样行么?现在感觉好混乱。
ningling_21 发表于 2013-5-26 17:40 | 显示全部楼层
impenger 发表于 2013-5-26 16:59
您的意思是一个计数器,一个定时器吗?如果是条件满足后关闭定时器,我怎么知道定时是10ms呢?是不是先设 ...

一个定时器就行了,用一个变量计数,定时器设定为5MS中断,需要计时的时候使能定时器。中断中进行计数。到最后 例如磁阀断开或闭合时停止定时器,看看 这个变量记了几个数,*5 就知道是多少毫秒了。
ocon 发表于 2013-5-26 17:55 | 显示全部楼层
建议用光耦和电阻直接测量电磁阀线圈上的电压有无,不过有可能难度太小你们老师通不过。
 楼主| impenger 发表于 2013-5-26 20:41 | 显示全部楼层
ocon 发表于 2013-5-26 17:55
建议用光耦和电阻直接测量电磁阀线圈上的电压有无,不过有可能难度太小你们老师通不过。 ...

嗯,直接测电磁阀线圈电流也可以,用一个示波器估计就可以了,但是感觉难度太小了,怕老师不会同意的就麻烦了 。
 楼主| impenger 发表于 2013-5-27 02:53 | 显示全部楼层
用ADC0808模数转换后,能看到输出全为高电平,那应该数码管也显示255才正确,为什么这个显示242?有人知道原因么?难道是程序问题?仿真图如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| impenger 发表于 2013-5-27 02:56 | 显示全部楼层
ningling_21 发表于 2013-5-26 17:40
一个定时器就行了,用一个变量计数,定时器设定为5MS中断,需要计时的时候使能定时器。中断中进行计数。 ...

嗯,谢谢您,基本有思路了。
 楼主| impenger 发表于 2013-5-27 13:20 | 显示全部楼层
问题解决了,adc芯片时钟频率设置的不合适。尽信书不如无书。
voforetty 发表于 2013-5-27 18:46 | 显示全部楼层
Need to think!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

66

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部