99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

編碼器的STC單片機實例分析

就常用的EC11旋轉編碼器為例來分析

一開始我只是在示波器和數控電源上見到過旋轉編碼器,那時候我聽人說這叫數字電位器,就覺得很神奇,是什么結構竟然可以讓一個“電位器”無限的轉下去。后來才知道汽車的車機上用的也是旋轉編碼器。

一、旋轉編碼器作為人機交互的輸入設備,最常用的是EC11(類似的還有EC12、EC16等)

具體電路分析如下

EC11測試電路原理圖.無外部上拉電阻.幾乎所有單片機IO口都可以設置為輸入上拉模式,也可以省略EC11的外部上拉電阻,但是我沒有這樣做。

在研究EC11的時序之前首先要了解一點,EC11按旋轉的輸出動作可以分為兩種。一種是轉兩格,A、B對C端輸出一個完整脈沖(轉一格就只是由低電平->高電平或由高電平->低電平);另一種就是轉一格,A、B對C端輸出一個完整脈沖。

二、具體原理分析一下,如何讓輸出脈沖的

兩定位一脈沖的EC11稍微復雜一些,轉動一格只會輸出半個脈沖。靜止時,AB觸點開關可以是斷開的也可以是閉合的。

若初始狀態時AB都是高電平,轉動一格就輸出從高電平到低電平的下降沿,隨后一直輸出低電平。對應于EC11內部AB兩個觸電開關的動作為斷開-->閉合。若初始狀態時AB都是低電平,轉動一格就輸出從低電平到高電平的上升沿,隨后一直輸出低電平。對應于EC11內部AB兩個觸點開關的動作為閉合-->斷開。由于兩脈沖一定位的EC11會有兩種初始狀態,寫驅動程序就需要考慮多一些情況。再者,這類EC11在轉動到內部AB觸點一直閉合的時候,就相當于把上拉電阻的另一端接地,無形中加大了系統的功耗(若外接10K上拉電阻到5V電源就是500uA的電流),這對于低功耗應用來說是非常不利的。因此對于無特殊要求的人機輸入應用來說,我都推薦使用一定位一脈沖的EC11。

當然了,有一些質量比較差的EC11會有一些額外的問題要考慮,例如開關的抖動問題,例如轉動定位不清晰,靜止時AB兩個觸點都要閉合或者都要斷開才對,但是定位點不清晰,轉動的角度不到位導致一個觸點已經閉合(斷開)了,另一個觸點卻還保持在斷開(閉合)。

這樣就輸出了高低電平的脈沖了

三、stc15單片機程序分析

//----------------IO口定義----------------//
#define EC11_A_Now                    P36   //EC11的A引腳,視為時鐘線
#define EC11_B_Now                    P35    //EC11的B引腳,視為信號線
#define EC11_Key                      P37    //EC11的按鍵
文件內需要的靜態局部變量
//----------------局部文件內變量列表----------------//
static  char    EC11_A_Last = 0;                        //EC11的A引腳上一次的狀態
static  char    EC11_B_Last = 0;                        //EC11的B引腳上一次的狀態
static  char    EC11_Type = 1;          //定義變量暫存EC11的類型---->>>>----  0:一定位對應一脈沖;  1:兩定位對應一脈沖
//所謂一定位對應一脈沖,是指EC11旋轉編碼器每轉動一格,A和B都會輸出一個完整的方波。
//而  兩定位對應一脈沖,是指EC11旋轉編碼器每轉動兩格,A和B才會輸出一個完整的方波,只轉動一格只輸出A和B

編碼器掃描程序

按鍵檢測部分

我們自己用EC11,大多數時候都是選擇帶按鍵的,這就可以把按鍵檢測加入到EC11的動作掃描程序中,實現單獨的檢測按鍵以及按下按鍵時轉動轉軸。

掃描到EC11的動作后,可以在此函數內做出對應的動作處理。函數內包含了按鍵的單擊,雙擊,長按和長按松手檢測。

大家可以參考下程序

EC11.zip

全部回復(17)
正序查看
倒序查看
2021-06-09 23:06

