用三菱PLC怎么检测每分钟的脉冲个数?

用三菱PLC怎么检测每分钟的脉冲个数?,第1张

用高速计数器的话,如转的较快,你可以每秒钟把高速计数器的值传给一个寄存器,用这个值乘以60秒,再除以编码器一圈的脉冲数即可得到转速,同时复位高速计数器进行下一次计数。\x0d\x0a\x0d\x0a程序解释:\x0d\x0aSPD为速度检测悄李指令。X0脉冲检测输入,K60检测周期(秒),D0速度数据寄存器。\x0d\x0a当X010接通时,SPD指令樱运宏将X0输入的速度脉冲信号每60秒取样一次,结果存入数据寄存器D0中。D0内寄存的脊册数据就是检测到的速度数据,单位转/分。

一、硬件连接:

1、将脉冲型风速传感器的信号线接入Arduino的数字I/O引脚;

2、把拆没传感器的电源引脚接入Arduino的5V或3.3V电源线;

3、把传感器的地线接入Arduino的GND。

二、软件编程:

1、定义一个int变量用于记录脉冲数:int pulseCount

2、在Arduino setup函数中,将脉冲型风速传感器信号线连接的I/O端口设置为外部中断:attachInterrupt(digitalPinToInterrupt(sensorPin),pulseCounter,RISING)

3、定义一个脉冲计数函数:void pulseCounter()

{

pulseCount++

}

4、在Arduino loop函数旅郑纳中,每隔丛培一段时间(如1秒)计算风速:

float windSpeed = pulseCount/1 //1表示每秒计算一次风速

pulseCount = 0 //每次计算完成后脉冲计数清零

以上就是关于如何编写程序来测量脉冲型风速传感器的步骤。

原理:分别用脉冲的上升沿和下降沿出发单片机,下降沿给出中断2停止计数,最后换算出高电平宽度=计数周期数×一个计数的时间。

脉冲有间隔性的特征,因此我们可以把脉冲作为一种信号。脉冲信号的定义由此产迹逗乎生:

相对于连续信号(在整个信号周期内短时间中都有的信号),大部分脉冲信号周期内是没有信号的。就象人的脉搏一样。脉冲信号一般指数字信号,它已经是一个周期内有一半时间(甚至更长时间)有信姿悉号。计算机内的信号就是脉冲信号,又叫数字信号。

最大脉宽计算:知道计数器中断的产生是从全1变为全0产生溢出中断,所以计数器的处置设定为00H,如果让其工作在方式1计数下,最大计数值为2^16=65536,那么最大计数脉冲宽度就是65536*2us。

扩展资料:

脉宽由信号的周期和占空比确定,其计算公式是脉宽W=T×P(T:周期,P:占空比)。例如在飞思卡尔的S12dg128寄存器中的具体的

占空比计算方式是:

左对齐方式:

占空比=[(PWMPERx-PWMDTYx)/PWMPERx]×100%

中心对齐方式:

占空比=[PWMDTYx/PWMPERx]×100%

周期的计算公式:

左对齐方式:

输出周期=通道周期×PWMPERx

中心对齐方式:

输出周期=通道周期×PWMPERx×2

脉宽的计算方法就不言而喻了。

参考资料来源:百度百科-脉冲宽度

参考资料来源:百度指缓百科-脉冲


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12425861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存