旋转编码器不使用中断实现加减
旋转编码器外观上看起来很像电位器在一些数码设备上经常遇到比如汽车音响的旋钮。它的功能相当于三个按键加、减、按压按压和普通微动开关没区别加和减相当于两个微动开关优于微动开关的是你可以迅速旋转很多角度相当于连续按压很多次微动开关效率很高。比如要调节一个参数范围值是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/7/24 20:05:02 阅读更多 →
变压器低频截止频率怎么算?

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

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

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

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

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

2026/7/24 20:05:02 阅读更多 →

最新新闻

不同系统下设置静态IP

不同系统下设置静态IP

虽然所有 Linux 系统在底层的内核操作是相同的(临时配置都可以用 ip 或 ifconfig),但让静态 IP 永久生效的配置文件格式、路径以及后台网络管理服务,在不同操作系统中截然不同。各大常见系统设置静态 IP 的机制对比与操作示例说明…

2026/7/24 20:15:04 阅读更多 →
3分钟掌握Chrome滚动截图神器:一键保存完整网页的终极方案

3分钟掌握Chrome滚动截图神器:一键保存完整网页的终极方案

3分钟掌握Chrome滚动截图神器:一键保存完整网页的终极方案 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-e…

2026/7/24 20:15:04 阅读更多 →
�鸿蒙报错速查:arkts-limited-stdlib __proto__ 原型链访问,用了就炸,根因 + 真解法

�鸿蒙报错速查:arkts-limited-stdlib __proto__ 原型链访问,用了就炸,根因 + 真解法

报错原文 ERROR: 10505001 ArkTS Compiler Error Error Message: Property __proto__ does not exist on type Object. At File: xxx.ets:N:N常伴生报错: Error Message: Usage of standard library is restricted (arkts-limited-stdlib)报错触发场景 你写鸿蒙 Ark…

2026/7/24 20:15:04 阅读更多 →
Windows Defender终极移除指南:3种模式快速释放系统性能

Windows Defender终极移除指南:3种模式快速释放系统性能

Windows Defender终极移除指南:3种模式快速释放系统性能 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/w…

2026/7/24 20:15:04 阅读更多 →
内存访问模式

内存访问模式

目录 前言 存储时的对齐 对齐与合并访问 全局内存读取 全局内存写入 结构体数组和数组结构体 总结 前言 本文将通过线程束的视角了解数据如何流动,以更加基础的视角去优化性能,如何通过优化全局内存的访问模式来榨干显存带宽 存储时的对齐 int *…

2026/7/24 20:15:04 阅读更多 →
【亲测有效】快来这里,无门槛优惠券激活码

【亲测有效】快来这里,无门槛优惠券激活码

近来发现一个可以省钱的方法, 经过研究后才发现了这个激活方法, 这是千 问官方推出的一个特定专属活动,专给新用户的福利。只要在APP对话框内输入指令:新用户福利099480 就能领到8元无门槛立减券了,口令经实测有效…

2026/7/24 20:14:03 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