之前沒用過旋轉編碼器,這個要判斷位置,是不是得ABC都檢測,比如EC11EH 是001,010,100這3個狀態一個循環?謝謝

0
回復
#回復內容已被刪除#
3
#回復內容已被刪除#
4
k6666
LV.9
5
2021-06-10 12:36

感謝樓主分析程序,學習下。編碼這塊接觸的少。

0
回復
2021-06-10 14:51
@天府大懶貓
之前沒用過旋轉編碼器,這個要判斷位置,是不是得ABC都檢測,比如EC11EH是001,010,100這3個狀態一個循環?謝謝

AB是脈沖,C是普通的按鍵,高低電平,

0
回復
飛翔2004
LV.10
7
2021-06-16 14:50

EC11編碼器能識別正反旋轉嗎?如何識別?

0
回復
2021-06-18 09:31

長按檢測的時間設置是多少啊,3S?

0
回復
2021-06-21 19:47
@飛翔2004
EC11編碼器能識別正反旋轉嗎?如何識別?

主要是檢測AB脈沖來確定那個方向旋轉

0
回復
2021-06-21 19:59
@快樂的小天使
長按檢測的時間設置是多少啊,3S?

可以的

0
回復
iszjt
LV.5
11
2021-06-22 09:05

STC單片機(具有PCA功能的),怎么實現可變頻率的PWM輸出?

0
回復
2021-06-26 10:08

旋轉編碼器是不是通過旋轉來改它的阻值,來達到各個脈沖大小實現的呢?

0
回復
2021-06-28 23:21

如何保證編碼器的精度如何呢

0
回復
魯珀特
LV.4
14
2021-07-02 16:19

這種編碼器聽說過但沒用過,有個疑問,會不會某一種角度,所有輸出管腳都處在高電平(低電平)

0
回復
2021-07-08 09:41
@飛翔2004
EC11編碼器能識別正反旋轉嗎?如何識別?

識別這個AB的相位

0
回復
2021-07-08 09:42
@iszjt
STC單片機(具有PCA功能的),怎么實現可變頻率的PWM輸出?

可以改變頻率的,改變周期那個數值就可以

0
回復
2021-07-08 09:43
@13688922894a
旋轉編碼器是不是通過旋轉來改它的阻值,來達到各個脈沖大小實現的呢?

ab脈沖的相位不一樣

0
回復
2021-07-08 09:46
@魯珀特
這種編碼器聽說過但沒用過,有個疑問,會不會某一種角度,所有輸出管腳都處在高電平(低電平)

默認狀態都是高電平,只要轉動的話既可以檢測的

0
回復
主站蜘蛛池模板: 亚洲综合色视频 | 黑人巨大两根一起挤进交换 | 99R在线精品视频在线播放 | 亚洲国产精品无码专区影院 | 人妻aⅴ中文字幕 | 欧美九九九 | 欧美xxxx色视频在线观看 | 99re8在线精品视频免费播放 | 看黄免费在线观看 | 日韩大片av| 欧美日韩在线一区 | 波多野结衣先锋在线 | 嫩草tv| 在线观看中文字幕dvd播放 | 女人被添全过程A片久久AV | 特级黄色毛片 | 精品国产人妻一区二区三区 | 91在线porny国产在线看 | 夜夜夜夜曰天天天天拍国产 | 欧美va免费精品高清在线 | 国产熟女一区二区三区四区五区 | 国产精品扒开腿做爽爽爽A片唱戏 | 成年人免费在线看网站 | 久久久久人妻精品一区 | 国产精品香蕉在线观看网 | 国产一区国产二区在线观看 | 国产精品免费自拍 | 久精品久久 | 久久爱九九伊人 | 国产高清美女一级毛片 | 欧美日韩中文国产 | 久久不卡免费视频 | 在线一区视频 | 在线欧美鲁香蕉94色 | 亚洲HEYZO专区无码综合 | 欧美第一区 | 91popn国产在线 | www.99色 | 国产91精品精华液一区二区三区 | 亚洲成人aa| 亚洲黄色在线免费观看 |