91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

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

Arduino鍵盤怎樣控制伺服

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-06 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:設(shè)置硬件

Arduino鍵盤怎樣控制伺服

設(shè)置很簡(jiǎn)單。我們將使用:

引腳4 - 11:鍵盤輸入

引腳3:伺服電機(jī)輸出

VCC(5V)

GND(接地)

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

步驟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’},

};

在這里,我們導(dǎo)入鍵盤和伺服庫(kù)來(lái)幫助進(jìn)行一些輸入和輸出處理。 numkeyPresses變量跟蹤已輸入的條目數(shù)。當(dāng)達(dá)到maxKeyPresses時(shí),這將重置為0.鍵盤映射設(shè)置為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

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

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ù)學(xué)

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

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

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

應(yīng)用數(shù)學(xué)

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

責(zé)任編輯:wv

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

    關(guān)注

    4

    文章

    866

    瀏覽量

    40660
  • 伺服
    +關(guān)注

    關(guān)注

    16

    文章

    669

    瀏覽量

    41804
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6497

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    電機(jī)控制器與伺服系統(tǒng)的關(guān)系

    在自動(dòng)化控制系統(tǒng)中,電機(jī)控制器和伺服系統(tǒng)是實(shí)現(xiàn)精確運(yùn)動(dòng)控制的關(guān)鍵組件。電機(jī)控制器負(fù)責(zé)接收控制信號(hào)
    的頭像 發(fā)表于 01-22 09:35 ?842次閱讀

    伺服驅(qū)動(dòng)器的控制方式分析

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

    其利天下技術(shù)·伺服電機(jī)編碼器的作用及工作原理·低壓伺服電機(jī)驅(qū)動(dòng)方案開(kāi)發(fā)

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

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

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

    伺服電機(jī)原理及控制應(yīng)用

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

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

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

    伺服驅(qū)動(dòng)器和伺服電機(jī)介紹

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

    步進(jìn)電機(jī)的伺服控制方法有哪些

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

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

    步進(jìn)電機(jī)伺服控制系統(tǒng)是一種精密的電機(jī)控制系統(tǒng),它通過(guò)精確控制電機(jī)的步進(jìn)角度來(lái)實(shí)現(xiàn)對(duì)機(jī)械運(yùn)動(dòng)的精確控制。這種系統(tǒng)廣泛應(yīng)用于自動(dòng)化設(shè)備、機(jī)器人、
    的頭像 發(fā)表于 09-04 09:46 ?1206次閱讀

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

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

    開(kāi)源項(xiàng)目!基于 Arduino DIY 漂亮的宏機(jī)械鍵盤

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

    PLSY指令怎樣控制伺服正反轉(zhuǎn)

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

    直流伺服電機(jī)的主要控制方式

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

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

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

    伺服電機(jī)也是脈沖控制嗎為什么

    伺服電機(jī)是一種高精度、高響應(yīng)速度的電機(jī),廣泛應(yīng)用于工業(yè)自動(dòng)化、機(jī)器人、航空航天等領(lǐng)域。伺服電機(jī)的控制方式有很多種,其中脈沖控制是一種常見(jiàn)的控制
    的頭像 發(fā)表于 07-14 10:37 ?1641次閱讀
    主站蜘蛛池模板: 成人欧美精品大91在线 | 日韩三级毛片 | 看黄免费在线 | 女生张开腿让男人桶 | 国产高清色视频免费看的网址 | bt天堂在线www中文在线 | 男人边吃奶边做视频免费网站 | 天天在线天天看成人免费视频 | 亚洲网站视频 | 欧美黑人性色黄在线视频 | 91激情在线 | 在线视频网址免费播放 | 美女视频网站色 | 草久久久久 | 特级毛片女人18毛片 | 五月天婷婷导航 | 日本免费不卡在线一区二区三区 | 久久亚洲精品国产精品婷婷 | 噜噜嘿 | 国产成人综合亚洲怡春院 | 国产网站免费看 | 久久精品隔壁老王影院 | 免费色片网站 | 欧美极品 | 黄色激情小说视频 | 成人免费看黄网站无遮挡 | 免费在线观看的网站 | 一级女性黄 色生活片 | 国产午夜a理论毛片在线影院 | 我要看一级大片 | 成人在线免费 | 日毛片 | 激情五月婷婷基地 | 999久久久免费精品国产牛牛 | 国产亚洲高清视频 | 日韩精品视频免费观看 | 国产高清免费在线 | 国产精品国产三级在线高清观看 | 亚洲视频一区二区三区 | 免费播放特黄特色毛片 | 婷婷五月天.com |