极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: Super169

请问有没有直接把 I/O pin 转成 AD 的 chip?

[复制链接]
发表于 2015-11-11 10:24:01 | 显示全部楼层
Super169 发表于 2015-11-11 10:10
唔該哂 ching, 我尋晚用錶度下 D 數時, 已經發覺自己傻仔左.

你最右邊應該係睇成係個錶, 而唔係一條連 ...

建议使用2组AD,理论上一组AD可以分辨10键点1024个状态,但是每一个状态是5/1024V,任何波动和干扰会引起误判。因此,还是建议分成两个口较好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-11 10:53:39 | 显示全部楼层
林定祥 发表于 2015-11-11 10:24
建议使用2组AD,理论上一组AD可以分辨10键点1024个状态,但是每一个状态是5/1024V,任何波动和干扰会引起 ...

謝謝你的提議.

如果要全出 1024 個組合, 每個佔 5/1024V 也不重複, 我也不知可以怎樣推算出每個電阻的值, 就是推算到, 也未必可以找到合配的電阻.

基本上一組 10 鍵要全出 1024 個組合的可能性極低, 我也準備用兩個 I/O 去做.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-11 11:59:19 | 显示全部楼层
eddiewwm 发表于 2015-11-11 09:42
未能掌握你的問題,但你可參考以下的概念,當中要注意的不同點,是你手上所用的按鍵,祇會有一個邏輯電 ...

ching, 我用類似你之前既表, 做左個 Excel, 再推算 Arduino 可以讀出既數值.
再計算 1 或 兩個鍵 的所有組合, 希望唔會出現 2 個數值相距小於 20.  發覺已經非常困難.



假設 5 個電阻由細到大分別係 RA, RB, RC, RD, RE.
如果 RA 同 RE 既範圍距離太大, 咁 RA 同 RE 夾埋, 就會好接近 RA 單獨既數.  (例如 我用 2+50 再接 10 時, 同 2 接 10 既差距只有 5)
但如果 RA 同 RE範圍距離太細, 咁每個電阻之間既距離會好細, 同樣會出現讀數好接近.  

5 個 鍵只做 2 鍵組合已不容易.  看來要有做到每個可能性最少 20 的差距機會很微.  唔知有無 D 規則, 可以方便搵出每個電阻既值, 而得出最好既結果. (每個組合的結果都有一定既差距)

請問 Arduino 的 analog pin 測量電壓時, 一般可以出現多大的變化.  
如果改成 最少 10 就接受, 唔知會唔會好易因為少少變化而出錯.
我會加埋防止佢亂跳既程序, 例如 要 10ms 內兩個讀數一致才接受.  唔知仲有無其他方法可以增加準確性.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-11 12:06:51 | 显示全部楼层
本帖最后由 Super169 于 2015-11-11 12:28 编辑

剛找到個最好的圖, 只有一個情況下, 差距少於 20.



如果有 30K 左右的電阻, 就更理想了 (印象中我好像沒有, 要再找找.)



修改: 原來我睇漏左中間果個.
最細 + 最大 同 最細 + 第二大, 讀出黎既都會好接近, 用 50K 時反而最少都相差 10.
當然., 以上只係純理論既推算........理論值同實際可能又有出入, 隻電阻本身亦都未必咁準.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-11-11 14:06:41 | 显示全部楼层
Super169 发表于 2015-11-11 11:59
ching, 我用類似你之前既表, 做左個 Excel, 再推算 Arduino 可以讀出既數值.
再計算 1 或 兩個鍵 的所有 ...

如果你祇是在做一個個人的製作,而你已決定為 5 鍵一組,即每組祇有 32個組合,而每個組合的間距已有 20 步之差,你可先讀取這電阻網絡的這32個讀數,並用這32個讀數作為基準,這樣誤差的情況就會減少了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-11 14:30:39 | 显示全部楼层
eddiewwm 发表于 2015-11-11 14:06
如果你祇是在做一個個人的製作,而你已決定為 5 鍵一組,即每組祇有 32個組合,而每個組合的間距已有 20  ...

問題是電阻的增加, 對電壓的影響, 並非直接加上去.
經過計算後, 就算只取 16個組合 (最多2個同時發生), 要達到所有可能性在 Arduino AD 上理論值有 20 的差距已不容易.
現在用 2k 配 2, 5, 10, 20, 50 的, 也只可以做到最少差距為 10.  最差的情況是 RA 及 RE 對應的同時按下 (501) 跟 RA 單獨按下時 (511), 如果用中間值 506 去區分, 不知認錯的機會是否會很大.

今晚回家試試, 看看在實際讀取時的偏差有多大.
當然, 正如 ching 所言, 我只是自己用的獨立 project, 如果本身變化不大, 只要找到合適的一個分界點就可以了.
回复 支持 反对

使用道具 举报

发表于 2015-11-11 17:52:11 | 显示全部楼层
Super169 发表于 2015-11-11 14:30
問題是電阻的增加, 對電壓的影響, 並非直接加上去.
經過計算後, 就算只取 16個組合 (最多2個同時發生),  ...

可參考這個優化後的電路,要注意的是:A/D用內置 1.1V參考電壓。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-11 21:03:42 | 显示全部楼层
eddiewwm 发表于 2015-11-11 17:52
可參考這個優化後的電路,要注意的是:A/D用內置 1.1V參考電壓。

唔該哂 ching, 我都有諗過用二進既會唔會好D, 但又唔知搵唔搵得到印要既.
不過, 睇完你個表, 真係分得好好, 要努力搵下.
真係唔該哂 ching.  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 22:39 , Processed in 0.036938 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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