chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

    文章

    871

    瀏覽量

    41829
  • 伺服
    +關注

    關注

    17

    文章

    691

    瀏覽量

    43255
  • Arduino
    +關注

    關注

    190

    文章

    6526

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    伺服基礎知識詳解

    伺服技術作為現(xiàn)代自動化領域的核心技術之一,已廣泛應用于工業(yè)控制、機器人、航空航天等高精度場景。其核心是通過閉環(huán)反饋實現(xiàn)精準的位置、速度或力矩控制,本文將系統(tǒng)解析伺服系統(tǒng)的構成、工作原理
    的頭像 發(fā)表于 12-30 07:39 ?905次閱讀
    <b class='flag-5'>伺服</b>基礎知識詳解

    伺服控制要 “集成 + 靈活”?TMC4671:硬件實現(xiàn) FOC,還支持前饋補償!

    TMC4671:硬件實現(xiàn)FOC伺服控制要“集成+靈活”?做伺服項目時,大家總希望芯片既能裝下核心功能,又能應對不同電機需求——而TMC4671這款完全集成的伺服
    的頭像 發(fā)表于 12-10 17:48 ?394次閱讀
    <b class='flag-5'>伺服</b><b class='flag-5'>控制</b>要 “集成 + 靈活”?TMC4671:硬件實現(xiàn) FOC,還支持前饋補償!

    伺服電機的控制方式簡述

    伺服電機作為自動化控制系統(tǒng)的核心執(zhí)行元件,其控制方式直接決定了設備的動態(tài)響應、定位精度和運行效率。隨著工業(yè)4.0和智能制造的發(fā)展,伺服控制
    的頭像 發(fā)表于 12-01 07:37 ?712次閱讀
    <b class='flag-5'>伺服</b>電機的<b class='flag-5'>控制</b>方式簡述

    伺服精準控制優(yōu)選!電子谷伺服連接線適配多品牌穩(wěn)定傳輸

    伺服控制系統(tǒng)的精準控制依賴電源、信號、剎車指令的穩(wěn)定傳輸,任何環(huán)節(jié)的傳輸波動都可能導致位置偏差、速度抖動或制動延遲。電子谷伺服連接線針對這一核心需求,以動力線、信號線、剎車線的協(xié)同設計
    的頭像 發(fā)表于 11-28 08:03 ?735次閱讀
    <b class='flag-5'>伺服</b>精準<b class='flag-5'>控制</b>優(yōu)選!電子谷<b class='flag-5'>伺服</b>連接線適配多品牌穩(wěn)定傳輸

    i.MX RT1180實現(xiàn)EtherCAT+伺服控制的終極實踐

    今天繼續(xù)為大家介紹i.MX RT1180實現(xiàn)EtherCAT+伺服控制的終極實踐:雙電機控制與Ethercat資源使用。
    的頭像 發(fā)表于 11-26 08:19 ?4135次閱讀
    i.MX RT1180實現(xiàn)EtherCAT+<b class='flag-5'>伺服</b><b class='flag-5'>控制</b>的終極實踐

    伺服電機控制系統(tǒng)的高寬帶電流環(huán)參數(shù)設計

    上回我們介紹了EtherCAT是如何利用SSC產生的sync信號,與電機控制系統(tǒng)完成同步的,如此我們即可保證整個控制系統(tǒng)的同步性能伺服控制。在此基礎上,
    的頭像 發(fā)表于 11-17 09:53 ?7547次閱讀
    <b class='flag-5'>伺服</b>電機<b class='flag-5'>控制</b>系統(tǒng)的高寬帶電流環(huán)參數(shù)設計

    伺服電機和步進電機的核心區(qū)別

    大家在運動控制的時候是用伺服電機的還是用步進電機做定位控制了?為什么有時候用伺服電機,有時候又步進電機?這是什么原因呢?本期我們就一起來探討一下步進電機和
    的頭像 發(fā)表于 10-15 14:32 ?1724次閱讀
    <b class='flag-5'>伺服</b>電機和步進電機的核心區(qū)別

    舵機與伺服電機的區(qū)別是什么?

    舵機與伺服電機都屬于 可精確控制的驅動裝置 ,但二者在定義范圍、結構組成、控制方式和應用場景上存在顯著差異,并非完全等同(舵機是伺服電機的 “特殊子集”)。以下從核心維度展開對比,幫助
    的頭像 發(fā)表于 10-13 10:21 ?1670次閱讀

    常用伺服參數(shù)的調整

    的基礎原理 伺服系統(tǒng)的參數(shù)調整本質是通過PID控制算法實現(xiàn)對機械系統(tǒng)的精確匹配。位置環(huán)、速度環(huán)、電流環(huán)的三環(huán)結構構成伺服控制的基礎框架,其中位置環(huán)作為最外環(huán)決定最終定位精度,速度環(huán)影響
    的頭像 發(fā)表于 10-13 07:41 ?1170次閱讀
    常用<b class='flag-5'>伺服</b>參數(shù)的調整

    TMC4671伺服控制器:全硬件集成+多類型電機適配

    前言在工業(yè)自動化控制、智能制造設備及新能源等領域對精密運動控制需求激增的背景下——2025年中國伺服系統(tǒng)市場規(guī)模將突破300億元,2030年更有望達到500億元,年復合增長率超10%——傳統(tǒng)的
    的頭像 發(fā)表于 10-09 16:12 ?870次閱讀
    TMC4671<b class='flag-5'>伺服</b><b class='flag-5'>控制</b>器:全硬件集成+多類型電機適配

    恩智浦MCU方案 單顆i.MX RT1180實現(xiàn)EtherCAT+伺服控制

    介紹基于單顆i.MX RT1180芯片的EtherCAT+伺服電機控制方案-伺服控制板硬件電路資源介紹,即為下圖中的Servo Motor Driver Board。
    的頭像 發(fā)表于 09-11 14:27 ?11.4w次閱讀
    恩智浦MCU方案 單顆i.MX RT1180實現(xiàn)EtherCAT+<b class='flag-5'>伺服</b><b class='flag-5'>控制</b>

    鍵盤常見問題的解決方法

    用戶點擊輸入框時,軟鍵盤默認彈出。但在特定場景下,需要對軟鍵盤的彈出和收起進行控制,如點擊空白區(qū)域收起軟鍵盤,進入頁面時輸入框主動獲焦。開發(fā)者還需根據(jù)軟
    的頭像 發(fā)表于 09-04 09:11 ?774次閱讀

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

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

    單片機和伺服有什么區(qū)別

    單片機和伺服的區(qū)別 單片機(Microcontroller)和伺服(Servo System)是兩種完全不同的技術概念,分別屬于 控制系統(tǒng)硬件 和 運動控制執(zhí)行系統(tǒng) 。以下是它們的詳細
    的頭像 發(fā)表于 05-26 09:18 ?822次閱讀

    EtherCAN轉CANopen網關控制伺服電機

    這篇文章主要介紹了使用EtherCAN轉CANopen網關控制伺服電機的步驟,包括配置軟件、創(chuàng)建新工程、搜索設備、添加主站設備、導入EDS文件、添加從站設備、設置參數(shù)、生成和下載。文章最后介紹了在線監(jiān)控和I/O功能映射的功能。
    的頭像 發(fā)表于 03-23 17:30 ?810次閱讀
    EtherCAN轉CANopen網關<b class='flag-5'>控制</b><b class='flag-5'>伺服</b>電機