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调速来控制电机的速度,这样就成了一个闭环系统了。
参考资料:
Zeuux © 2024
京ICP备05028076号