单片机开关信号采集要怎么做

单片机开关信号采集要怎么做,第1张

如果开关信号最大电压≤5V,可直接连接到I/O口上,并查询引脚状态,判断是高,低电平,来确实开关量的状态。如果信号电压超过5V,可用串联电阻降压,最好用光耦隔离。如果软件任务比较多,用查询法判断引脚状态会占用单片机时间,就将开关信号接到外部中断引脚上,利用中断输入开关量。开关信号比多,用与门合并信号再接中断引脚,并将全部信号接到某个并口上,中断后再读引脚,判断是哪个信号中断的。

多24光电开关要用374HC165移位寄存器每74HC165接8光电开关了节省S52管脚374HC165串联起样接C语言写成:

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,测脉冲。为什么不用旋转编码器?更方便。


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

原文地址: https://outofmemory.cn/yw/11136128.html

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

发表评论

登录后才能评论

评论列表(0条)

保存