旋转编码开关
- 格式:doc
- 大小:296.00 KB
- 文档页数:11
旋转式编码开关(飞梭)的⼯作原理旋转式编码开关的⼯作原理⼀、旋转式编码器(开关)原理及使⽤⽅法在电⼦产品设计中,经常会⽤到旋转编码开关,也就是所说的旋转编码器、数码电位器、Rotary Encoder 。
它具有左转,右转功能,有的旋转编码开关还有按下功能。
为了了解旋转开关的编程,以EC11型编码开关为例,介绍⼀点原理和使⽤⽅法:⼆只脚:这边是按压式开关,按下通,松开断。
三只脚:1 2 3脚⼀般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋转时,在1、3脚就有脉冲信号输出了。
在单⽚机编程时,左转和右转的判别是难点,⽤⽰波器观察这种开关左转和右转时两个输出脚的信号有个相位差,如图2。
由此可见,如果输出1为低电平时,输出2出现⼀个⾼电平,这时开关就是向顺时针旋转;当输出1 为⾼电平,输出2出现⼀个低电平,这时就⼀定是逆时针⽅向旋转。
所以,在单⽚机编程时只需要判断当输出1为⾼电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。
1脚与2脚同时为⾼电平时,说明开关没有动作。
⼆、旋转编码开关的程序设计⽅法现在很多仪器和设备采⽤了旋转编码开关做为输⼊装置。
常⽤的旋转编码开关有3个输出端⼦,常⽤的参数:转⼀周时输出的脉冲数(⽐如16,24)。
应⽤电路原理图和输出波形如下图所⽰:由此可见,如果A 下跳沿时,B 为低则表⽰顺时针旋转;如果A 下跳沿时,B 为⾼电平则表⽰逆时针旋转。
与CPU 的连接⽅法:将A 端⼝接MCU 的外部中断管脚(下跳沿触发),将B 端⼝接MCU 的输⼊IO 。
轴旋转⽅向信号虚线表⽰波形设定点位置 A(AC 端⼦间) 顺时针⽅向C.W.B(BC 端⼦间) A(AC 端⼦间) 逆时针⽅向 C.C.WB(BC 端⼦间)。
EC11旋转编码器开关编码器型号EC110201C2B-HA1应用领域汽车空调、汽车音响,汽车导航、调音台、多媒体音响\功放,家用电器等特点体积小,密封性好,可靠性高,有多种不同的规格供选择主要功能调频、调节音量、调节温度、功能切换等主要格规参数外形尺寸:∮11mm额定电压:DC5V;定位数:16/20/30/32个;脉冲数:8/15/16/20;工作温度:-40°C to85°C;旋转寿命:30000次以上;EC11规格参数一、MECHANICAL CHARACTERISTIC机械特性1、Detent Torque定位点力矩:20-200gf.cm2、Number and position of detent定位点数及位置:16/20/30/32点定位3、Shaft wobble轴摆动:0.2mm MAX4、Shaft play in rotational wobble轴的回转方向摆动:2°MAX二、ELECTRICAL CHARACTERISTIC电气特性1、Resolution分解能力:8/16/15/20个脉冲/360°2、Phase difference相位差:≥3ms3、Rated voltage额定电压:DC5V4、Insulation Resistance绝缘电阻:10MΩ1Minute at DC250V5、Dielectric Voltage耐电压:1Minute at AC50V三、ENDURANCE CHARACTERISTIC耐久特性1、Rotational life回转寿命:30,000cycles MinNote:In this catalog,if some parame ters lr drawings are different from the"Approval sheet",it's subject to the"Approval sheet".注明:如说明书与承认书规格参数、图面有异,均以承认书为准。
旋转编码器开关工作原理旋转编码器开关工作原理旋转编码器是一种用于测量旋转位置和速度的装置。
它通常由一个编码盘和一个检测器组成,编码盘上刻有若干条透光或不透光的线条,检测器内部有一光源和一光接收器。
当编码盘旋转时,光线透过或被阻挡,从而产生一系列的脉冲信号。
1.光电转换原理2.旋转编码器的核心部件是光电转换器,它可以将编码盘上的透光或阻挡光线转化为电信号。
光电转换器通常采用光敏元件,如光电池或光电二极管,将光线转化为电流信号。
当编码盘上的光线被阻挡时,光电转换器输出的电流信号将发生改变。
3.信号处理原理4.从光电转换器输出的电信号往往比较微弱,需要进行信号处理以增强其信号强度和稳定性。
常见的信号处理方法包括放大、滤波、整形等。
经过处理的信号可以被用于计算旋转角度和速度。
5.输出方式原理6.旋转编码器的输出方式主要有两种:推挽输出和长线驱动输出。
推挽输出方式具有输出信号幅度大、抗干扰能力强等优点,但需要使用较多的电子元件。
长线驱动输出方式具有线路简单、成本低等优点,但输出信号幅度较小,易受干扰。
7.分辨率提升原理8.旋转编码器的分辨率取决于编码盘上的线条数量和旋转角度范围。
要提高旋转编码器的分辨率,可以通过增加编码盘上的线条数量、采用高精度制造工艺、使用高精度检测设备等方法实现。
9.可靠性保证原理10.为了保证旋转编码器的可靠性,需要采取一系列措施,如选用高品质的电子元件、采用可靠的制造工艺、进行严格的品质检测等。
此外,还可以通过降低工作环境温度、减少振动和冲击等措施来提高旋转编码器的可靠性。
ec11编码开关编程范例EC11编码开关是一种常用的旋转编码器,可以用于控制器、电子设备等的编程操作。
下面是一个简单的编程范例,以Python语言为例:python.import RPi.GPIO as GPIO.import time.# 设置GPIO引脚。
CLK = 17。
DT = 18。
SW = 27。
# 初始化GPIO模式。
GPIO.setmode(GPIO.BCM)。
GPIO.setup(CLK, GPIO.IN, pull_up_down=GPIO.PUD_UP)。
GPIO.setup(DT, GPIO.IN, pull_up_down=GPIO.PUD_UP)。
GPIO.setup(SW, GPIO.IN, pull_up_down=GPIO.PUD_UP)。
# 定义回调函数。
def rotate_callback(channel):global counter.if GPIO.input(DT):counter += 1。
else:counter -= 1。
def switch_callback(channel):print("Switch pressed!")。
# 注册回调函数。
GPIO.add_event_detect(CLK, GPIO.RISING, callback=rotate_callback, bouncetime=200)。
GPIO.add_event_detect(SW, GPIO.FALLING, callback=switch_callback, bouncetime=200)。
# 主循环。
counter = 0。
try:while True:print("Counter:", counter)。
time.sleep(0.1)。
except KeyboardInterrupt:GPIO.cleanup()。
上述范例中,我们使用RPi.GPIO库来控制树莓派的GPIO引脚。
旋转编码开关(Rotary Encoder switch)这种旋转编码开关(Rotary Encoder switch),一个使用3脚的,后面一个使用5脚的,大家可能对这种玩意都不是很了解,但涉及到有调整的地方,这个玩意使用真是很爽,我弄了2个,研究了一下,供大家参考~5脚的ALPS:具有左转,右转,按下三个功能。
4、5脚是中间按下去的开关接线 1 2 3脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋纽时,在1、3脚就有脉冲信号输出了。
着这是标准资料:在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出脚的信号有个相位差,见下图:由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转; 当输出1 为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转.所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。
还有另外一种3脚的,除了不带按钮开关外,和上面是一样的使用。
参考:#include "reg51.h"#define uint unsigned intsbit CodingsWitch_A=P1_1;sbit CodingsWitch_B=P1_2;uint CodingsWitchPolling()//{static Uchar Aold,Bold; //定义了两个变量用来储蓄上一次调用此方法是编码开关两引脚的电平static Uchar st; //定义了一个变量用来储蓄以前是否出现了两个引脚都为高电平的状态uint tmp = 0;if(CodingsWitch_A&&CodingsWitch_B)st = 1; //if(st) //如果st为1执行下面的步骤 {if(CodingsWitch_A==0&&CodingsWitch_B==0) //如果当前编码开关的两个引脚都为底电平执行下面的步骤{if(Bold) //为高说明编码开关在向加大的方向转{st = 0;tmp++; //}if(Aold) //为高说明编码开关在向减小的方向转{st = 0;tmp--; //设返回值}}}Aold = CodingsWitch_A; //Bold = CodingsWitch_B; //储return tmp; //}//编码器计数程序void encoder_cnt(void){uchar temp;temp = PIND; //取端口D管脚信号couch_clr = (temp & 0x08); //取编码器清零信号if(couch_clr != false) //有编码器清零信号{couch_num = 0; //水平床码清零}else{if(encoder_cnt_en == false) //编码器计数模块没有启动{pr_couch_ba = temp &0x03; //取编码器A、B相电平信号}else{couch_ba = temp & 0x03; //取编码器A、B相电平信号if(pr_couch_ba == 0x00){if(co uch_ba == 0x01){couch_num++; //水平床码加1}elseif(couch_ba == 0x10){couch_num--; //水平床码减1}}else if(pr_couch_ba ==0x01){if(co uch_ba == 0x11){couch_num++; //水平床码加1}elseif(couch_ba == 0x00){ couch_num--; //水平床码减1}}else if(pr_couch_ba == 0x10){if(co uch_ba == 0x00){couch_num++; //水平床码加1}else if(couch_ba == 0x11){couch_num--; //水平床码减1}}else if(pr_couch_ba == 0x11){if(co uch_ba == 0x10){couch_num++; //水平床码加1}else if(couch_ba == 0x01){couch_num--; //水平床码减1}}}pr_couch_ba = couch_ba;}}编码器及其计数模块原理飘扬的旋转编码器的检测程序(MCS51)//旋转编码器检测程序,A/B信号分别接在了INT0和INT1上//程序作者:BG4UVR//2005年1月15用KEIL编译、硬件测试通过//注意:编码器的信号,程序未做消抖处理。
深圳市荃鼎科技有限公司8421 ROTARY DIP SWITCH10X10 8421 旋转编码开关(1对4, 3对3或3对2脚,正码,反码)产品特点:内部触点釆用进口特殊材料,寿命长,极小的接触电阻,做工精细。
引脚类别有:直插DIP,贴片SMD,直角侧调直插,3对3脚或3对2脚,1对4脚。
柄高度为:0mm/3mm/7mm。
可替代进口同类产品。
■ 产品材质:1:上盖与本体:PBT或PCT UL94V-0等级耐高温工程塑料,蓝色或黑色。
2:旋转柄:PA66 UL94V-0等级高强度耐高温尼龙。
3对3 (或3对2)为白色, 4对1为黃色,反码统一为红色。
3:固定触点与可动触点:铜片镀金。
4:外引脚:铜片镀锡(或铜片镀金)。
■产品性能:1:工作电流:50mA, 24VDC2:接触电阻:100m Q Max3:绝缘电阻:1000MQ Min at 100VDC4:耐压值:250VAC Min for 1 minute5:工作温度:一25°C~70°C6:储存温度:—40°C~85°C7:使用寿命:20000次8:操作力:500gf—cm Max9:防水等级:1矗7产品应用范围:信息地址开关,预置电路,数据存储设备,计算机及外圉设备,PIN OUT (3:3) or (3: 2) PIN OUT (1:4)ERD 30160-M(Flat Type)ERD 30107-2(Shaft Type)(Shaft Type)(Shaft Type)自动化控制,时间继电器,仪器仪表等。
1:手焊:30瓦以下设备:摄氏350度以下不超过3秒钟或摄氏270度以内不超过5秒钟。
2:回流焊:摄氏265度至摄氏275度10秒钟以内。
3:波峰焊:270度5秒以内。
贴片型焊接温度:如图0・・・・0mmFLAT 平柄3.. ..3mm 柄7.. ..7mm 柄Max. 260 *CMO °C laox ISO 七Time Csec>选型表(orderinformation):ERD XX XX X X —X安装方式 正反码选择2•… ..直插式DIP M... ....贴片式SMT 1A.. …•侧调2.54行距 IB.. …侧调5.08行距无: 正码 Real codeF :反码 Complement转柄长度选择编码表Code结构图 Construction位数形式Position柄长形式RotorStandard Rotor0 (Flat Type)3 (3mm}7 (7mm)产品包装Packing所有产品皆以IC 管形式句奘.so R/管PI 如 N( 嚅V 外弓 乞为 厶 黑匕 7 2另请》 主明 1 Vr\UL-*■ 匸 F1 O2 O O4O O O 0 ■■ ■OOO■ ■•8OOO0 O O•…Real CodeRotor color:White (3:3), Yellow (1:4) o …Complement CodeRotor color Red (3:3),(1:4)3: 31: 4I 03: 3 4: 1RotorBASE■外形尺寸和安装脚位(1 ) .1对4脚,7mm 柄,直插。
8421旋转编码开关接线方法摘要:一、8421旋转编码开关简介二、8421旋转编码开关接线方法1.电源接线2.信号输出接线3.编码器与微控制器的连接三、接线注意事项四、总结正文:一、8421旋转编码开关简介8421旋转编码开关是一种常用的电子元器件,广泛应用于各种电子设备中,如机器人、自动化设备、智能家居等。
它具有四个输出端,可以输出0-15的状态信号,用于表示旋转的角度或位置。
本文将详细介绍8421旋转编码开关的接线方法。
二、8421旋转编码开关接线方法1.电源接线首先,为8421旋转编码开关提供适当的电源。
根据开关电源电压要求,将电源线连接到开关的VCC和GND引脚。
一般情况下,VCC接电源正极,GND接电源负极。
2.信号输出接线8421旋转编码开关有四个输出信号,分别为A、B、C、D。
根据实际需求,将这四个信号输出接到相应的接收端。
例如,可以将A、B、C接到微控制器的输入端,用于检测旋转开关的状态变化。
3.编码器与微控制器的连接将旋转编码器的输出信号接到微控制器的相应输入端。
同时,根据微控制器的工作电压和电源电压,为微控制器提供适当的电源。
需要注意的是,编码器与微控制器之间的连接线应尽量缩短,以降低信号干扰。
三、接线注意事项1.接线时,请使用足够线径的导线,以保证电流畅通。
2.避免将电源线与信号线紧挨着,以降低电磁干扰。
3.接线时要确保牢固,避免松动导致接触不良。
4.接线完成后,进行实际测试,确保旋转编码开关正常工作。
四、总结掌握8421旋转编码开关的接线方法,对于使用这种开关的电子设备来说至关重要。
正确的接线不仅可以保证设备正常运行,还能提高设备的使用寿命。
旋转编码开关
种旋转编码开关(Rotary Encoder switch),一个使用3脚的,后面一个使用5脚的,5脚的ALPS:
具有左转,右转,按下三个功能。
4、5脚是中间按下去的开关接线 1 2 3脚一般是中间2脚接地,1、3脚上拉电阻后,当左转、右转旋纽时,在1、3脚就有脉冲信号输出了。
这是标准资料:
在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关
左转和右转时两个输出脚的信号有个相位差,见下图:
由此可见,如果输出1为高电平时,输出2出现一个高电平,这时开关就是向顺时针旋转; 当输出1 为高电平,输出2出现一个低电平,这时就一定是逆时针方向旋转.所以,在单片机编程时只需要判断当输出1为高电平时,输出2当时的状态就可以判断出是左旋转或是右旋转了。
还有另外一种3脚的,除了不带按钮开关外,和上面是一样的使用。
#include "reg51.h"
#define uint unsigned int
sbit CodingsWitch_A=P1_1;
sbit CodingsWitch_B=P1_2;
uint CodingsWitchPolling()//
{
static Uchar Aold,Bold; //定义了两个变量用来储蓄上一次调用此方法是编码开关两引脚的电平
static Uchar st; //定义了一个变量用来储蓄以前是否出现了两个引脚都为高电平的状态
uint tmp = 0;
if(CodingsWitch_A&&CodingsWitch_B)
st = 1; //
if(st) //如果st为1执行下面的步骤
{
if(CodingsWitch_A==0&&CodingsWitch_B==0) //如果当前编码开关的两个引脚都为底电平执行下面的步骤
{
if(Bold) //为高说明编码开关在向加大的方向转
{
st = 0;
tmp++; //
}
if(Aold) //为高说明编码开关在向减小的方向转
{
st = 0;
tmp--; //设返回值
}
}
}
Aold = CodingsWitch_A; //
Bold = CodingsWitch_B; //储
return tmp; //
}
//编码器计数程序
void encoder_cnt(void)
{
uchar temp;
temp = PIND; //取端口D管脚信号
couch_clr = (temp & 0x08); //取编码器清零信号
if(couch_clr != false) //有编码器清零信号
{
couch_num = 0; //水平床码清零
}
else
{
if(encoder_cnt_en == false) //编码器计数模块没有启动 {
pr_couch_ba = temp & 0x03; //取编码器A、B相电平信号
}
else
{
couch_ba = temp & 0x03; //取编码器A、B相电平信号
if(pr_couch_ba == 0x00)
if(couch_ba == 0x01)
{
couch_num++; //水平床码加1 }
else if(couch_ba == 0x10)
{
couch_num--; //水平床码减1 }
}
else if(pr_couch_ba == 0x01)
{
if(couch_ba == 0x11)
{
couch_num++; //水平床码加1 }
else if(couch_ba == 0x00)
{
couch_num--; //水平床码减1 }
}
else if(pr_couch_ba == 0x10)
if(couch_ba == 0x00)
{
couch_num++; //水平床码加1 }
else if(couch_ba == 0x11)
{
couch_num--; //水平床码减1 }
}
else if(pr_couch_ba == 0x11)
{
if(couch_ba == 0x10)
{
couch_num++; //水平床码加1 }
else if(couch_ba == 0x01)
{
couch_num--; //水平床码减1 }
}
}
pr_couch_ba = couch_ba;
}
}
飘扬的旋转编码器的检测程序(MCS51)
//旋转编码器检测程序,A/B信号分别接在了INT0和INT1上
//程序作者:BG4UVR
//2005年1月15用KEIL编译、硬件测试通过
//注意:编码器的信号,程序未做消抖处理。
测试中,A/B信号上//接了一只104的瓷片电容,工作很正常。
如果不接电容,请自行编写信号消抖程序。
#include <at89x51.h>
sbit led=0xB1;//有一只LED接在了RXD引脚上,用来指示正反转; main()
{
EA=1; //总中断允许
EX0=1; //外部中断0允许
IT0=1; //外部中断0为边沿触发方式
while(1);;
}
/*********************
编码器中断函数
入口:无
出口:无
*********************/
void encoder(void) interrupt 0 { //外部中断0
if (INT1){
led=1;
}else{
led=0;
}
}
whimsy 的AVR程序
//外部中断0,用于编码开关解码,解码图: A接中断脚(AVR的PD2),以此为基准,B用来判断方向(连到AVR的PA1), C接地
//A -|
// | -----|__________|----------|____________
//C -|
//
//B -|
// | ----------|__________|----------|____________
//C -|
// CW ===>>> ROTATION
//外部中断设置(ISC01=0,ISC00=1): INT0 引脚上任意的逻辑电平变化都将引发中断
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
//external interupt on INT0
GICR=0; //禁止外部中断
if ((PIND & 0x04)==0) //先判断是高电平产生的中断还是低点平的中断
if ((PINA & 0x02)==0) //再判断B线上的电平
{
keycounter--;
keydirection=0;
}
else
{
keycounter++;
keydirection=1;
}
else
if ((PINA & 0x02)==0) {
keycounter++;
keydirection=1;
}
else
{
keycounter--;
keydirection=0;
}
GICR=0x40;
}。