精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

如何使用Arduino控制伺服電機

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-27 15:45 ? 次閱讀

概述

在本課程中,您將學習如何使用Arduino控制伺服電機

首先,您將使伺服器回掃并

如何使用Arduino控制伺服電機

零件

要構建本課中描述的項目,您將需要以下零件。

零件 數量

伺服電機 1

10kΩ可變電阻器(pot)

1

半尺寸面包板

1

Arduino Uno R3

1

跳線包

1

100 μF電容器

可選

“掃描”的面包板布局

對于本實驗,唯一與Arduino連接的是伺服電機。

伺服電機有三根引線。引線的顏色在伺服電機之間有所不同,但是紅色引線始終為5V,而GND將為黑色或棕色。另一個引線是控制引線,通常為橙色或黃色。該控制導線連接到數字引腳9。

伺服器方便地端接到一個插座中,我們可以在其中插入跳線,將其鏈接到面包板,然后再連接到Arduino。

如果伺服器不正常

您的伺服器可能行為異常,您可能會發現只有在將Arduino插入某些USB端口時才會發生這種情況。這是因為伺服器消耗了大量功率,尤其是在電動機啟動時,這種突然的高需求足以降低Arduino板上的電壓,從而使其自身復位。

如果這發生這種情況,那么通常可以通過在面包板上的GND和5V之間添加一個高值電容器(470uF或更大)來治愈它。

電容器充當電動機的蓄電庫,因此在啟動時,它會從電動機電容器和Arduino電源

電容器的較長引線為正極引線,應將其連接到5V。負極引線也經常標有“-”符號。

Arduino的‘Sweep’代碼

將以下草圖加載到Arduino上,您應該發現舵機立即開始首先向一個方向旋轉,然后又向另一個方向旋轉

該草圖基于標準的“掃描”草圖,您可以在Arduino示例中的“ servo”文件夾下找到該草圖。如果愿意,可以運行該草圖。

下載:文件

復制代碼

/*

Adafruit Arduino - Lesson 14. Sweep

*/

#include

int servoPin = 9;

Servo servo;

int angle = 0; // servo position in degrees

void setup()

{

servo.attach(servoPin);

}

void loop()

{

// scan from 0 to 180 degrees

for(angle = 0; angle 《 180; angle++)

{

servo.write(angle);

delay(15);

}

// now scan back from 180 to 0 degrees

for(angle = 180; angle 》 0; angle--)

{

servo.write(angle);

delay(15);

}

} /*

Adafruit Arduino - Lesson 14. Sweep

*/

#include

int servoPin = 9;

Servo servo;

int angle = 0; // servo position in degrees

void setup()

{

servo.attach(servoPin);

}

void loop()

{

// scan from 0 to 180 degrees

for(angle = 0; angle 《 180; angle++)

{

servo.write(angle);

delay(15);

}

// now scan back from 180 to 0 degrees

for(angle = 180; angle 》 0; angle--)

{

servo.write(angle);

delay(15);

}

}

伺服電機由一系列脈沖控制,為了使其易于使用,已創建了一個Arduino庫,以便您可以指示伺服電機轉至特定角度。

使用伺服的命令類似于內置的Arduino命令,但是由于您始終不會在項目中使用伺服,因此將它們保存在一個稱為庫的東西中。如果要使用servo庫中的命令,則需要通過以下命令告訴Arduino IDE您正在使用該庫:

下載:文件

復制代碼

#include #include

變量“ servoPin”來定義用于控制伺服器的引腳。

此行:

下載:文件

復制代碼

Servo servo; Servo servo;

定義了一個新的變量“ servo”輸入“伺服”。該庫為我們提供了一種新類型,例如表示伺服的“ int”或“ float”。您實際上可以通過這種方式最多定義八個伺服器,因此,如果我們有兩個伺服器,則可以編寫如下內容:

下載:文件

復制代碼

Servo servo1;

Servo servo2; Servo servo1;

Servo servo2;

在“設置”功能中,我們需要使用以下命令將“ servo”變量鏈接到將控制伺服器的引腳:

下載:file

復制代碼

servo.attach(servoPin); servo.attach(servoPin);

變量‘angle’用于包含當前伺服角度度。在“循環”功能中,我們使用兩個“ for”循環首先在一個方向上增加角度,然后在達到180度時又在另一個方向上增加角度。

命令:

下載:文件

復制代碼

servo.write(angle); servo.write(angle);

告訴伺服器將其位置更新為參數提供的角度。

“旋鈕”的面包板布局

下一步是添加一個鍋,以便我們可以通過旋轉旋鈕來控制伺服器的位置。

您只需要在Arduino上將鍋和導線從其滑塊添加到A0。

Arduino的“旋鈕”代碼

使伺服跟隨旋鈕位置的代碼比使其掃掠更簡單。

下載:文件

復制代碼

/*

Adafruit Arduino - Lesson 14. Knob

*/

#include

int potPin = 0;

int servoPin = 9;

Servo servo;

void setup()

{

servo.attach(servoPin);

}

void loop()

{

int reading = analogRead(potPin); // 0 to 1023

int angle = reading / 6; // 0 to 180-ish

servo.write(angle);

} /*

Adafruit Arduino - Lesson 14. Knob

*/

#include

