自造星球-创客空间  - 讨论区

标题:ITR9606光电开关与Arduino中断编程

2015年08月13日 星期四 07:38

ITR9606是一款光电开关,其实就是一个红外发光二极管和一个光敏三极管组成的,类似一个中间打开的光耦。

为了驱动ITR9606,首先我们需要让其发光二极管部分正向导通发光,我使用的是5V电压+1K电阻,ITR9606的发光二极管的正向压降大约为1.2V,这样算下来导通电流大约是3.8毫安。

然后我们需要将输出端的光敏三极管的集电极电位拉高,我使用的是10K的电阻。发射级接地。

这样单片机就可以检测光敏三极管集电极的电平,如果光电开关导通,则集电极为低电平,反之为高电平。

我使用的是Arduino Nano,我们可以在loop循环里面不停的检测IO口的电平,但还有更好的办法,就是使用中断。

Arduino提供了AttachInterrupt的方法,用于将中断关联到某个函数,使用很简单。Arduino有两个外部中断可供使用,这两个外部中断分别对应于数字IO口2和3。

下面是编程示例。

这种光电开关非常适合用于直流电机的测速,我们在电机上加一个齿轮状的编码板即可,MCU检测电机速度后,可以通过PWM调速来控制电机的速度,这样就成了一个闭环系统了。

参考资料:

ITR9606的数据手册

Arduino AttachInterrupt 参考

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号