技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 112|回复: 1
收起左侧

【单片机】編碼器擷取信號 for Arduino

[复制链接]

2

主题

3

帖子

153

积分

用户组: 小·技术宅

UID
1924
精华
1
威望
10 点
宅币
108 个
贡献
17 次
宅之契约
0 份
在线时间
8 小时
注册时间
2016-8-26
发表于 2018-11-2 15:54:55 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
本帖最后由 真夜 于 2018-11-7 10:27 编辑

這是一個編碼器的控制代碼
用於 Arduino UNO 讀取控制~附帶LED圓環!
本代碼算是絕大部分原創,因為代碼嘛~參考一下然修修改改是正常的!
參考的是本電路板的原始範例代碼,所以也不知道誰寫的!
不過可以肯定的是........
這人寫的代碼BUG超多,偵測非常不準確,反應極端遲緩還會當掉!
Arduino 能寫到會當掉真心覺的不容易!
而參考他的範例的我也算是倒了血霉了!



10325_2.jpg
原始的電路板我是用了 sparkfun 的 RGB RingCoder 這塊板子!
板上合併了 編碼器 + 環形LED + 2顆8位元的位移暫存器。
(但不推薦用這個板啊,因為太貴了。)



21306224984999_137_m.jpg
上圖是我用的編碼器,這編碼器自帶RGB燈號。
這顆編碼器很有趣,它中央的旋柱是透明的可以發出RGB三色光!
如果對上PWM控制的話可以256*256*256階的三色漸層混色功能,著實很有趣。
單單這一顆編碼器的話淘寶上有在賣。
只要查詢「RGB 編碼器」就有了。



ENCODER原理圖.jpg
上圖這是編碼器的動作原理,這是我借來的圖片,因為這張圖看起來真的很好理解啊......
這圖上別標示著編碼器順時針跟逆時針旋轉的輸出狀態!
在看這張圖的時候我發現一個有趣的狀態,
當編碼器順時針轉動的時候A准位上升時會遇見B的准位是低位。
而當編碼器逆時針轉動的時候後A准位上升時則會遇見B准位也會是高位。
所以我想到一個簡單的方法,如果我將A拿來誘發中斷
而中斷誘發的時候去讀取B的准位那麼是不是就可以知道編碼氣勢順時針還是逆時針轉動呢?



但是剛寫完的時候,我發現它的B准位擷取是在亂跳的!
有的時候高准位有的時候低准位,甚至跳出255 或 -255!
後來我修改了一下電路並在代碼中做了一些限制。
就出來了非常完美的擷取,幾乎沒有任何錯誤!


encoder_filter.png


上圖是我將電路修改過的電路圖,
原始的電路2號就直接是接地,1 3號直接銜接到Arduino輸入上。



有什麼誤漏的地方請指教囉!

放在bilibili的展示連結

放在youtube的展示連結


以下是代碼附件,用 Arduino 編輯器 + visual studio + Arduino IDE for Visual Studio
ReadingRotaryEncoders_01.rar (2.53 KB, 下载次数: 2)

评分

参与人数 1威望 +2 宅币 +32 贡献 +16 收起 理由
0xAA55 + 2 + 32 + 16 这圆环真好看

查看全部评分

12

主题

111

帖子

805

积分

用户组: 大·技术宅

UID
3808
精华
1
威望
16 点
宅币
611 个
贡献
46 次
宅之契约
0 份
在线时间
110 小时
注册时间
2018-5-6
发表于 2018-11-2 17:53:06 | 显示全部楼层
支持真夜大佬!!话说今天大家都在研究硬件么,站长发了一个帖子,真夜大佬又发一个关于硬件的,看来小弟想和大家交流顺利还要补一些硬件知识啊....
菜鸟一枚,直接指正,不必留情

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2018-12-15 10:59 , Processed in 0.104260 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表