int potPin = 0;

int servoPin = 9;

Servo servo;

void setup()

{

servo.attach(servoPin);

}

void loop()

{

int reading = analogRead(potPin); // 0 to 1023

int angle = reading / 6; // 0 to 180-ish

servo.write(angle);

}

現在有一個名為“ potPin”的第二個變量。

要設置伺服器的位置,我們從A0讀取一個模擬讀數。這樣我們得到的值在0到1023之間。由于伺服器只能旋轉180度,因此我們需要按比例縮小該值。將其除以6將得到一個介于0到170之間的角度,就可以了。

伺服電機

伺服電機的位置由脈沖長度設置。伺服器預計大約每20毫秒接收一次脈沖。如果該脈沖在1毫秒內為高電平,則伺服角度將為零;如果為1.5毫秒,則它將達到其中心位置;如果為2毫秒,則將處于180度。

伺服器的端點可能會有所不同許多伺服系統只能轉大約170度您還可以購買可以連續旋轉360度的“連續”伺服器。

在伺服器內部

下面的簡短視頻向您展示了伺服器內部正在發生的情況。

但是請注意,如果像這樣拆除伺服器,很有可能不會正確返回。

其他要做的事情

打開“掃描”草圖,然后嘗試將延遲從15毫秒減少到5毫秒。請注意伺服旋轉的速度。

嘗試修改“旋鈕”草圖,以使它不再從旋鈕的位置獲取伺服角度,而是從串行監視器獲取該角度,以便可以從計算機控制伺服。

》提示:要使草圖從串行監視器讀取度數,可以使用functionSerial.parseInt()。這將從串行監視器中讀取一個數字。

責任編輯:wv

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

    關注

    85

    文章

    2003

    瀏覽量

    57298
  • Arduino
    +關注

    關注

    187

    文章

    6453

    瀏覽量

    185915
收藏 人收藏

    評論

    相關推薦

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

    步進電機伺服控制系統是一種精密的電機控制系統,它通過精確控制
    的頭像 發表于 09-04 09:46 ?279次閱讀

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

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

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

    伺服電機是一種高精度、高響應速度的電機,廣泛應用于工業自動化、機器人、航空航天等領域。伺服電機控制
    的頭像 發表于 07-14 10:37 ?409次閱讀

    伺服驅動器對伺服電機控制要求

    伺服驅動器對伺服電機控制要求是一個復雜而深入的話題。以下是關于伺服驅動器對伺服
    的頭像 發表于 06-14 15:24 ?519次閱讀

    運動控制伺服電機如何控制

    運動控制伺服電機控制是現代工業自動化領域中一項重要的技術,它涉及到運動控制卡、伺服
    的頭像 發表于 06-12 14:13 ?550次閱讀

    plc控制伺服電機的指令有哪些

    PLC(可編程邏輯控制器)是一種廣泛應用于工業自動化領域的控制設備。伺服電機作為執行元件,可以通過PLC進行精確控制。以下是關于PLC
    的頭像 發表于 06-12 11:39 ?1275次閱讀

    伺服電機最簡單控制方法是什么

    伺服電機是一種高精度、高響應速度的電機,廣泛應用于工業自動化、機器人、航空航天等領域。伺服電機控制
    的頭像 發表于 06-05 15:49 ?424次閱讀

    伺服電機控制器怎么調參數

    伺服電機控制器參數調整是確保伺服系統正常運行和達到預期性能的關鍵步驟。本文將詳細介紹伺服電機
    的頭像 發表于 06-05 15:47 ?967次閱讀

    交流伺服電機工作原理 交流伺服電機控制方式

    交流伺服電機是一種通過閉環反饋控制系統實現精確位置、速度和轉矩控制電機。它在工業自動化、機械加工、機器人領域有著廣泛的應用。本文將詳細介紹
    的頭像 發表于 02-18 14:59 ?1716次閱讀

    arduino控制步進電機代碼

    Arduino是一種開放源代碼的電路板平臺,它可以用于控制各種不同的電子設備,包括步進電機。步進電機是一種電動機,可以通過下達特定的指令來控制
    的頭像 發表于 02-14 16:29 ?1607次閱讀

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

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

    伺服電機工作原理 伺服電機控制方式有哪幾種

    伺服電機是一種能夠根據控制指令準確運動的電機,其工作原理基于電機的轉矩及速度反饋。 伺服
    的頭像 發表于 01-31 10:49 ?2289次閱讀

    伺服電機最簡單控制方法

    伺服電機是一種特殊的電機,可以根據控制信號準確地控制角度、速度和位置。伺服
    的頭像 發表于 01-14 14:40 ?1543次閱讀

    伺服電機的三種控制方式 如何確定選擇伺服電機控制方式?

    伺服電機的三種控制方式 如何確定選擇伺服電機控制方式? 伺服
    的頭像 發表于 12-26 14:02 ?1412次閱讀

    總線伺服電機的回零控制方法

    通過總線控制伺服電機時,如何進行回零(尋參考點)控制?這里就CANOPEN伺服電機的回零
    的頭像 發表于 10-23 11:42 ?2815次閱讀
    總線<b class='flag-5'>伺服</b><b class='flag-5'>電機</b>的回零<b class='flag-5'>控制</b>方法