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