欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

旋轉(zhuǎn)編碼器如何工作?有哪些類型?

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2022-11-10 16:04 ? 次閱讀

旋轉(zhuǎn)編碼器是一種輸入設(shè)備,可幫助用戶與系統(tǒng)進(jìn)行交互。它看起來更像是一個無線電電位計,但它輸出一系列脈沖,這使得它的應(yīng)用獨(dú)一無二。當(dāng)編碼器的旋鈕旋轉(zhuǎn)時,它以小步長的形式旋轉(zhuǎn),這有助于它用于步進(jìn)/伺服電機(jī)控制,瀏覽一系列菜單以及增加/減少數(shù)字的值等等。

在本文中,我們將了解不同類型的旋轉(zhuǎn)編碼器及其工作原理。我們還將它與 Arduino 連接,并通過旋轉(zhuǎn)編碼器來控制整數(shù)的值,并在 16*2 LCD 屏幕上顯示其值。在本教程結(jié)束時,您將習(xí)慣于為您的項(xiàng)目使用旋轉(zhuǎn)編碼器。所以讓我們開始吧...

所需材料

旋轉(zhuǎn)編碼器 (KY-040)

Arduino UNO

16*2字母數(shù)字液晶顯示器

電位器 10k

面包板

連接線

旋轉(zhuǎn)編碼器如何工作?

旋轉(zhuǎn)編碼器是一種機(jī)電換能器,這意味著它將機(jī)械運(yùn)動轉(zhuǎn)換為電子脈沖。它由一個旋鈕組成,當(dāng)旋轉(zhuǎn)時,旋鈕將逐步移動,并為每個步驟產(chǎn)生一系列具有預(yù)定義寬度的脈沖序列。有許多類型的編碼器,每種都有自己的工作機(jī)制,我們稍后將了解這些類型,但現(xiàn)在讓我們只關(guān)注KY040 增量編碼器,因?yàn)槲覀冊诮坛讨惺褂盟?/p>

編碼器的內(nèi)部機(jī)械結(jié)構(gòu)如下所示。它基本上由一個圓形圓盤(灰色)組成,導(dǎo)電墊(銅色)放置在該圓形圓盤的頂部。這些導(dǎo)電墊放置在相等的距離上,如下所示。輸出引腳固定在這個圓形圓盤的頂部,這樣當(dāng)旋鈕旋轉(zhuǎn)時,導(dǎo)電墊與輸出引腳接觸。這里有兩個輸出引腳,輸出A和輸出B,如下圖所示。

poYBAGNssISADLKcAAANizcStK0928.png

輸出引腳A和輸出B產(chǎn)生的輸出波形分別以藍(lán)色和綠色顯示。當(dāng)導(dǎo)電焊盤直接位于引腳下方時,它會變高,從而按時導(dǎo)通,當(dāng)導(dǎo)電焊盤移開時,引腳變低,導(dǎo)致上面所示波形的關(guān)斷時間?,F(xiàn)在,如果我們計算脈沖數(shù),我們將能夠確定編碼器移動了多少步。

現(xiàn)在可能會出現(xiàn)一個問題,為什么我們需要兩個脈沖信號,而一個脈沖信號足以計算旋轉(zhuǎn)旋鈕時采取的步數(shù)。這是因?yàn)槲覀冃枰_定旋鈕的旋轉(zhuǎn)方向。如果你看一下這兩個脈沖,你會發(fā)現(xiàn)它們都是90°的異相。因此,當(dāng)旋鈕順時針旋轉(zhuǎn)時,輸出 A 將首先變高,當(dāng)旋鈕逆時針旋轉(zhuǎn)時,輸出 B 將首先變高。

旋轉(zhuǎn)編碼器的類型

市場上有許多類型的旋轉(zhuǎn)編碼器,設(shè)計人員可以根據(jù)自己的應(yīng)用選擇一種。下面列出了最常見的類型

增量編碼器

絕對值編碼器

磁編碼器

光學(xué)編碼器

激光編碼器

這些編碼器根據(jù)輸出信號和傳感技術(shù)進(jìn)行分類,增量編碼器和絕對編碼器根據(jù)輸出信號進(jìn)行分類,磁性、光學(xué)和激光編碼器根據(jù)傳感技術(shù)進(jìn)行分類。此處使用的編碼器是增量類型編碼器。

