99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arduino鍵盤怎樣控制伺服

454398 ? 來源:網絡整理 ? 作者:佚名 ? 2019-11-06 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:設置硬件

Arduino鍵盤怎樣控制伺服

設置很簡單。我們將使用:

引腳4 - 11:鍵盤輸入

引腳3:伺服電機輸出

VCC(5V)

GND(接地)

鍵盤輸入垂直向下連接。將鍵盤上的每根電線從右到左連接到引腳4-11。伺服電機直接連接到5V,接地和引腳3.在我的伺服(Tower Pro SG90)上,紅線為5V,接地為棕色,輸出引腳為黃色。檢查伺服電機的文檔。

步驟2:代碼

讓我們看一下代碼:

#include

#include

// Set up keypad variables:

int numKeyPresses = 0; // Track number of key presses

int maxKeyPresses = 3; // Only allow 3 digits to be entered

int keyPresses[3] = { 0, 0, 0 }; // Initialize an empty array to hold input

const byte numRows= 4; // # of rows on the keypad

const byte numCols= 4; // # of columns on the keypad

// Set up servo variables:

int angle = 0; // Angle in degrees to position servo [0-180]

int angleMultiplier = 1; // Multiply by each digit, divide by 10 on each input

Servo servo; // Create the servo object

int servoPin = 3; // Set the servo pin

char keymap[numRows][numCols]= // Setup the keypad layout

