旋转编码器输出形式
0. 补充知识[三极管]
三极管分NPN和PNP两种
集电极:通常用C表示
基极:通常用B表示base
发射极:通常用E表示emitter
主要区别是电流流向和电压不同:
- PNP管子是发射极流入后从基极和集电极流出,NPN管子是基极和集电极流入从发射极流出。
- PNP管子工作在放大区时电压是,Ue>Ub>Uc,NPN管子工作在放大区时电压时Uc>Ub>Ue。
- PNP管子,发射极电流Ie = 集电极电流Ic+基极电流Ib。
- NPN管子,集电极电流Ic = 发射极电流Ie+基极电流Ib。
1. 集电极开路输出
集电极开路输出是以输出电路的晶体管发射极作为公共端,并且集电极悬空的输出电路。一般分为NPN集电极开路输出(见图1)和PNP集电极开路输出(见图2)
2. 电压输出
电压输出是在集电极开路输出的电路基础上,在电源间和集电极之间接了一个上拉电阻,使得集电极和电源之间能有一个稳定的电压状态。
当Ib没有电流时,这时输出电压为0v。电流通过上拉电阻压降了。
当Ib通过激发电流时,三极管接通。电流顺势通过上拉电阻和另一个大电阻,由于大电阻远远大于上拉电阻,所以,输出电压接近5v。
Arduino 上的使用
setup(){
// 对于电压输出的编码器
pinmode(外部中断端口, INPUT);
//对于集电极开路输出的编码器
// 使用上拉电阻模式,相当于在单片机内部加了一个上拉电阻。实现了电压稳定输出。
pinmode(外部中断端口,INPUT_PULLUP);
}