long
int
a1
clks=0
//了靠期间移位时钟脚先置0
for(
i=0,i<24,i++)
{
clks=1
clks=1//重复目了延时硬件反应速度慢
clks=0
a1=a1<<1
if(datas==1)
//datas74HC165串行数据接入脚
读取1位光电开关
a1=a1|0x1
//末尾置1
else
a1=a1&0xfffffffe
//末尾置0
}
if
(a1==0)
b=1
//此处设光电管受光照,输出0b=1表示全0检测通过
else
b=0
//
b=0表示有错
//面程序用详细写了吧需要关闭光源再读入次24观点开关a1=oxffffffff则正确否则出错
经过有光和无光照两次检测判断光电开关好坏了
你这里右侧蓝绿色这部分,是固定不转的?那么,需要在轴上加一个挡片,使得轴转动的时候能够穿过光电开关的开口。每圈就能出现一个脉冲。
OUT可以接到数字输入口,比如P0,通过脉冲频率,就反映出转速了(圈每秒,×60就是rpm了)。
如果是用采集卡,可以用DI或CI,测脉冲。为什么不用旋转编码器?更方便。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)