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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取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變量跟蹤已輸入的條目數。當達到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的方法,我將使用馬上討論一下。我們的想法是,我們希望在數學上將輸入轉換為可用數字,而不是字符。這使我們做到了這一點。

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

}

數學

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

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

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

應用數學

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

責任編輯:wv

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

    關注

    4

    文章

    866

    瀏覽量

    40759
  • 伺服
    +關注

    關注

    16

    文章

    670

    瀏覽量

    41908
  • Arduino
    +關注

    關注

    190

    文章

    6499

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PLC與伺服控制有什么區別

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

    電機控制器與伺服系統的關系

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

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

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

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

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

    伺服控制系統的主回路的構成

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

    伺服電機原理及控制應用

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

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

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

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

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

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

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

    步進電機伺服控制系統的作用

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

    伺服控制系統的分類方式和常見伺服控制系統介紹

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

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

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

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

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

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

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

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

    在現代工業自動化領域,伺服電機扮演著精密控制設備中不可或缺的角色。其卓越的精度和響應速度是實現精密控制的關鍵因素。因此,正確的選型和精確的計算對于保障設備的性能和系統的穩定性具有決定性的影響。
    的頭像 發表于 08-02 08:37 ?1055次閱讀
    <b class='flag-5'>伺服</b>電機怎么選型和計算(<b class='flag-5'>伺服</b>電機電流環<b class='flag-5'>控制</b>原理)
    主站蜘蛛池模板: 精品国产乱码久久久久久乱码 | 领导边摸边吃奶边做爽在线观看 | 成人在线视频在线观看 | fryee性欧美18 19 | 亚洲日本一区二区三区在线不卡 | 久久re这里视频只精品首页 | 久久视频在线视频 | qvod12| AV色蜜桃一区二区三区 | 亚洲国产在线午夜视频无 | 久久精品国产96精品亚洲 | 免费韩国伦理2017最新 | 伧理片午夜伧理片 | 亚洲性夜夜色综合网站 | 亚洲免费视频观看 | 久久久精品久久久久久 | www伊人网| 古月娜下面好紧好爽 | 九九影院午夜理论片无码 | 校草让我脱了内裤给全班看 | 挺进老师的紧窄小肉六电影完整版 | 久久学生精品国产自在拍 | 亚州笫一色惰网站 | 精品欧美小视频在线观看 | 亚州性夜夜射在线观看 | 亚洲国产高清在线 | 亚洲视频精品在线观看 | 国产午夜免费不卡精品理论片 | 欧美兽交YOYO| 亚洲 欧美 国产 综合 播放 | 久久精品一本到99热 | 国产露脸150部国语对白 | 强奷漂亮女老板在线播放 | 我的漂亮朋友在线观看全集免费 | 午夜国产精品视频在线 | 美女被日出水 | 折磨比基尼美女挠肚子 | 一区二区三区高清视频 | 久久综合久久鬼色 | 国产成人国产在线观看入口 | 三级黄色高清视频 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品