打印

求助,单片机如何读取接近开关的信号

[复制链接]
24918|55
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
windxx|  楼主 | 2010-4-14 10:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 windxx 于 2010-4-14 11:07 编辑

最近搞毕业设计,是数控XY工作台,由于设计时在X向和Y向导轨末端都安装了接近开关,以防工作台越界,打算通过单片机来读取接近开关的信号,从而控制工作台的停止。在网上看到这样的接线图(见附件),有以下疑问:

1、我查到一些接近开关的额定电压几乎都是10~30vdc,难道可以像图上所示用5v的电压吗??(这样输出就能直接接单片机I/O口??)

2、为保证安全,我打算在单片机的I/O引脚和接近开关的信号输出端用光耦隔离,而且接近开关接24VDC,请问这样可以吗??具体的接线图是怎样的??(就是不知道光耦和接近开关输出端的连接是怎样的,希望有高手能提供接线图)

主要问题在于,我选用的是NPN型接近开关,如果接24V电源时,输出一般都是24V左右,这样接光耦会不会电压太大??所以希望有具体的接线图,或者有相应的接线意见

谢谢大家了。。

x.jpg (36.88 KB )

x.jpg

相关帖子

沙发
windxx|  楼主 | 2010-4-14 11:12 | 只看该作者
这是我自己画的,不知道对不对~!~!

望指教!~!

2010-04-14_110714.png (7.25 KB )

2010-04-14_110714.png

使用特权

评论回复
板凳
windxx|  楼主 | 2010-4-14 11:14 | 只看该作者
这是我自己画的,不知道对不对~!~!

望指教!~!

2010-04-14_110714.png (7.25 KB )

2010-04-14_110714.png

使用特权

评论回复
地板
XZL| | 2010-4-14 11:24 | 只看该作者
越限检测用一个轻触开关就可以了,没有必要这么麻烦

使用特权

评论回复
5
ddtx| | 2010-4-14 11:28 | 只看该作者
接近开关一般6-36V,接线棕色正,蓝色负,黑色信号线,输出信号肯定要通过光耦才能接到单片机的引脚,另外光耦好多种的,24V的521就可以,
接近开关电源不用和信号线连起来,信号线直接通过电阻连接到光耦就可以了,电阻再大点,用10K的吧

使用特权

评论回复
6
ddtx| | 2010-4-14 11:29 | 只看该作者
用限位开关也可以,而且比较便宜

使用特权

评论回复
7
windxx|  楼主 | 2010-4-14 12:05 | 只看该作者
先谢谢你们了,主要是我设计的机械本体没有地方安装限位开关,所以才打算用接近开关的(因为接近开关可以陷入侧壁上)。。

还有的是,我在网上查到的接近开关的接线图都是将电源线和信号线之间连接一个负载的,怎么楼上的说不要连接呢??
(NPN型的接近开关输入端相当于三极管的集电极或者漏极,如果不接电源,能输出吗??)
我主要是参考以下两个网址的内容的:
http://woodfeed.com/author/vayu/page/5/
http://xie-gang.com/cgq.htm

他们都说接上电阻,能得到一个电压信号??

请问需要接吗?不接的话有什么后果呢?

使用特权

评论回复
8
ddtx| | 2010-4-14 12:18 | 只看该作者
这种光电开关的输出采用NPN型三极管集电极开漏输出模式,也就是说模块的黑线就是三极管的集电极,如果模块检测到信号,三极管就会导通,将黑线下拉到地电平,黑线和棕线之间就会出现电源电压,如果电源是12V的那么这个电压就是12V,如果电源是24V这个电压就是24V,一般三极管的驱动能力约100毫安左右,所以可以直接驱动继电器等小功率负载。如果客户希望得到的是一个电压信号,可以在黑线和棕线之间接一个1K的电阻,这时模块没有信号时,黑线就是电源+电压,模块检测到信号时黑线跳变成电源地(实际是0.2V,三极管的导通压降)。
我用的也是需要的电压信号,不触发时候是24V信号,触发是地信号,但是我从来不接电阻的,我看贝福宁的说明手册里也没有说要加上啦的。

使用特权

评论回复
9
windxx|  楼主 | 2010-4-14 12:58 | 只看该作者
非常感谢楼上的,看来我这种没有参加过工作的菜鸟还是很缺乏经验。。。

不过我还有一个问题,请问楼上的,我的接线图除了将电源和信号的连线取消,电阻的阻值更改为10K会不会太大呢?
我看了TLP521的手册,流过发光二极管的电流一般为0~50mA,如果选用10K的电阻,尽管忽略发光二极管的压降,在触发时,流过发光二极管的电流也会太少了吧?所以我才选用2.32千欧的电阻~!~!

除了上面的问题外,请问我的电路图还有别的问题吗??
望赐教

使用特权

评论回复
10
李冬发| | 2010-4-14 14:17 | 只看该作者
有一种槽形的光电开关对管。

使用特权

评论回复
11
windxx|  楼主 | 2010-4-14 14:24 | 只看该作者
10# 李冬发

你说的东西我好像见过,不过我现在打算用接近开关,只是对它的接线不太懂。

先谢谢你的建议,不过我更想知道我的电路图还有没有问题,请赐教!~谢谢

使用特权

评论回复
12
jiabin1024| | 2010-4-14 16:24 | 只看该作者
24V接在光耦的阴极怎么能让光耦导通,这样检测不到信号。

使用特权

评论回复
13
bobo1957| | 2010-4-14 16:53 | 只看该作者
接近开关直接接光藕要看驱动能力够不够,接近开关OC输出的话还要上拉

使用特权

评论回复
14
bobo1957| | 2010-4-14 16:54 | 只看该作者
2楼的图有问题,光藕输入端电位永远都是24V

使用特权

评论回复
15
ddtx| | 2010-4-14 16:56 | 只看该作者
不知道你用的发光二极管是什么样的,我这边这边也是通过10K电阻,然后一个贴片的LED到光耦的,接受信号没有问题的

使用特权

评论回复
16
windxx|  楼主 | 2010-4-14 16:57 | 只看该作者
我的意图是这样的,在没有信号时,电源线(蓝线)与输出信号线(黑线)的电压几乎相等,也就是24V左右,
这样的话光耦的发光二极管就由于没有电压差而不亮,即光耦没有动作,单片机的引脚信号为1;

当检测物接近到所设置的距离时,接近开关触发,此时输出信号(黑线)被下拉至电源地,即输出电压几乎为0V,这样的话,光耦中的发光二极管两端存在电压差,有电流流过,发光二极管发光,整个光耦工作,此时,单片机的引脚信号变为0;

请问我这种想法,与我的接线图符合吗??

使用特权

评论回复
17
ddtx| | 2010-4-14 17:03 | 只看该作者
接近开关内部的信号信号线本身就是和电源线导通的,不用上啦就是24V

使用特权

评论回复
18
ddtx| | 2010-4-14 17:05 | 只看该作者
没问题的,我们的板子也是这样做的

使用特权

评论回复
19
windxx|  楼主 | 2010-4-14 17:05 | 只看该作者
15# ddtx
那么,我只要把电源线和信号输出线之间的连线删掉,然后电阻改为10K,这样就可以了吗?

使用特权

评论回复
20
ddtx| | 2010-4-14 17:10 | 只看该作者
恩,没问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:logoxx is the worst!

0

主题

38

帖子

1

粉丝