標(biāo)題: 37種傳感器(七)之旋轉(zhuǎn)編碼傳感器模塊+Stduino Nano&UNO [打印本頁(yè)]
作者: Stduino 時(shí)間: 2020-7-22 20:43
標(biāo)題: 37種傳感器(七)之旋轉(zhuǎn)編碼傳感器模塊+Stduino Nano&UNO
說(shuō)明:
旋轉(zhuǎn)編碼器可通過(guò)旋轉(zhuǎn)來(lái)計(jì)數(shù)(即可從0開(kāi)始不但加一或者減一,計(jì)數(shù)范圍沒(méi)有限制),實(shí)現(xiàn)精確數(shù)字的調(diào)節(jié)。電機(jī)角度等需要特別精確調(diào)節(jié)的元器件可以利用編碼器來(lái)實(shí)現(xiàn)精細(xì)控制。配合旋轉(zhuǎn)編碼器上的按鍵,可以復(fù)位到初始狀態(tài),即從0開(kāi)始計(jì)數(shù)。
依照內(nèi)部數(shù)字讀取辦法,編碼器能夠分為機(jī)械式和非機(jī)械式兩種:機(jī)械式選用電刷輸出,電刷接觸到導(dǎo)電區(qū)則引腳輸出高電平,接觸到絕緣區(qū)則為低電平;非機(jī)械式的承受靈敏元件是光敏元件或磁敏元件,選用光敏元件時(shí)以透光區(qū)和不透光區(qū)來(lái)表明輸出是“高”還是“低”。
目前常用的增量式編碼器全部為機(jī)械式編碼器,優(yōu)點(diǎn)在于好用且成本低,高端的一般為非機(jī)械光電式的。我們采用的模塊也使用得機(jī)械式。
07旋轉(zhuǎn)編碼器照片.png (473.28 KB, 下載次數(shù): 55)
下載附件
2020-7-22 20:26 上傳
如果你手上有一個(gè)旋轉(zhuǎn)編碼器,你可以試著擰一下:并不是連續(xù)旋轉(zhuǎn),而是擰的得時(shí)候會(huì)明顯感受到不連續(xù),一下一下的。因此,我們可以實(shí)現(xiàn)精確的計(jì)數(shù),這與電位器是不同的
那么問(wèn)題來(lái)了,怎么計(jì)數(shù)呢?我們可以做以下規(guī)定:
以順時(shí)針?lè)较驗(yàn)檎,凡往順?shì)針?lè)较蜣D(zhuǎn)一下,則計(jì)數(shù)加一,同理轉(zhuǎn)N下,則計(jì)數(shù)加n。反之,如果向逆時(shí)針轉(zhuǎn)一下,則計(jì)數(shù)減一,同理轉(zhuǎn)N下,則計(jì)數(shù)減n。
逆時(shí)針同理。
現(xiàn)在問(wèn)題又來(lái)了,旋轉(zhuǎn)編碼器怎么告訴微處理器,我的旋轉(zhuǎn)方向是什么呢?這些我們打開(kāi)旋轉(zhuǎn)編碼器的微觀結(jié)構(gòu):
實(shí)際上旋轉(zhuǎn)編碼器內(nèi)部結(jié)構(gòu)如下所示。基本上由絕緣圓盤(pán)(灰色)和放置在圓盤(pán)頂部的導(dǎo)電墊(藍(lán)色)組成。
這些導(dǎo)電墊分離放置,因此當(dāng)旋轉(zhuǎn)旋鈕時(shí),旋轉(zhuǎn)一單位,原先空著的部分會(huì)被導(dǎo)電墊填充,而導(dǎo)電墊離開(kāi)的位置則重新恢復(fù)絕緣。因此,當(dāng)導(dǎo)電墊通過(guò)A和B輸出引腳時(shí),引腳會(huì)輸出高電平信號(hào),反之則不會(huì)輸出高電平。因此只要判斷引腳信號(hào)與上一次是否相同,就能得知是否發(fā)生了旋轉(zhuǎn)。
如下圖,每一次旋轉(zhuǎn)的時(shí)候,當(dāng)順時(shí)針旋轉(zhuǎn),A總是先比B接觸到導(dǎo)電墊,或者離開(kāi)導(dǎo)電墊,因此A總是比B先改變電平輸出狀態(tài),此時(shí)當(dāng)A發(fā)生變化后一定與B信號(hào)不同。下圖為兩次順時(shí)針旋轉(zhuǎn)時(shí),A、B電平變化(紅色為輸出高電平信號(hào))
07旋轉(zhuǎn)編碼器示意圖01.png (70.42 KB, 下載次數(shù): 61)
下載附件
2020-7-22 20:38 上傳
07旋轉(zhuǎn)編碼器示意圖02.png (72.85 KB, 下載次數(shù): 63)
下載附件
2020-7-22 20:38 上傳
而當(dāng)逆時(shí)針旋轉(zhuǎn)時(shí),B先于A轉(zhuǎn)換電平,因此當(dāng)檢測(cè)到A發(fā)生變化時(shí),此時(shí)B已經(jīng)完成了信號(hào)轉(zhuǎn)換,此時(shí)A、B信號(hào)相同。
實(shí)驗(yàn)?zāi)康模?br />
利用旋轉(zhuǎn)編碼器實(shí)現(xiàn)計(jì)數(shù)。
器材:
StduinoUno/Nano;杜邦線;旋轉(zhuǎn)編碼器模塊。
電路連接:
07旋轉(zhuǎn)編碼器電路圖.png (158.7 KB, 下載次數(shù): 50)
下載附件
2020-7-22 20:39 上傳
代碼展示:
#define outputA 6
#define outputB 7
int counter = 0;
int aState;
int aLastState;
void setup()
{
pinMode (outputA,INPUT);
pinMode (outputB,INPUT);
Serial.begin (9600);
aLastState = digitalRead(outputA);
}
void loop()
{
aState = digitalRead(outputA); // 讀取當(dāng)前A電平
//如果當(dāng)前A電平與上一次(初始)A電平不同,說(shuō)明發(fā)生了旋轉(zhuǎn)
if (aState != aLastState)
{
// 如果A\B電平不同,說(shuō)明A先于B變化,因此是順時(shí)針旋轉(zhuǎn)。順時(shí)針旋轉(zhuǎn)則計(jì)數(shù)加一;反之則減一
if (digitalRead(outputB) != aState)
{
counter ++;
} else
{
counter --;
}
Serial.print("Position: ");
Serial.println(counter);
}
aLastState = aState; //更新aLastState狀態(tài)的記錄
實(shí)驗(yàn)效果:
當(dāng)順時(shí)針旋轉(zhuǎn)的時(shí)候,計(jì)數(shù)數(shù)目逐次加一;當(dāng)逆時(shí)針旋轉(zhuǎn)時(shí),技術(shù)數(shù)目逐次減一。下面所示為順時(shí)針旋轉(zhuǎn)八個(gè)單位的過(guò)程中串口輸出情況。
07旋轉(zhuǎn)編碼器效果圖.png (19.95 KB, 下載次數(shù): 57)
下載附件
2020-7-22 20:40 上傳
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
天天射天天干
|
亚洲91视频
|
日韩av成人
|
精品久久久久久久久亚洲
|
四虎网站在线观看
|
亚洲精品欧美精品
|
久久精品中文字幕
|
在线a视频|
久久久久久国产免费视网址
|
国产精品久久久久久
|
亚洲看片网站
|
国产午夜精品一区二区三区四区
|
午夜三级在线观看
|
欧美日韩专区
|
国产精品永久
|
九色在线视频
|
日韩免费网
|
天天综合网91
|
欧美黑人国产人伦爽爽爽
|
天天干视频
|
精品在线一区二区
|
九九99精品|
精品96久久久久久中文字幕无
|
青青草av
|
国产一区
|
色一情一乱一伦一区二区三区
|
中文字幕成人在线
|
国产一级电影在线观看
|
成人1区
|
国产日韩精品一区
|
精品日本久久久久久久久久
|
亚洲国产一区二区在线
|
在线观看日韩av
|
91精品久久久久久久久久小网站
|
亚洲欧美日韩国产综合
|
精品av天堂毛片久久久借种
|
中文字幕一区二区三区精彩视频
|
久久精品国产99国产
|
一区二区三区视频
|
在线观看免费毛片
|
日韩欧美电影在线
|