{

{‘1’, ‘2’, ‘3’, ‘A’},

{‘4’, ‘5’, ‘6’, ‘B’},

{‘7’, ‘8’, ‘9’, ‘C’},

{‘*’, ‘0’, ‘#’, ‘D’},

};

在這里,我們導入鍵盤和伺服庫來幫助進行一些輸入和輸出處理。 numkeyPresses變量跟蹤已輸入的條目數(shù)。當達到maxKeyPresses時,這將重置為0.鍵盤映射設置為4x4矩陣,模仿物理鍵盤。

// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.

byte rowPins[numRows] = { 11, 10, 9, 8 };

// Connect keypad COL0, COL1 and COL2 to these Arduino pins.

byte colPins[numCols] = { 7, 6, 5, 4 };

// Create the Keypad

Keypad kpd = Keypad( makeKeymap( keymap ), rowPins, colPins, numRows, numCols );

void setup()

{

Serial.begin(9600); // Start up serial comms

resetAngleMultiplier(); // Start accepting numeric input

servo.attach( servoPin ); // Attaches the servo to the servo object

} // setup

這里我們使用一個名為resetAngleMultiplier的方法,我將使用馬上討論一下。我們的想法是,我們希望在數(shù)學上將輸入轉換為可用數(shù)字,而不是字符。這使我們做到了這一點。

void loop()

{

char key = kpd.getKey();

if( key ) // Check for a valid key

{

if( key 》= 0x41 && key 《= 0x44 || key == 0x23 || key == 0x2A )

{

resetInput();

Serial.println( “ERROR: Numeric input only!” );

} // ^ if invalid entry

else // Else, entry is valid:

{

angle += angleMultiplier * ( key - 0x30 );

angleMultiplier /= 10;

if( numKeyPresses == maxKeyPresses - 1 )

{

setServo( angle ); // Use the input to turn servo

resetInput();

}

else

{

numKeyPresses++;

}

Serial.println( (String) angle );

}

} // if( key )

} // loop

這里我們接受輸入并處理它。我們將討論如何處理它。

void setServo( int angle )

{

if( angle 》 180 )

angle = 180;

Serial.println( “Setting servo to ” + (String) angle + “ degrees.” );

servo.write( angle ); // Set the servo position

} // setServo

void resetAngleMultiplier()

{

angleMultiplier = 1;

/* We started out with a multiplier of 10^0 (or 1)。 For each

number we want to accept, we want to have a multiplier one

order of magnitude greater. So, for example, for 5 digits, the

multiplier starts out as 10 000. */

for( int i = 0; i 《 maxKeyPresses - 1; i++ )

angleMultiplier *= 10;

} // resetAngleMultiplier

void resetInput()

{

resetAngleMultiplier(); // Reset the numeric input

angle = 0; // Reset the angle

numKeyPresses = 0; // Reset number of key presses

}

數(shù)學

在循環(huán)中,我們檢查非數(shù)字輸入并重置numKeyPresses變量if檢測。進行轉換的部分是:angle + = angleMultiplier *(key - 0x30)。當我們獲得按鍵時,它將作為鍵映射2-diminsional數(shù)組中的字符返回。 key - 0x30以十六進制的形式減去30以獲得它的數(shù)字等價物。

然后,我們必須將它乘以angleMultiplier。角度乘數(shù)從100開始。因此,例如,如果第一個數(shù)字輸入為3,則添加到角度的數(shù)字將為300.然后將角度乘數(shù)除以10,以便下一次迭代,角度乘數(shù)將為10如果輸入2,則將其乘以10并相加,得到320.這將一直持續(xù)到輸入結束。

我寫這個是可擴展的,允許擴展maxKeyPresses。 C ++的最大整數(shù)值是2147483647,所以使用這個程序,理論上你可以輸入多達10位的輸入,只要實際的密鑰代碼加起來不超過這個數(shù)。您總是可以使用 long 來存儲輸入,但出于我們的目的,沒有必要。

應用數(shù)學

所以,現(xiàn)在我們我們(可能過于復雜)的計算,只需將其傳遞給伺服機構,將其定位到該特定角度。這里限制為180度的移動。如果數(shù)字輸入超過180,則重置為180度并傳遞給伺服。這可能有多個應用程序,無論您是想在家中實現(xiàn)鎖定系統(tǒng),安全攝像機定位器,還是您需要的任何應用程序。

責任編輯:wv

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

    關注

    4

    文章

    866

    瀏覽量

    40695
  • 伺服
    +關注

    關注

    16

    文章

    669

    瀏覽量

    41846
  • Arduino
    +關注

    關注

    190

    文章

    6498

    瀏覽量

    192185
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PLC與伺服控制有什么區(qū)別

    PLC與伺服控制控制對象、控制方式、硬件結構、應用場景、系統(tǒng)精度與靈活性等方面存在顯著區(qū)別,以下是具體分析: 控制對象 PLC:適用于邏輯
    的頭像 發(fā)表于 06-25 17:54 ?196次閱讀

    電機控制器與伺服系統(tǒng)的關系

    在自動化控制系統(tǒng)中,電機控制器和伺服系統(tǒng)是實現(xiàn)精確運動控制的關鍵組件。電機控制器負責接收控制信號
    的頭像 發(fā)表于 01-22 09:35 ?864次閱讀

    伺服驅動器的控制方式分析

    1. 引言 伺服驅動器作為連接電機與控制系統(tǒng)的橋梁,其性能直接影響到整個系統(tǒng)的響應速度、穩(wěn)定性和精度。隨著控制理論的發(fā)展和電子技術的革新,伺服驅動器的
    的頭像 發(fā)表于 11-04 15:30 ?1269次閱讀

    其利天下技術·伺服電機編碼器的作用及工作原理·低壓伺服電機驅動方案開發(fā)

    電機系統(tǒng)中起著至關重要的作用,是實現(xiàn)高效、穩(wěn)定和精確控制的核心組件。編碼器的作用是什么呢?它的工作原理又是怎樣的?其利天下·伺服電機驅動方案編碼器的作用位置反饋:
    的頭像 發(fā)表于 11-02 10:38 ?1019次閱讀
    其利天下技術·<b class='flag-5'>伺服</b>電機編碼器的作用及工作原理·低壓<b class='flag-5'>伺服</b>電機驅動方案開發(fā)

    伺服控制系統(tǒng)的主回路的構成

      伺服控制系統(tǒng)是一種高精度、高響應速度的自動化控制系統(tǒng),廣泛應用于工業(yè)自動化、機器人、航空航天等領域。伺服控制系統(tǒng)的核心是
    的頭像 發(fā)表于 10-23 15:52 ?768次閱讀

    伺服電機原理及控制應用

    伺服電機(Servo Motor)是一種高精度、高性能的電動機系統(tǒng),廣泛應用于需要精確控制位置、速度和加速度的場合。 一、伺服電機的工作原理 伺服電機是指在
    的頭像 發(fā)表于 10-22 16:58 ?2679次閱讀

    伺服電機的控制方式有哪些?舉例分析

    伺服電機是一種高精度的電機,廣泛應用于工業(yè)自動化、機器人、精密機械等領域。伺服電機的控制方式多種多樣,可以根據(jù)不同的應用場景和需求進行選擇。以下是一些常見的伺服電機
    的頭像 發(fā)表于 10-22 11:13 ?1417次閱讀

    伺服驅動器和伺服電機介紹

    在工業(yè)自動化和精密控制領域,伺服系統(tǒng)扮演著至關重要的角色。與傳統(tǒng)的變頻技術相比,伺服系統(tǒng)具備更精確的控制能力和更高的性能水平。 一、驅動器 伺服
    的頭像 發(fā)表于 10-04 11:00 ?1151次閱讀

    步進電機的伺服控制方法有哪些

    步進電機的伺服控制方法主要包括以下幾種: 1. 位置模式 定義 :在位置模式下,步進伺服電機根據(jù)輸入的位置指令,通過閉環(huán)控制系統(tǒng)精確控制電機
    的頭像 發(fā)表于 09-04 09:48 ?1170次閱讀

    步進電機伺服控制系統(tǒng)的作用

    步進電機伺服控制系統(tǒng)是一種精密的電機控制系統(tǒng),它通過精確控制電機的步進角度來實現(xiàn)對機械運動的精確控制。這種系統(tǒng)廣泛應用于自動化設備、機器人、
    的頭像 發(fā)表于 09-04 09:46 ?1224次閱讀

    伺服控制系統(tǒng)的分類方式和常見伺服控制系統(tǒng)介紹

    伺服控制系統(tǒng)是一種能對試驗裝置的機械運動按預定要求進行自動控制的操作系統(tǒng)。伺服系統(tǒng)的分類方法很多,常見的分類方法有以下三種:1、按被控量參數(shù)特性分類。2、按驅動元件的類型分類:
    的頭像 發(fā)表于 08-26 17:46 ?1391次閱讀
    <b class='flag-5'>伺服</b><b class='flag-5'>控制</b>系統(tǒng)的分類方式和常見<b class='flag-5'>伺服</b><b class='flag-5'>控制</b>系統(tǒng)介紹

    開源項目!基于 Arduino DIY 漂亮的宏機械鍵盤

    大大簡化你的工作流程。 舉個例子,你可以將宏鍵盤上的一個按鍵設置為 CTRL+C 快捷鍵的映射,這樣,在需要復制文本或文件時,只需一鍵即可輕松完成。當你按下這個按鍵時,內置的 Arduino 會立即
    發(fā)表于 08-19 17:02

    PLSY指令怎樣控制伺服正反轉

    PLSY指令(PLC中的脈沖輸出指令)通常用于控制伺服電機的正反轉和速度。 1. 伺服電機概述 伺服電機是一種高精度、高響應速度的電機,廣泛應用于自動化設備、機器人、數(shù)控機床等領域。
    的頭像 發(fā)表于 08-19 14:51 ?4050次閱讀

    直流伺服電機的主要控制方式

    直流伺服電機作為一種能夠精確控制位置、速度和加速度的電動機,在現(xiàn)代工業(yè)自動化、航空航天、醫(yī)療設備等領域發(fā)揮著重要作用。其控制技術是實現(xiàn)這些高精度控制功能的關鍵。以下是對直流
    的頭像 發(fā)表于 08-14 17:27 ?1581次閱讀

    伺服電機怎么選型和計算(伺服電機電流環(huán)控制原理)

    在現(xiàn)代工業(yè)自動化領域,伺服電機扮演著精密控制設備中不可或缺的角色。其卓越的精度和響應速度是實現(xiàn)精密控制的關鍵因素。因此,正確的選型和精確的計算對于保障設備的性能和系統(tǒng)的穩(wěn)定性具有決定性的影響。
    的頭像 發(fā)表于 08-02 08:37 ?987次閱讀
    <b class='flag-5'>伺服</b>電機怎么選型和計算(<b class='flag-5'>伺服</b>電機電流環(huán)<b class='flag-5'>控制</b>原理)