KY-040 旋轉(zhuǎn)編碼器引腳排列和說明

KY-040增量式旋轉(zhuǎn)編碼器的引腳排列如下所示

pYYBAGNssIaAIuaKAABKSdcTsnA127.jpg

前兩個引腳(接地和Vcc)用于為編碼器供電,通常使用+5V電源。除了順時針和逆時針方向旋轉(zhuǎn)旋鈕外,編碼器還有一個開關(guān)(低電平有效),可以通過按下內(nèi)部旋鈕來按下。來自該開關(guān)的信號通過引腳 3(開關(guān))獲得。最后,它具有兩個輸出引腳,可產(chǎn)生如上所述的波形?,F(xiàn)在讓我們學(xué)習(xí)如何將其與Arduino接口。

Arduino 旋轉(zhuǎn)編碼器電路圖

旋轉(zhuǎn)編碼器與Arduino接口的完整電路圖如下圖所示

pYYBAGNssIeAJnZnAADUyr7cRxs787.png

旋轉(zhuǎn)編碼器有 5 個引腳,順序如上標(biāo)簽所示。前兩個引腳是接地和Vcc,連接到Arduino的接地和+5V引腳。編碼器的開關(guān)連接到數(shù)字引腳D10,并通過一個1k電阻被拉高。兩個輸出引腳分別連接到D9和D8。

為了顯示通過旋轉(zhuǎn)編碼器增加或減少的變量值,我們需要一個顯示模塊。這里使用的是一種常見的16 * 2字母數(shù)字LCD顯示器。我們已經(jīng)連接了顯示器以4位模式運(yùn)行,并使用Arduino的+5V引腳為其供電。電位計用于調(diào)整LCD顯示屏的對比度。如果您想了解有關(guān)使用Arduino接口LCD顯示器的更多信息,請點(diǎn)擊鏈接。完整的電路可以建在面包板的頂部,一旦所有連接完成,我的下面看起來像這樣。

poYBAGNssImAIzRhAADNNCcP_3U636.jpg

為旋轉(zhuǎn)編碼器編程 Arduino

如果您了解旋轉(zhuǎn)編碼器的工作原理,那么對Arduino板進(jìn)行編程以將旋轉(zhuǎn)編碼器與其連接是相當(dāng)容易和直接的。我們只需要讀取脈沖數(shù)來確定編碼器轉(zhuǎn)了多少圈,并檢查哪個脈沖先變高,以找到編碼器旋轉(zhuǎn)的方向。在本教程中,我們將在LCD的第一行顯示遞增或遞減的數(shù)字,在第二行顯示編碼器的方向。用于執(zhí)行相同操作的完整程序可以在此頁面底部找到演示視頻,它不需要任何庫?,F(xiàn)在,讓我們將程序分成小塊以了解工作原理。

由于我們使用了LCD顯示器,因此我們包含了默認(rèn)情況下存在于Arduino IDE中的液晶庫。然后我們定義用于將LCD與Arduino連接的引腳。最后,我們初始化這些引腳上的LCD顯示。

#include //Default Arduino LCD Library is included

const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2; //Mention the pin number for LCD connection

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

lcd.begin(16, 2); //Initialise 16*2 LCD

接下來在設(shè)置功能中,我們在LCD屏幕上顯示一條介紹性消息,然后等待2秒鐘,以便該消息可供用戶閱讀。這是為了確保液晶屏工作正常。

lcd.print(" Rotary Encoder "); //Intro Message line 1

lcd.setCursor(0, 1);

lcd.print(" With Arduino "); //Intro Message line 2

delay(2000);

lcd.clear();

旋轉(zhuǎn)編碼器有三個輸出引腳,它們將成為Arduino的輸入引腳。這三個引腳分別是開關(guān)、輸出 A 和輸出 B。這些使用pinMode函數(shù)聲明為輸入,如下所示。

//pin Mode declaration

pinMode (Encoder_OuputA, INPUT);

pinMode (Encoder_OuputB, INPUT);

pinMode (Encoder_Switch, INPUT);

