请大家帮忙:单片机采集外来输入的脉冲,经过处理输出4到20ma的电流。
车轮每转一圈,红外传感输出一脉冲,频率不定,单片机采集脉冲的时间算出速度,然后经过DA转换模块输出4到20ma的电流(车轮的转速与电流是成比例关系)其中外来电压是24V,...
车轮每转一圈,红外传感输出一脉冲,频率不定,单片机采集脉冲的时间算出速度,然后经过DA转换模块输出4到20ma的电流(车轮的转速与电流是成比例关系)其中外来电压是24V,那还要做24V转换成5V和12V供电(5V是给单片机(51的就行),12V是给其他模块)。在请大家支招,DA的选择,硬件电路的设计,程序的编写,及注意事项。大家能帮多少是多少,谢谢!!
展开
3个回答
展开全部
用51单片机控制的话,我建议如下
1.T1、T0设置工作方式为TMOD=0x52;这意思是,T1工作在16位计数状态,T0工作在8位计时状态
2.T1引线(P3.5)就可以直接接脉冲信号
3.利用定时T0中断,执行中断读取T1计数的程序。这里要注意设置T0中断的时间,该时间为脉冲最大频率小于65355的时间最好,但你也可以多次采样,求平均值的方法来获得频率F,再把这F存到全局变量K中,就可以了,这里要注意,存的位置是全局变量!!
4.采样来的频率F经过转换如下公式转化为数字量D,我举例采用的是8位的D/A,DAC0832是个输出电流型D/A,你也可以选用16位的,可分点就更多了,如果要很精确的话,记得数据类型要用FLOAT来计算结果转为INT,最后赋给D
D=((F+最大频率/5)/最大频率)*256
这里说明下,你要输出的是4~20,F=0时,D要等于4mA
1.T1、T0设置工作方式为TMOD=0x52;这意思是,T1工作在16位计数状态,T0工作在8位计时状态
2.T1引线(P3.5)就可以直接接脉冲信号
3.利用定时T0中断,执行中断读取T1计数的程序。这里要注意设置T0中断的时间,该时间为脉冲最大频率小于65355的时间最好,但你也可以多次采样,求平均值的方法来获得频率F,再把这F存到全局变量K中,就可以了,这里要注意,存的位置是全局变量!!
4.采样来的频率F经过转换如下公式转化为数字量D,我举例采用的是8位的D/A,DAC0832是个输出电流型D/A,你也可以选用16位的,可分点就更多了,如果要很精确的话,记得数据类型要用FLOAT来计算结果转为INT,最后赋给D
D=((F+最大频率/5)/最大频率)*256
这里说明下,你要输出的是4~20,F=0时,D要等于4mA
追问
你好,能留个QQ或则加我的QQ吗,我的QQ上面留的有,有问题希望得到你的帮助,谢谢
展开全部
电流是控制变频器吧,那输出电压也可以啊,还有你得给个比例关系啊,程序还是简单
追问
不用考虑电流的输出的作用,只考虑模块能输出4~20ma的电流,这个电流与车轮的转速成比例关系 ,具体比例不清楚,车路的转速是变化的,脉冲的频率也是变化的,电压转换我已做好了,剩下的还请高手支招,能留个QQ吗,这是我的563418545
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询