色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

Arduino鍵盤怎樣控制伺服

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-06 11:28 ? 次閱讀

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

Arduino鍵盤怎樣控制伺服

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

引腳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’},

};

在這里,我們導(dǎo)入鍵盤和伺服庫來幫助進行一些輸入和輸出處理。 numkeyPresses變量跟蹤已輸入的條目數(shù)。當達到maxKeyPresses時,這將重置為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

這里我們使用一個名為resetAngleMultiplier的方法,我將使用馬上討論一下。我們的想法是,我們希望在數(shù)學(xué)上將輸入轉(zhuǎn)換為可用數(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ù)學(xué)

在循環(huán)中,我們檢查非數(shù)字輸入并重置numKeyPresses變量if檢測。進行轉(zhuǎn)換的部分是: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ù)到輸入結(jié)束。

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

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

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

責(zé)任編輯:wv

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

    關(guān)注

    4

    文章

    859

    瀏覽量

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

    關(guān)注

    16

    文章

    651

    瀏覽量

    41004
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6472

    瀏覽量

    187321
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    伺服控制系統(tǒng)是一種能對試驗裝置的機械運動按預(yù)定要求進行自動控制的操作系統(tǒng)。伺服系統(tǒng)的分類方法很多,常見的分類方法有以下三種:1、按被控量參數(shù)特性分類。2、按驅(qū)動元件的類型分類:
    的頭像 發(fā)表于 08-26 17:46 ?834次閱讀
    <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 漂亮的宏機械鍵盤

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

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

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

    伺服電機也是脈沖控制嗎為什么

    伺服電機是一種高精度、高響應(yīng)速度的電機,廣泛應(yīng)用于工業(yè)自動化、機器人、航空航天等領(lǐng)域。伺服電機的控制方式有很多種,其中脈沖控制是一種常見的控制
    的頭像 發(fā)表于 07-14 10:37 ?939次閱讀

    通過I2C PWM IC控制伺服,可以為伺服控制進行高優(yōu)先級中斷嗎?

    () 大約需要 100 毫秒才能完成請求。 我怎樣才能避免那里的事情。 我可以為伺服控制進行高優(yōu)先級中斷嗎? 使用 Arduino IDE。
    發(fā)表于 07-12 06:20

    伺服液壓機控制系統(tǒng)原理是什么

    伺服液壓機是一種利用伺服電機驅(qū)動液壓泵,實現(xiàn)精確控制壓力、速度和位置的液壓設(shè)備。它廣泛應(yīng)用于金屬成型、塑料成型、壓裝、校直、拉伸、彎曲、沖壓等領(lǐng)域。伺服液壓機
    的頭像 發(fā)表于 06-17 10:04 ?1325次閱讀

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

    ? 伺服控制系統(tǒng)是一種能對試驗裝置的機械運動按預(yù)定要求進行自動控制的操作系統(tǒng)。伺服系統(tǒng)的分類方法很多,常見的分類方法有以下三種: ? 1、按被控量參數(shù)特性分類。 ? 2、按驅(qū)動元件的類
    的頭像 發(fā)表于 06-17 09:00 ?953次閱讀

    伺服驅(qū)動器對伺服電機的控制要求

    伺服驅(qū)動器對伺服電機的控制要求是一個復(fù)雜而深入的話題。以下是關(guān)于伺服驅(qū)動器對伺服電機控制要求的概
    的頭像 發(fā)表于 06-14 15:24 ?826次閱讀

    mach3控制怎樣連接伺服

    在這篇文章中,我們將詳細介紹如何將Mach3控制卡與伺服電機連接。Mach3是一款廣泛使用的數(shù)控(CNC)軟件,它可以控制各種類型的機械設(shè)備,包括銑床、車床、激光切割機等。伺服電機是一
    的頭像 發(fā)表于 06-12 14:15 ?2120次閱讀

    求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫?

    在esp-idf中使用arduino作為組件后怎樣使用arduino的庫,例如我此時需要使用arduino的第三方庫blinker,怎樣使用
    發(fā)表于 06-12 07:21

    液壓伺服控制系統(tǒng)的控制要求

    液壓伺服控制系統(tǒng)是一種利用液壓傳動和伺服控制技術(shù)實現(xiàn)精確控制的系統(tǒng)。它廣泛應(yīng)用于工業(yè)、航空、船舶、冶金等領(lǐng)域。本文將詳細介紹液壓
    的頭像 發(fā)表于 06-05 15:59 ?899次閱讀

    伺服驅(qū)動器和伺服控制器的區(qū)別

    在工業(yè)自動化和精密控制領(lǐng)域中,伺服驅(qū)動器和伺服控制器是兩個至關(guān)重要的組件,它們各自在伺服系統(tǒng)中扮演著不同的角色。盡管兩者在功能和目的上有所重
    的頭像 發(fā)表于 06-05 15:24 ?2262次閱讀

    如何使用Arduino UNO板和電位器控制伺服電機

    在本Arduino伺服電機教程中,您將學(xué)習(xí)如何使用Arduino UNO板和電位器控制伺服電機。
    的頭像 發(fā)表于 02-11 10:11 ?2868次閱讀
    如何使用<b class='flag-5'>Arduino</b> UNO板和電位器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b>電機

    伺服脈沖控制方式原理及優(yōu)勢

    伺服脈沖控制方式通過高速脈沖信號對伺服電機進行精確控制,能夠?qū)崿F(xiàn)高精度的定位和速度調(diào)節(jié),提高生產(chǎn)效率和產(chǎn)品質(zhì)量。
    發(fā)表于 01-22 09:34 ?1679次閱讀
    主站蜘蛛池模板: 97视频免费在线观看| 亚洲人交性视频| 精品久久久久久无码人妻国产馆| www.av一区| 99热久久视频只有精品6| 中文字幕亚洲第一| 亚洲伊人精品综合在合线| 亚洲 日韩 在线 国产 精品| 宿舍BL 纯肉各种PLAY H| 色色激情网| 双性被疯狂灌满精NP| 双性大乳浪受噗呲噗呲h总| 兽皇VIDEO另类HD| 我们日本在线观看免费动漫下载| 日本色呦呦| 桃花在线观看播放| 午夜亚洲动漫精品AV网站| 无码欧美XXXXX在线观看裸| 乌克兰成人性色生活片| 无限好资源免费观看| 午夜免费体验30分| 亚洲 日韩 自拍 视频一区| 亚洲国产精品无码中文字幕| 亚洲 无码 在线 专区| 亚洲欧美自拍明星换脸| 一个人HD高清在线观看免费视频| 伊人久久大香线蕉无码麻豆| 中文字幕不卡在线高清| 99re在这里只有精品| 超碰v| 男男腐文污高干嗯啊快点1V1| 快播电影网站大全| 暖暖视频在线高清播放| 欧美日韩另类在线观看视频| 日韩精品久久久久久久电影| 色综合久久中文色婷婷| 羞羞漫画免费漫画页面在线看漫画秋蝉 | 快穿之H啪肉| 欧美日韩中文字幕综合图区| 日韩视频中文在线一区| 亚洲AV无码乱码国产麻豆P|