在 void 設(shè)置功能中,我們讀取輸出 A 引腳的狀態(tài)以檢查引腳的最后狀態(tài)。然后,我們將使用此信息與新值進(jìn)行比較,以檢查哪個引腳(輸出 A 或輸出 B)已變高。

Previous_Output = digitalRead(Encoder_OuputA); //Read the inital value of Output A

最后,在主循環(huán)函數(shù)中,我們必須將輸出 A 和輸出 B 的值與上一個輸出進(jìn)行比較,以檢查哪個先變高。這可以通過簡單地將A和B的電流輸出值與先前的輸出進(jìn)行比較來完成,如下所示。

if (digitalRead(Encoder_OuputA) != Previous_Output)

{

if (digitalRead(Encoder_OuputB) != Previous_Output)

{

Encoder_Count ++;

lcd.clear();

lcd.print(Encoder_Count);

lcd.setCursor(0, 1);

lcd.print("Clockwise");

}

在上面的代碼中,如果輸出 B 與上一個輸出相比發(fā)生了變化,則執(zhí)行第二個 if 條件。在這種情況下,編碼器變量的值遞增,LCD顯示編碼器按順時針方向旋轉(zhuǎn)。類似地,如果條件失敗,在隨后的 else 條件中,我們遞減變量并顯示編碼器沿逆時針方向旋轉(zhuǎn)。相同的代碼如下所示。

else

{

Encoder_Count--;

lcd.clear();

lcd.print(Encoder_Count);

lcd.setCursor(0, 1);

lcd.print("Anti - Clockwise");

}

}

最后,在主循環(huán)結(jié)束時,我們必須使用當(dāng)前輸出值更新以前的輸出值,以便可以使用相同的邏輯重復(fù)循環(huán)。以下代碼執(zhí)行相同的操作

Previous_Output = digitalRead(Encoder_OuputA);

另一個可選的事情是檢查編碼器上的開關(guān)是否被按下。這可以通過檢查旋轉(zhuǎn)打碼機(jī)上的開關(guān)引腳來監(jiān)控。此引腳是有效的低引腳,這意味著按下按鈕時它將變?yōu)榈碗娖?。如果不按下引腳保持高電平,我們還使用上拉電阻器來確保在未按下開關(guān)時保持高電平,從而避免浮點(diǎn)情況。

if (digitalRead(Encoder_Switch) == 0) { lcd.clear(); lcd.setCursor(0, 1); lcd.print("Switch pressed"); }

旋轉(zhuǎn)編碼器與Arduino的工作

硬件和代碼準(zhǔn)備就緒后,只需將代碼上傳到Arduino板并啟動Arduino板即可。您可以通過 USB 電纜或使用 12V 適配器為其供電。通電后,液晶屏應(yīng)顯示介紹消息,然后變?yōu)榭瞻住,F(xiàn)在旋轉(zhuǎn)旋轉(zhuǎn)編碼器,您應(yīng)該會看到值開始根據(jù)旋轉(zhuǎn)方向遞增或遞減。第二行將顯示編碼器是順時針還是逆時針旋轉(zhuǎn)。下圖顯示相同

pYYBAGNssIyALCJPAADTrMhYYfk399.jpg

此外,當(dāng)按下按鈕時,第二行將顯示按鈕已按下。完整的工作可以在下面的視頻中找到。這只是一個示例程序,用于將編碼器與Arduino連接并檢查其是否按預(yù)期工作。到達(dá)此處后,您應(yīng)該能夠?qū)⒕幋a器用于任何項(xiàng)目和相應(yīng)的程序。

/*

* Interfacing Rotary Encoder with Arduino

* Power LCD and Rotary encoder from the +5V pin of Arduino

* LCD RS -> pin 7

* LCD EN -> pin 6

* LCD D4 -> pin 5

* LCD D5 -> pin 4

* LCD D6 -> pin 3

* LCD D7 -> pin 2

* Encoder Switch -> pin 10

* Encoder Output A -> pin 9

* Encoder Output B -> pin 8

*/


int Encoder_OuputA = 9;

int Encoder_OuputB = 8;

int Encoder_Switch = 10;


int Previous_Output;

int Encoder_Count;





#include //Default Arduino LCD Librarey is included


const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 3, d7 = 2; //Mention the pin number for LCD connection

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);


