![]() |
根據(jù)圖上看出單片機是通過用兩個ADC IO口讀取4按鍵按下的電壓來判斷是那個按鍵 |
如果PCB還沒有打樣出來,那就還來得及,趕緊改原理圖,更新layout。下面的一堆就不用看了。 NetInto1和NetInto2是否有接到MCU的GPIO呢? 如果有的話可以分時將KEY0/1和KEY_MOD輸出低電平。然后檢測NetInto1和NetInto2對應的GPIO的電平狀態(tài)來判定按鍵。 如果沒有的話,把R32和R36更改為相差較大一點的阻值,然后使用ADC讀取KEY0/1和KEY_MOD的電壓值,根據(jù)電壓值不同可以確定是否有按鍵按下、那個按鍵被按下。 一個按鍵簡簡單單多好,硬是要花式玩,何必為難自己呢。 ![]() |
原理圖畫的不直觀, 對于新手來說, 還是容易導致誤解. 這個原理圖和普通的4獨立按鍵軟件處理方法是一樣的. 要注意R2,R36的電阻值不能太大.不然IO讀入的電壓值偏低導致1/0邏輯不穩(wěn)定. |
ty4444 發(fā)表于 2023-8-7 11:19 R2,R36上拉電阻多大. 如果遠大于10K(100K或以上), IO設置為高阻方式,讀為0則有對應按鍵按下, 為1無鍵按下. 如果上拉電阻不夠大, 按鍵按下時電平不夠低(單片機不能識別0), 可用AD的方式識別按鍵, 檢測IO電壓, 不按或按下電壓是不同的. 看你IO上有電容, 也可用測時間的方式檢測按鍵, 置IO推挽方式, IO置0, 給電容充分放電(注意時間不要太短), 檢測時, IO置高阻, 同時打開定時器定時, 檢測IO跳為1時的時間, 按鍵不按或按下的時間應該不同. 后面二種麻煩(如按下檢測不了0時才用) |
lzts88 發(fā)表于 2023-8-6 09:10 剛剛已經(jīng)補了 |
hhdsdy 發(fā)表于 2023-8-6 10:28 怎么區(qū)分KEY0/1或KEY_MOD左右按鍵哪個被按下呢? |
愛電子998 發(fā)表于 2023-8-5 20:45 有意義的,中間有網(wǎng)絡端子,只是這圖畫得很不直觀而已。 分別檢測KEY0/1和KEY_MOD是否為高電平就可以判斷是否有按鍵按下了 |
多補下畫電路圖吧. KEY0/1和KEY_MOD接了下拉電阻, 你要在開關的中間要加下拉電阻到地呀. 要是這電阻為0, 大家是不是瞬間明白怎樣識別了 |
如果圖中標號是連接4個IO口,這個接法是2*2矩陣。識別方法與4*4矩陣相似。貌似采用這種接法沒有什么實際意義。 |
建議4個按鍵用4個IO口,這樣編程最簡單,適合新手。 |
按照這個電路圖接沒有意義啊?如果有用也是二個按鍵同時按才能有用,好奇怪 |
Powered by 單片機教程網(wǎng)