旋转编码器不使用中断实现加减
旋转编码器外观上看起来很像电位器在一些数码设备上经常遇到比如汽车音响的旋钮。它的功能相当于三个按键加、减、按压按压和普通微动开关没区别加和减相当于两个微动开关优于微动开关的是你可以迅速旋转很多角度相当于连续按压很多次微动开关效率很高。比如要调节一个参数范围值是100如果是用微动开关需要按100次当然也可以设置成长按开关快速变化但是也比较麻烦。用旋钮就可以快速调整参数变化了。常用的旋转编码器ec11如下这种编码器一共有五个针脚两个是按压的微动开关使用和其他功能毫无关系。剩余三个一个是公共端两个是用于反应旋转的端子。这种开关如果用于arduino等单片机需要做软件消抖因为和其他微动开关一样按下的时候电压会出现抖动影响程序的判断。卖家提供的例程往往是使用中断来实现的当一个板子上出现多个旋钮的时候就占用了过多的宝贵中断端口而且中断会使程序里的millis也暂停所以我不是很喜欢用中断的方式。这时我们可以选择下图这种可以看到它在ec11的基础上加了几个电容电阻实现了硬件消抖那么就不用在软件中使用消抖了使用起来非常方便。这种模块有五个针脚定义和ec11已经不一样了。原本用于按压的两个针脚已经废止不用当然你要是还需要的话可以另外焊接两根跳线出来使用。五个针脚的定义如下两个是vcc和接地剩余三个是表达旋转的两个端子和A、B、接地C接地是重复的所以连接一个使用就行。把旋转编码器模块接入逻辑测试仪旋转之后电平变化如下通过上图可以看出当你不旋转的时候ab两端都是高电平当旋转的时候ab轮流出现高低变化此时判断a或b谁先变成低电平就知道旋钮的旋转方向了。arduino代码如下如果顺时针不是想表达的加只要交换ab两个端口的跳线即可。byte a0;byte b0;byte a00;byte b00;byte k0;voidsetup(){// put your setup code here, to run once:pinMode(11,INPUT);pinMode(12,INPUT);Serial.begin(9600);}voidloop(){// put your main code here, to run repeatedly:a0digitalRead(11);b0digitalRead(12);delay(3);adigitalRead(11);bdigitalRead(12);//Serial.println(b);if(a!b){if(a1a00){k;}if(b1b00){k--;}//k;Serial.println(k);}}这种方式代码比较简单也不占用中断。缺点是每次程序loop一次才能检测一次旋转连续快速旋转的时候可能会漏掉几格。因为程序loop一次也是非常快的所以这种小差错完全是可以接受的。

相关新闻

Pandas DataFrame数据清洗实战:AI训练集预处理全流程解析

Pandas DataFrame数据清洗实战:AI训练集预处理全流程解析

一、前言在人工智能、机器学习领域,流传一句行业共识:AI模型训练,80%时间做数据,20%时间调模型。算法模型精度、泛化能力的上限,从来不取决于复杂的神经网络结构,而是取决于训练数据集的质量。原始采集的数…

2026/11/1 17:29:21 阅读更多 →
变压器低频截止频率怎么算?

变压器低频截止频率怎么算?

变压器低频截止频率怎么算?变压器的低频 -3dB 截止频率可以用一个公式快速估算:f R/(2πL)。其中 R 是源阻抗与负载折算后的有效并联阻抗,L 是初级电感。想让低频往下延伸,要么把电感做大,要么把工作阻抗降低。为什么…

2026/11/8 3:24:49 阅读更多 →
硬核技术对比|RAG vs KAG:原理、边界、适用场景,附带可直接运行 Demo

硬核技术对比|RAG vs KAG:原理、边界、适用场景,附带可直接运行 Demo

在企业知识库落地、Agent 开发面试中,经常被问到:RAG 和 KAG 到底怎么选?很多开发者混淆概念,甚至把 KAG 等同于 GraphRAG,上线后才发现选型错误。RAG(Retrieval-Augmented Generation,检索增强…

2026/11/11 13:44:38 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