void setup() {

lcd.begin(16, 2); //Initialise 16*2 LCD


lcd.print(" Rotary Encoder "); //Intro Message line 1

lcd.setCursor(0, 1);

lcd.print(" With Arduino "); //Intro Message line 2


delay(2000);

lcd.clear();


//pin Mode declaration

pinMode (Encoder_OuputA, INPUT);

pinMode (Encoder_OuputB, INPUT);

pinMode (Encoder_Switch, INPUT);


Previous_Output = digitalRead(Encoder_OuputA); //Read the inital value of Output A

}


void loop() {

//aVal = digitalRead(pinA);



if (digitalRead(Encoder_OuputA) != Previous_Output)

{

if (digitalRead(Encoder_OuputB) != Previous_Output)

{

Encoder_Count ++;

lcd.clear();

lcd.print(Encoder_Count);

lcd.setCursor(0, 1);

lcd.print("Clockwise");

}

else

{

Encoder_Count--;

lcd.clear();

lcd.print(Encoder_Count);

lcd.setCursor(0, 1);

lcd.print("Anti - Clockwise");

}

}


Previous_Output = digitalRead(Encoder_OuputA);


if (digitalRead(Encoder_Switch) == 0)

{

lcd.clear();

lcd.setCursor(0, 1);

lcd.print("Switch pressed");

}

}


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4438

    瀏覽量

    168445
  • 旋轉(zhuǎn)編碼器
    +關(guān)注

    關(guān)注

    5

    文章

    159

    瀏覽量

    26027
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187914
收藏 人收藏

    評論

    相關(guān)推薦

    旋轉(zhuǎn)編碼器類型區(qū)別與應(yīng)用選擇

    顧名思義,絕對編碼器會直接輸出正在測量的軸的確切位置。每個旋轉(zhuǎn)點(diǎn)都具有唯一的位置值或數(shù)據(jù)字,并在隨軸一起旋轉(zhuǎn)的碼盤上編碼。碼盤上唯一代碼的數(shù)量決定了位置的表示精度。
    的頭像 發(fā)表于 01-17 08:59 ?8728次閱讀

    旋轉(zhuǎn)編碼器是如何工作的?

    旋轉(zhuǎn)編碼器是一種經(jīng)過驗(yàn)證的流行解決方案,用于測量旋轉(zhuǎn)軸的速度,運(yùn)動方向或位置。幾種不同的類型,主要的兩種是絕對
    發(fā)表于 01-01 07:46

    旋轉(zhuǎn)編碼器的作用及工作原理

    在數(shù)字時代,需要快速高效地測量電機(jī)或旋轉(zhuǎn)儀器旋鈕上的機(jī)械軸的旋轉(zhuǎn)。諸如電位計和旋轉(zhuǎn)開關(guān)之類的模擬方法正在被可將旋轉(zhuǎn)運(yùn)動直接數(shù)字化的旋轉(zhuǎn)
    發(fā)表于 02-22 06:09

    旋轉(zhuǎn)編碼器的原理和特點(diǎn)哪些

    旋轉(zhuǎn)編碼器工作原理一、旋轉(zhuǎn)編碼器的原理和特點(diǎn): 旋轉(zhuǎn)編碼器
    發(fā)表于 07-06 07:56

    旋轉(zhuǎn)編碼器類型及其工作原理

    , 但它輸出一系列脈沖, 這使得它的應(yīng)用獨(dú)特。當(dāng)編碼器的旋鈕旋轉(zhuǎn)時, 它以小步的形式旋轉(zhuǎn), 這有助于它用于 stepper/servo 電機(jī)控制。在本文中,我們將了解不同類型
    發(fā)表于 07-16 08:17

    了解不同類型旋轉(zhuǎn)編碼器及其工作原理

    助于它用于步進(jìn)/伺服電機(jī)控制、導(dǎo)航菜單序列和增加/減少數(shù)字的值等等。在本篇文章中,我們將了解不同類型旋轉(zhuǎn)編碼器及其工作原理。我們還將它連接到PIC單片機(jī)PIC16F877A,并通過
    發(fā)表于 11-24 06:23

    旋轉(zhuǎn)編碼器,旋轉(zhuǎn)編碼器是什么意思

    旋轉(zhuǎn)編碼器,旋轉(zhuǎn)編碼器是什么意思 旋轉(zhuǎn)編碼器概要
    發(fā)表于 03-03 15:27 ?2399次閱讀

    旋轉(zhuǎn)編碼器測量_旋轉(zhuǎn)編碼器安裝方式

    本文主要介紹了旋轉(zhuǎn)編碼器測量及安裝方法。旋轉(zhuǎn)編碼器檢測直線位移方法具體如下:使用“彈性連軸”將旋轉(zhuǎn)
    發(fā)表于 08-06 11:40 ?4026次閱讀
    <b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>編碼器</b>測量_<b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>編碼器</b>安裝方式

    旋轉(zhuǎn)編碼器拆卸方法_旋轉(zhuǎn)編碼器型號說明

    本文首先介紹了旋轉(zhuǎn)編碼器拆卸方法,其次闡述了旋轉(zhuǎn)編碼器更換步驟,最后介紹了旋轉(zhuǎn)編碼器型號說明。
    發(fā)表于 08-06 11:48 ?1.8w次閱讀

    旋轉(zhuǎn)編碼器能直接換嗎_旋轉(zhuǎn)編碼器更換注意事項(xiàng)

    本文首先介紹了旋轉(zhuǎn)編碼器更換步驟,其次介紹了旋轉(zhuǎn)編碼器更換注意事項(xiàng),最后介紹了旋轉(zhuǎn)編碼器替換原則
    發(fā)表于 08-06 14:18 ?9819次閱讀

    旋轉(zhuǎn)編碼器是什么?淺讀旋轉(zhuǎn)編碼器工作原理與特點(diǎn)及應(yīng)用

    旋轉(zhuǎn)編碼器是什么?淺讀旋轉(zhuǎn)編碼器工作原理與特點(diǎn)及應(yīng)用:旋轉(zhuǎn)
    的頭像 發(fā)表于 05-29 09:21 ?3571次閱讀
    <b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>編碼器</b>是什么?淺讀<b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>編碼器</b><b class='flag-5'>工作</b>原理與特點(diǎn)及應(yīng)用

    旋轉(zhuǎn)編碼器能直接換嗎_旋轉(zhuǎn)編碼器更換注意事項(xiàng)

    旋轉(zhuǎn)編碼器更換步驟第一步,卸開電機(jī)后蓋,編碼器的后蓋。第二步,松開編碼器安裝螺絲。第三步,旋轉(zhuǎn)電機(jī)轉(zhuǎn)子軸,使
    的頭像 發(fā)表于 11-12 08:07 ?1764次閱讀
    <b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>編碼器</b>能直接換嗎_<b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>編碼器</b>更換注意事項(xiàng)

    旋轉(zhuǎn)編碼器的常見類型

    詳細(xì)介紹旋轉(zhuǎn)編碼器的常見類型,包括增量式編碼器和絕對式編碼器兩大類,并對它們的特點(diǎn)、工作原理、應(yīng)
    的頭像 發(fā)表于 05-29 15:59 ?1064次閱讀

    帶Arduino的旋轉(zhuǎn)編碼器設(shè)計 旋轉(zhuǎn)編碼器工作原理和特點(diǎn)

    旋轉(zhuǎn)編碼器(Rotary Encoder),也稱為軸編碼器,是一種將旋轉(zhuǎn)的機(jī)械位移量轉(zhuǎn)換為電氣信號的傳感。這些電氣信號經(jīng)過處理后,可以用于
    的頭像 發(fā)表于 07-04 17:17 ?3182次閱讀
    帶Arduino的<b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>編碼器</b>設(shè)計 <b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>編碼器</b>的<b class='flag-5'>工作</b>原理和特點(diǎn)

    編碼器常見的類型哪些?

    不同的分類標(biāo)準(zhǔn),可以以下幾種主要類型: 一、按工作原理分類 增量式編碼器 : 將位移轉(zhuǎn)換成周期性的電信號,再把這個電信號轉(zhuǎn)變成計數(shù)脈沖,用脈沖的個數(shù)表示位移的大小。 增量式
    的頭像 發(fā)表于 10-25 09:30 ?1012次閱讀