|
本帖最后由 shenhaiyu 于 2012-10-9 22:54 编辑
RT,由于研究需要,本人想在一块Arduino UNO上实现测风速的功能,遇到点问题,哪位高手能帮助解决一下呢。
在TB上搜寻风速传感器的结果是:
电压输出的风杯式传感器并不理想,启动风速要求很高,但是我却要测量小风的风速,精度要求也并不高。于是我购买了一款便宜的测风仪器:
打算拆开后把传感器部分组装到我的电路中。拆开后发现里面测风速的部分就是一个光耦,风杯每旋转一周光耦会输出四个脉冲信号。
本来这样就能解决我测风速的功能需求了,但是新的问题又来了:
我的 Arduino UNO 要同时实现时间功能,测量温湿度、重量和风速,还要LCD输出,还要SD卡记录,基本上端口都占用了,只剩下模拟3,4,5可用。更重要的是不能使用外部中断,怕影响时间部分的工作,而且loop中使用了ProtoThreads,时间轮片是1ms,不方便在这里测量风速,大家有没有什么好办法在某个函数中就实现测风速的功能呢?
难道只能用另一块Arduino板子实现测风速功能以电压方式传递给主板吗?
补充的系统需求:
感觉我要做的东西太复杂,貌似快超出arduino的能力了。
首先是输入输出:
1.测量部分:
测量重量(主要是拉力,配合变送器已经实现了单接口数据实时接收,不存在时间问题。但却要使用一个舵机实现称量,具体机械上的设计我就不解释了,总之一定要用舵机),
温度湿度(使用了AM2305,每次数据采集不能小于2s,第一个在时间上的需求),
风速(目前来看再来块nano单独采集比较好,想准确测量必须要有外部中断,一但外部中断了就影响别的部分了)
2.时间部分:使用了DS1302
3.显示部分:使用了LCD5110
4.记录部分:使用了SD卡记录
我的 Arduino UNO 端口使用:
02-04:DS1302时钟
05-09:LCD 5110
10-13:SD卡
14(A0)重量便送器
15(A1)AM2305温湿度传感器
16(A2)舵机信号
17(A3)功能设置按钮
所以目前仅剩18(A4)-19(A5)空闲,一个还要用来测风速,我还在考虑舵机是不是需要个继电器来断电,于是最后一个口也用了。
然后是功能部分:
要实现的功能是每隔一定时间(比如5分钟,10分钟等,可设置)记录温湿度和风速数据到SD卡中,然后每隔一定时间(半小时或者1小时)记录一次重量(这里解释一下,我的系统用的是吊秤称量方式,而且称量的物件平时必须接触地面,称量时提起),于是就用到了舵机,到时间起吊,称量,放下,这样就又造成了程序上的时间滞后,要等待舵机响应。
总结一下,时间要至少每秒更新,测风速要外部中断,温湿度要2s以上采集一次,要等待舵机动作,要每隔一定时间读数据写SD卡,液晶屏更新又不能太快,否则显示会滞留,于是各种冲突都来了。目前别的问题我都用ProtoThreads解决了,唯独测风速把程序全打乱了,这才来这里求助大家的。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|