EC11編碼器 EC11編碼器通常又被稱為旋轉(zhuǎn)編碼器,一般主要是用于亮度,溫度,頻率,音量調(diào)節(jié)等參數(shù)控制。 三只腳中的C腳接地,AB腳接上拉電阻后,當(dāng)左轉(zhuǎn)或右轉(zhuǎn)時,AB腳就有脈沖信號輸出。S1和S2腳為按壓開關(guān),按下時導(dǎo)通。 旋轉(zhuǎn)編碼器的引腳圖和原理圖為:
順時針和逆時針旋轉(zhuǎn)AB引腳輸出波形圖 和單片機通信的程序為: EC11.h - #ifndef EC11
- #define EC11
復(fù)制代碼EC11.c - #include<All.h>
- uchar EC11_Value = 125; // 獲取旋轉(zhuǎn)的值
- /*********************************
- * @函數(shù)名:EC11_Display
- * @描 述:判斷方向,計算旋轉(zhuǎn)的值
- * @參 數(shù):無
- * @返回值:無
- *********************************/
- void EC11_Display()
- {
- static bit EC11_Flag=0,Left_Flag=0,Right_Flag=0;
- if((EC11_A)&&(EC11_B)) //兩個都是1,表示開始第一個脈沖
- {
- EC11_Flag =1 ;//標(biāo)記為第一個信號收到,可以進(jìn)行下一個信號
- }
- if(EC11_A!=EC11_B)//第二個信號
- {
- Left_Flag = EC11_A ; //記錄AB的信號狀態(tài)
- Right_Flag = EC11_B ;
- }
- if(EC11_Flag)
- {
- if((EC11_A==0)&&(EC11_B==0)) // 第三個信號,處理第二個信號的值
- {
- if(Left_Flag) //左轉(zhuǎn)
- {
- EC11_Value-- ; //旋轉(zhuǎn)的值加1
- }
- else if(Right_Flag)
- {
- EC11_Value++; //旋轉(zhuǎn)的值減1
- }
- EC11_Flag = 0; //把標(biāo)志位清零,等待下一個周期
- }
- }
- }
復(fù)制代碼全部資料51hei下載地址:
EC11編碼器.zip
(590.1 KB, 下載次數(shù): 482)
2020-2-15 15:38 上傳
點擊文件名下載附件
文檔和代碼
|