使用arduino 連線滑鼠滾輪編碼器

2022-09-14 20:57:27 字數 974 閱讀 2426

滑鼠滾輪的機械式編碼器跟一般的增量編碼器還有點不一樣,這裡是他的ab相時序解釋:

實驗電路,非常簡單,gnd接編碼器的地,編碼器其他兩個線接數字輸入2.3(注意數字輸入01腳跟串列埠是復用的,如果用了串列埠功能就沒法用gpio了,我一開始沒留意這問題搞得沒法燒程式了)。為了訊號穩定,設定23腳接內部上拉電阻。

程式原理,腳2每次變狀態時給計數加1或者減1,用腳2變狀態時腳3的狀態來確定是加1還是減1.

**

#include //

加入計時器用來測量速度

#define debounce_time 8 //

延時用來過濾不正常的訊號,此數字太大的話會對快速的旋轉不起反應

//定義引腳2.3

int aphase = 2

;int bphase = 3

;long count = 0;//

計數long prevercount = 0;//

上一次的計數

long cerrentcount = 0;//

當前計數

void

getspeed()

void

setup()

void

loop()

if (digitalread(bphase) == 1

)

}}

//初始狀態是0的判斷,想改進的話可以用外部中斷的上公升沿事件

if (firstaphasestate == 0

)

if (digitalread(bphase) == 0

) }

}delay(

1);//

延時增加程式穩定性

}

實驗現象:隨之滑鼠滾輪正反轉,計數會增大或者減小,每過一秒輸出一次速度

滑鼠 5 滾輪

這不是乙個噱頭,看 雖然很長,但卻很經典,可以實現鍵盤,滾輪滑動滾動條。下面是標頭檔案,是儲存的資料。define numlines int sizeof sysmetrics sizeof sysmetrics 0 struct sysmetrics 來了 include include incl...

滑鼠滾輪事件

新增事件 有相容性 註冊事件 if document.addeventlistener window.onmousewheel document.onmousewheel scrollfunc ie opera chrome detail與wheeldelta 判斷滾輪向上或向下在瀏覽器中也有相容性...

滑鼠滾輪事件

新增事件 有相容性 註冊事件 if document.addeventlistener window.onmousewheel document.onmousewheel scrollfunc ie opera chrome detail與wheeldelta 判斷滾輪向上或向下在瀏覽器中也有相容性...