完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
说明:
旋转编码器可通过旋转来计数(即可从0开始不但加一或者减一,计数范围没有限制),实现精确数字的调节。电机角度等需要特别精确调节的元器件可以利用编码器来实现精细控制。配合旋转编码器上的按键,可以复位到初始状态,即从0开始计数。 依照内部数字读取办法,编码器能够分为机械式和非机械式两种:机械式选用电刷输出,电刷接触到导电区则引脚输出高电平,接触到绝缘区则为低电平;非机械式的承受灵敏元件是光敏元件或磁敏元件,选用光敏元件时以透光区和不透光区来表明输出是“高”还是“低”。 目前常用的增量式编码器全部为机械式编码器,优点在于好用且成本低,高端的一般为非机械光电式的。我们采用的模块也使用得机械式。 如果你手上有一个旋转编码器,你可以试着拧一下:并不是连续旋转,而是拧的得时候会明显感受到不连续,一下一下的。因此,我们可以实现精确的计数,这与电位器是不同的 那么问题来了,怎么计数呢?我们可以做以下规定: 以顺时针方向为正,凡往顺势针方向转一下,则计数加一,同理转N下,则计数加n。反之,如果向逆时针转一下,则计数减一,同理转N下,则计数减n。 逆时针同理。 现在问题又来了,旋转编码器怎么告诉微处理器,我的旋转方向是什么呢?这些我们打开旋转编码器的微观结构: 实际上旋转编码器内部结构如下所示。基本上由绝缘圆盘(灰色)和放置在圆盘顶部的导电垫(蓝色)组成。 这些导电垫分离放置,因此当旋转旋钮时,旋转一单位,原先空着的部分会被导电垫填充,而导电垫离开的位置则重新恢复绝缘。因此,当导电垫通过A和B输出引脚时,引脚会输出高电平信号,反之则不会输出高电平。因此只要判断引脚信号与上一次是否相同,就能得知是否发生了旋转。 如下图,每一次旋转的时候,当顺时针旋转,A总是先比B接触到导电垫,或者离开导电垫,因此A总是比B先改变电平输出状态,此时当A发生变化后一定与B信号不同。下图为两次顺时针旋转时,A、B电平变化(红色为输出高电平信号) 而当逆时针旋转时,B先于A转换电平,因此当检测到A发生变化时,此时B已经完成了信号转换,此时A、B信号相同。 实验目的: 利用旋转编码器实现计数。 器材: StduinoUno/Nano;杜邦线;旋转编码器模块。 电路连接: 代码展示: #define outputA 6 #define outputB 7 int counter = 0; int aState; int aLastState; void setup() { pinMode (outputA,INPUT); pinMode (outputB,INPUT); Serial.begin (9600); aLastState = digitalRead(outputA); } void loop() { aState = digitalRead(outputA); // 读取当前A电平 //如果当前A电平与上一次(初始)A电平不同,说明发生了旋转 if (aState != aLastState) { // 如果AB电平不同,说明A先于B变化,因此是顺时针旋转。顺时针旋转则计数加一;反之则减一 if (digitalRead(outputB) != aState) { counter ++; } else { counter --; } Serial.print("Position: "); Serial.println(counter); } aLastState = aState; //更新aLastState状态的记录 } 实验效果: 当顺时针旋转的时候,计数数目逐次加一;当逆时针旋转时,威廉希尔官方网站 数目逐次减一。下面所示为顺时针旋转八个单位的过程中串口输出情况。 |
|
|
|
只有小组成员才能发言,加入小组>>
3314 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9059 浏览 16 评论
4088 浏览 18 评论
1180浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 21:57 , Processed in 1.244881 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号