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

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

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

3天內不再提示

如何使用Arduino Servo庫驅動伺服電機

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

概述

如何使用Arduino Servo庫驅動伺服電機

使用Arduino Servo庫驅動伺服電機非常簡單,但是每個驅動器消耗一個寶貴的引腳-更不用說一些Arduino處理能力了。 Adafruit 16通道12位PWM/伺服驅動器僅需2個引腳即可在I2C上驅動多達16個伺服器。板載PWM控制器將同時驅動所有16個通道,而無需額外的Arduino處理開銷。此外,您最多可以鏈接多達62個,其中的多達62個可以使用相同的2個引腳進行控制。

Adafruit PWM/Servo驅動程序是需要大量伺服的任何項目的完美解決方案。

插腳

在兩側有兩組控制輸入引腳。 銷釘的兩側相同!使用任意一側,也可以通過將兩個并排連接起來輕松地進行鏈接

電源引腳

GND -這是電源和信號接地引腳,必須連接

VCC -這是邏輯電源引腳,請將其連接到要使用的邏輯電平對于PCA9685輸出,最大應為3-5V!它也用于SCL/SDA上的10K上拉,因此,除非您有自己的上拉,否則它也要與微控制器的邏輯電平相匹配!

V + -這是一個可選的電源引腳,它將為伺服器提供分布式電源。如果您不使用伺服系統,則可以斷開連接。芯片完全不使用它。您也可以從板頂部的2針端子排注入電源。如果使用伺服器,則應提供5-6VDC。如果必須的話,可以升高到12VDC,但是如果搞砸了,將VCC連接到V +,則可能會損壞電路板!

控制引腳

SCL -I2C時鐘引腳,連接到您的微控制器I2C時鐘線。可以使用3V或5V邏輯,并且對 VCC

SDA -I2C數據引腳具有弱上拉,連接到您的微控制器I2C數據線。可以使用3V或5V邏輯,并且對 VCC

OE 具有弱上拉-輸出使能。可用于快速禁用所有輸出。當此引腳為低時,所有引腳均啟用 。當引腳為高時,輸出禁用。默認情況下拉低,因此它是可選的引腳!

輸出端口

有16個輸出端口。每個端口都有3個引腳:V +,GND和PWM輸出。每個PWM都完全獨立地運行,但它們必須具有相同的PWM頻率。也就是說,對于LED,您可能需要1.0 KHz,但伺服器需要60 Hz-因此,您不能將一半用于1.0 KHz的LED和一半用于60 Hz的LED。

它們已設置為用于伺服器,但您可以使用它們用于LED!每個引腳的最大電流為25mA。

所有PWM引腳均串聯有220歐姆電阻,并且輸出邏輯與 VCC 相同,因此在使用LED時要記住這一點。

程序集

《表類=“ build-table”》

安裝伺服接頭連接器,將4個3x4針插頭連接器安裝在板邊緣上標記的位置。

焊接所有圖釘它們很多!

添加控制標頭其中包含一個男性標頭。您想在何處安裝標頭以及從哪方面看都取決于使用情況:

對于 面包板 使用,將接頭連接器安裝在電路板的底部。

要與 跳線 配合使用,將接頭連接器安裝在

要與我們的 6-pin電纜 配合使用,將插頭安裝在頂部

如果要鏈接多個驅動器板,則需要在兩端都安裝接頭。

安裝電源端子如果要鏈接多個驅動器板,則只需要在電源端子上第一個。

連接

Arduino PWM/伺服驅動器使用I2C,因此只需4條線即可連接到Arduino:

“經典” Arduino接線:

+ 5v-》 VCC(這僅是用于突圍的電源,不是伺服電源!)

GND-》 GND

模擬4-》 SDA

模擬5-》 SCL

大型Mega接線:

+ 5v-》 VCC(這僅是用于BREAKOUT的電源,而不是伺服電源!)

GND-》 GND

數字20-》 SDA

Digital 21-》 SCL

R3和更高版本的Arduino接線(Uno,Mega和Leonardo):

(這些開發板上的專用SDA和SCL引腳

+ 5v-》 VCC(這是僅用于BREAKOUT的電源,不是伺服電源!)

GND-》 GND

SDA-》 SDA

SCL-》 SCL

VCC引腳只是芯片本身的電源。如果要連接使用V +引腳的伺服或LED,則也必須連接V +引腳。即使VCC為3.3V(芯片為5V安全),V +引腳也可以高達6V。我們建議通過藍色接線端子連接電源,因為它受到極性保護。

Servos的電源

大多數伺服器設計為在5v或6v左右的電壓下運行。請記住,許多同時運動的伺服器(尤其是大功率的伺服器)將需要大量電流。甚至微型伺服器在移動時也會消耗幾百毫安。某些高轉矩伺服器在負載下每個都會消耗超過1A的電流。

好的電源選擇是:

5v 2A開關電源

5v 10A開關電源

4xAA電池座-6v,帶有堿性電池。帶有NiMH可充電電池的4.8v。

來自業余商店的4.8或6v可充電RC電池組。

使用Arduino 5v引腳為伺服器供電不是一個好主意。多余電流消耗會產生電氣噪聲和“掉電”現象,從而導致您的Arduino行為異常,復位和/或過熱。

在通孔電容器插槽中添加電容器我們在PCB上有一個用于焊接電解電容器的點。根據您的使用情況,您可能需要電容器,也可能不需要電容器。如果您使用大量的電源驅動伺服器,而伺服器在移動時會下降很多,那么 n * 100uF 其中 n 是伺服器的數量是一個不錯的選擇開始-例如 470uF 或更高(用于5個伺服器)。由于它非常依賴于伺服電流消耗,每個電動機上的轉矩以及所用的電源,因此沒有“一個神奇的電容器值”,我們可以建議這就是為什么我們在套件中不包括電容器的原因。

連接伺服器大多數伺服器帶有標準的3針凹型連接器,可直接插入伺服驅動器的插頭中。請確保插頭與底部排的接地線(通常為黑色或棕色)和信號線(通常為黃色或白色)在頂部對齊。

添加更多伺服系統一個板上最多可以連接16個伺服器。如果您需要控制16個以上的伺服器,則可以按下一頁所述鏈接其他板。

連鎖驅動程序

可以鏈接多個驅動程序(最多62個)以控制更多伺服器。在板的兩端都有插頭,接線非常簡單,就像將一根6針并行電纜從一塊板連接到另一塊板一樣。

尋址木板必須為鏈中的每個木板分配一個唯一的地址。這是通過板右上邊緣的地址跳線完成的。每塊板的I2C基址為0x40。使用地址跳線編程的二進制地址已添加到基本I2C地址中。

要編程地址偏移量,請使用一滴焊料橋接地址中每個二進制“ 1”的對應地址跳線。

委員會0:地址= 0x40偏移量=二進制00000(無需跳線)

板1:地址= 0x41偏移量=二進制00001(如上圖所示為橋A0)

板2:地址= 0x42偏移量=二進制00010(橋A1)

Board 3:地址= 0x43偏移=二進制00011(橋A0和A1)

Board 4:地址= 0x44偏移=二進制00100(橋A2)

等。

在您的草圖中,您需要為每個板聲明一個單獨的pobject。在每個對象上調用begin,并通過其附加的對象控制每個舵機。例如:

下載:文件

復制代碼

#include

#include

Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x40);

Adafruit_PWMServoDriver pwm2 = Adafruit_PWMServoDriver(0x41);

void setup() {

Serial.begin(9600);

Serial.println(“16 channel PWM test!”);

pwm1.begin();

pwm1.setPWMFreq(1600); // This is the maximum PWM frequency

pwm2.begin();

pwm2.setPWMFreq(1600); // This is the maximum PWM frequency

}

#include

#include

Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x40);

Adafruit_PWMServoDriver pwm2 = Adafruit_PWMServoDriver(0x41);

void setup() {

Serial.begin(9600);

Serial.println(“16 channel PWM test!”);

pwm1.begin();

pwm1.setPWMFreq(1600); // This is the maximum PWM frequency

pwm2.begin();

pwm2.setPWMFreq(1600); // This is the maximum PWM frequency

}

使用Adafruit庫

由于PWM伺服驅動器是通過I2C控制的,因此它非常易于在任何微控制器或微計算機上使用。在本演示中,我們將展示如何將其與Arduino IDE一起使用,但是C ++代碼可以輕松移植

安裝Adafruit PCA9685庫

要開始讀取傳感器數據,您將需要安裝Adafruit_PWMServo庫(我們的github存儲庫中的代碼)。可以從Arduino庫管理器中獲得它,因此我們建議使用它。

從IDE中打開庫管理器。..

,然后輸入 adafruit pwm 來查找庫。點擊安裝

我們還提供了有關Arduino庫安裝的出色教程,網址為:

http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

使用示例代碼進行測試:

首先確保關閉了Arduino IDE的所有副本。

接下來打開Arduino IDE,然后選擇文件-》示例-》 Adafruit_PWMServoDriver-》 Servo 。這將在IDE窗口中打開示例文件。

如果使用Breakout:

按上一頁所示連接驅動器板和伺服器。不要忘記為 Vin (3-5V邏輯電平)和 V + (5V伺服電源)提供電源。 檢查綠色LED點亮!

如果使用屏蔽:

將屏蔽插入Arduino。別忘了,您還必須為V +接線盒提供5V。 紅色和綠色的LED都必須點亮。

如果使用FeatherWing,請執行以下操作:

將FeatherWing插入羽毛中。別忘了,您還必須向V +接線端子提供5V。檢查綠色LED點亮!

連接伺服器

單個伺服器應插入 PWM#0 端口(第一個端口)。您應該會在大約180度的范圍內看到伺服器來回掃描。

校準Servos

Servo Pulsetiming在不同品牌和型號之間有所不同。由于它是模擬控制電路,因此同一品牌和型號的樣本之間通常會有一些差異。為了進行精確的位置控制,您需要在代碼中校準最小和最大脈沖寬度,以匹配伺服器的已知位置。

查找最小值:

使用示例代碼,編輯SERVOMIN,直到掃描的低點到達最小行程范圍。最好逐步解決此問題,并在達到行程的物理限制之前停止。

找到最大值:

再次使用示例代碼,編輯SERVOMAX直到掃描的最高點達到最大旅行范圍。同樣,最好逐漸解決此問題,并在達到行程的物理限制之前停止。

調整SERVOMIN和SERVOMAX時要小心。達到行進的物理極限會剝奪齒輪并永久損壞您的伺服器。

從度數轉換為脈沖長度 Arduino的“ map()”功能是在旋轉度與校準的SERVOMIN和SERVOMAXpulse長度之間進行轉換的簡便方法。假設一個典型的伺服器可以旋轉180度;將SERVOMIN校準到0度位置并將SERVOMAX校準到180度位置后,您可以使用以下代碼行將0到180度之間的任意角度轉換為相應的脈沖長度:

下載:文件

復制代碼

pulselength = map(degrees, 0, 180, SERVOMIN, SERVOMAX); pulselength = map(degrees, 0, 180, SERVOMIN, SERVOMAX);

庫參考

setPWMFreq(freq)

說明

此功能可用于調整PWM頻率,該頻率確定IC每秒產生多少個完整“脈沖”。換句話說,頻率決定了每個脈沖從開始到結束的持續時間有多長,同時考慮了脈沖的高低段。

頻率在PWM中很重要,因為將頻率設置得太高,很小的占空比可能會引起問題,因為信號的“上升時間”(從0V變為VCC所需的時間)可能比信號有效的時間更長,并且PWM輸出將變得平滑并可能甚至沒有達到VCC,可能會導致許多問題。

參數

頻率:一個數字,表示以Hz為單位的頻率,介于40和1600

示例

以下代碼將PWM頻率設置為1000Hz:

下載:文件

復制代碼

pwm.setPWMFreq(1000) pwm.setPWMFreq(1000)

setPWM(通道,打開,關閉) 說明

此功能on設置特定通道上PWM脈沖的高電平段的開始(開)和結束(關)。您可以在信號開啟和關閉之間的0..4095之間指定“刻度”值。通道指示應使用新值更新16個PWM輸出中的哪個。

參數

通道:應使用以下值更新的通道新值(0..15)

on :當信號應從低電平過渡到高電平時的滴答聲(介于0..4095之間)

關閉:信號從高電平轉換為低電平時的滴答聲(介于0..4095之間)

示例

下面的示例將使通道15開始變低,在脈沖中變高25%左右(在4096中打勾1024),在脈沖中變低至75%變低(壁虱3072),并在脈沖的最后25%保持低電平:/p》

下載:文件

復制代碼

pwm.setPWM(15, 1024, 3072) pwm.setPWM(15, 1024, 3072)

使用GPIO

還有一些用于完全打開或完全關閉插針的特殊設置

您可以將插針設置為完全打開或關閉n與

pwm.setPWM(pin, 4096, 0);

一起使用

pwm.setPWM(pin, 0, 4096);

可以將引腳設置為完全斷開》

Python和CircuitPython

將PCA9685傳感器與Python或CircuitPython以及Adafruit CircuitPython PCA9685模塊一起使用很容易。此模塊可讓您輕松編寫可通過此突破口控制伺服器和PWM的Python代碼。

借助CircuitPython的Adafruit_Blinka,您可以將此傳感器與任何CircuitPython微控制器板或具有GPIO和Python的計算機一起使用-for-Python兼容性庫。

CircuitPython微控制器接線

首先,將PCA9685與Arduino的前幾頁完全一樣地連接到板上。以下是使用I2C將Feather M0連接到傳感器的示例:

板3V 至傳感器VCC

板GND 到傳感器GND

板SCL 到傳感器SCL

板SDA 到傳感器SDA

Python計算機接線

由于有數十種Linux計算機/主板,您可以使用我們將顯示Raspberry Pi的接線。對于其他平臺,請訪問Linux上的CircuitPython指南,以了解您的平臺是否受支持。

以下是與I2C相連的Raspberry Pi:

Pi 3V3 至傳感器VCC

Pi GND 到傳感器GND

Pi SCL 到傳感器SCL

Pi SDA 到傳感器SDA

請勿嘗試使用RasPi或Linux主板的5V電源為伺服器供電,您很容易導致電源斷電并弄亂您的Pi!使用單獨的5v 2A或4A適配器

5V 2A(2000mA)開關電源-UL認證

產品ID:276

這是FCC/CE認證和UL認證的電源。需要大量5V電源嗎?該開關電源可提供高達2000mA的干凈穩壓5V輸出。 110或240輸入,因此可以在。..

$ 7.95

進貨

添加到購物車

5V 4A(4000mA)開關電源-UL認證

產品ID:1466

需要大量5V電源嗎?該開關電源可提供高達4A(4000mA)的干凈穩定的5V輸出。 110或240輸入,因此可在任何國家/地區使用。插頭為“ US 。..

$ 14.95

進貨

添加到購物車

CircuitPython安裝PCA9685和ServoKit庫

您需要在CircuitPython板上安裝Adafruit CircuitPython PCA9685庫。

首先請確保您正在為板運行最新版本的Adafruit CircuitPython。

p》

接下來,您需要安裝必要的庫以使用硬件-仔細按照以下步驟從Adafruit的CircuitPython庫捆綁包中查找和安裝這些庫。我們的CircuitPython入門指南上有一個很棒的頁面,介紹如何安裝庫捆綁包

對于諸如Trinket M0或Gemma M0之類的非表達板,您需要從捆綁包中手動安裝必要的庫:

adafruit_pca9685。 mpy

adafruit_bus_device

adafruit_register

adafruit_motor

adafruit_servokit

在繼續之前,請確保您董事會的lib文件夾或根文件系統具有 adafruit_pca9685.mpy,adafruit_register,adafruit_servokit,adafruit_motor 和 adafruit_bus_device 文件和文件夾 已復制。

下一步連接到開發板的串行REPL,這樣您就可以在CircuitPython上出現》》》 提示。

PCA9685和ServoKit庫的Python安裝

您需要安裝Adafruit_Blinka庫,該庫在Python中提供了CircuitPython支持。這可能還需要在您的平臺上啟用I2C并驗證您正在運行Python3。由于每個平臺都略有不同,并且Linux經常更改,請訪問Linux上的CircuitPython指南以準備好您的計算機!

完成后,從您的命令行運行以下命令:

sudo pip3 install adafruit-circuitpython-pca9685

sudo pip3 install adafruit-circuitpython-servokit

如果您的默認Python是版本3,則可能需要運行‘pip’。只要確保您不嘗試在Python 2.x上使用CircuitPython,就不支持它!

CircuitPython和Python用法

以下部分將展示如何從開發板的Python提示符/REPL中控制PCA9685。您將通過輸入以下代碼來學習如何交互式控制伺服器和調暗LED。

調光LED

運行以下代碼以導入必要的模塊并初始化與傳感器的I2C連接:

下載:文件

復制代碼

import board

import busio

import adafruit_pca9685

i2c = busio.I2C(board.SCL, board.SDA)

pca = adafruit_pca9685.PCA9685(i2c) import board

import busio

import adafruit_pca9685

i2c = busio.I2C(board.SCL, board.SDA)

pca = adafruit_pca9685.PCA9685(i2c)

每個頻道PCA9685可用于控制LED的亮度。 PCA9685生成高速PWM信號,該信號可以非常快速地打開和關閉LED。如果LED的開啟時間比關閉的時間長,則您的眼睛會顯得更亮。

首先按照以下步驟將LED連線到板上。請注意,您不需要使用電阻來限制流經LED的電流,因為PCA9685會將電流限制在10mA左右:

LED陰極/短支腳到 PCA9685通道GND/接地。

LED陽極/更長的腳到 PCA9685通道PWM 。

PCA9685類可控制PWM頻率和每個通道的占空比。請查閱PCA9685類文檔的形式詳細信息

對于調光LED,通常不需要使用快速的PWM信號頻率,并且可以通過設置頻率來將板的PWM頻率設置為60hz。屬性:

下載:文件

復制代碼

pca.frequency = 60 pca.frequency = 60

PCA9685支持16個獨立的通道,這些通道共享一個頻率,但可以具有獨立的占空比。這樣,您可以分別使16個LED變暗!

PCA9685對象具有 channels 屬性,該屬性為每個可以控制占空比的通道提供一個對象。要獲取單個頻道,請使用[]索引到頻道。

下載:文件

復制代碼

led_channel = pca.channels[0] led_channel = pca.channels[0]

現在通過控制LED的占空比來控制LED亮度。通道連接到LED。占空比值應為16位值,即0到0xffff,它表示信號打開與關閉的時間百分比。值0xffff是100%亮度,0是0%亮度,中間值是從0%到100%亮度。

例如,以0xffff的占空比完全打開LED:

下載:文件

復制代碼

led_channel.duty_cycle = 0xffff led_channel.duty_cycle = 0xffff

運行上面的命令后,您應該會看到LED以全亮度點亮!

現在,以的占空比關閉LED。 0:

下載:文件

復制代碼

led_channel.duty_cycle = 0 led_channel.duty_cycle = 0

嘗試介于1000之間的值:

下載:文件

復制代碼

led_channel.duty_cycle = 1000 led_channel.duty_cycle = 1000

您應該看到LED昏暗。嘗試嘗試其他占空比值以查看LED如何改變亮度!

例如,通過在循環中設置 duty_cycle ,使LED發光和熄滅:

下載:文件

復制代碼

# Increase brightness:

for i in range(0xffff):

led_channel.duty_cycle = i

# Decrease brightness:

for i in range(0xffff, 0, -1):

led_channel.duty_cycle = i # Increase brightness:

for i in range(0xffff):

led_channel.duty_cycle = i

# Decrease brightness:

for i in range(0xffff, 0, -1):

led_channel.duty_cycle = i

這些for循環需要一段時間,因為16位是很多數字。 CTRL-C 可停止循環運行并返回到REPL。

完整示例代碼

下載:Project Zip 或pca9685_simpletest.py | 在Github上查看

復制代碼

# This simple test outputs a 50% duty cycle PWM single on the 0th channel. Connect an LED and

# resistor in series to the pin to visualize duty cycle changes and its impact on brightness.

from board import SCL, SDA

import busio

# Import the PCA9685 module.

from adafruit_pca9685 import PCA9685

# Create the I2C bus interface.

i2c_bus = busio.I2C(SCL, SDA)

# Create a simple PCA9685 class instance.

pca = PCA9685(i2c_bus)

# Set the PWM frequency to 60hz.

pca.frequency = 60

# Set the PWM duty cycle for channel zero to 50%. duty_cycle is 16 bits to match other PWM objects

# but the PCA9685 will only actually give 12 bits of resolution.

pca.channels[0].duty_cycle = 0x7fff

# This simple test outputs a 50% duty cycle PWM single on the 0th channel. Connect an LED and

# resistor in series to the pin to visualize duty cycle changes and its impact on brightness.

from board import SCL, SDA

import busio

# Import the PCA9685 module.

from adafruit_pca9685 import PCA9685

# Create the I2C bus interface.

i2c_bus = busio.I2C(SCL, SDA)

# Create a simple PCA9685 class instance.

pca = PCA9685(i2c_bus)

# Set the PWM frequency to 60hz.

pca.frequency = 60

# Set the PWM duty cycle for channel zero to 50%. duty_cycle is 16 bits to match other PWM objects

# but the PCA9685 will only actually give 12 bits of resolution.

pca.channels[0].duty_cycle = 0x7fff

Contro 收費Servos

我們為稱為Adafruit CircuitPython ServoKit的各種PWM/Servo套件編寫了一個方便的CircuitPython庫,該庫可為您處理所有復雜的設置。您需要做的就是從庫中導入適當的類,然后可以使用該類的所有功能。我們將向您展示如何導入ServoKit類,并使用它來通過Adafruit 16通道分支控制伺服電動機。

如果您對伺服器不熟悉,請確保首先閱讀此伺服器簡介頁面和此深入的伺服器指南頁面。

首先將伺服器連接到PCA9685上的通道0。下面是連接到通道0的伺服器的示例:

伺服橙線到通道0上的突破PWM

伺服紅色導線到通道0上的分支V +

伺服棕色導線到通道0上的分支Gnd

檢查您的伺服數據表以驗證其連接方式!

請確保您也已打開或插入PCA9685板的外部5V電源!

首先,您需要導入并初始化ServoKit類。您必須指定板上可用的通道數。該分組討論有16個通道,因此在創建類對象時,您將指定16。

下載:文件

復制代碼

from adafruit_servokit import ServoKit

kit = ServoKit(channels=16) from adafruit_servokit import ServoKit

kit = ServoKit(channels=16)

現在您可以同時控制標準和連續旋轉伺服器。

標準伺服系統

要控制標準伺服系統,您需要指定與伺服系統連接的通道。然后可以通過將angle設置為度數來控制運動。

例如,將連接到通道0的伺服器移至180度:

下載:文件

復制代碼

pca.frequency = 50 pca.frequency = 50

現在,將PCA9685設置為用于伺服,就可以制作一個Servo對象,以便我們可以根據角度而不是 duty_cycle 。

默認情況下,Servo類將使用適用于大多數伺服器的致動范圍,最小脈沖寬度和最大脈沖寬度值。但是,請查閱Servo類文檔以獲取有關附加參數的更多詳細信息,以自定義為您的伺服器生成的信號。

下載:文件

復制代碼

import adafruit_motor.servo

servo = adafruit_motor.servo.Servo(servo_channel) import adafruit_motor.servo

servo = adafruit_motor.servo.Servo(servo_channel)

使用Servo,您可以將位置指定為角度。角度將始終在0和創建伺服時給定的驅動范圍之間。默認值為180度,但您的伺服器掃角可能較小-通過在上面的Servo類初始化程序中指定 actuation_angle 參數來更改總角度。

現在將角度設置為180,是范圍的一個極端:

下載:文件

復制代碼

kit.servo[0].angle = 180

kit.servo[0].angle = 180

要將伺服器恢復到0度:

下載:文件

復制代碼

kit.servo[0].angle = 0 kit.servo[0].angle = 0

對于標準伺服,將位置指定為角度。角度將始終在0和致動范圍之間。默認值為180度,但您的伺服器的掃描范圍可能較小。您可以通過設置actuation_range來更改總角度。

例如,將驅動范圍設置為160度:

下載:文件

復制代碼

servokit.servo[0].actuation_range = 160 servokit.servo[0].actuation_range = 160

通常單個伺服器識別的范圍與其他伺服器有所不同。如果伺服器未掃描整個預期范圍,請嘗試使用set_pulse_width_range(min_pulse, max_pulse)調整最小和最大脈沖寬度。

要將脈沖寬度范圍設置為最小值1000和最大值2000:

下載:文件

復制代碼

kit.servo[0].set_pulse_width_range(1000, 2000) kit.servo[0].set_pulse_width_range(1000, 2000)

使用PCA9685分支,Python和ServoKit來控制標準伺服器就是全部!

連續旋轉伺服器

要控制連續旋轉伺服,您可以必須指定伺服打開的通道。然后,您可以使用throttle來控制運動。

例如,要啟動連接到通道1的連續旋轉伺服以使油門完全前進:

下載:文件

復制代碼

kit.continuous_servo[1].throttle = 1 kit.continuous_servo[1].throttle = 1

要啟動連接到通道1的連續旋轉伺服以完全反向節流,請執行以下操作:

下載:文件

復制代碼

kit.continuous_servo[1].throttle = -1 kit.continuous_servo[1].throttle = -1

要設置半節流閥,請使用十進制:

下載:文件

復制代碼

kit.continuous_servo[1].throttle = 0.5 kit.continuous_servo[1].throttle = 0.5

然后,要停止連續旋轉伺服運動,請將throttle設置為0:

下載:文件

復制代碼

kit.continuous_servo[1].throttle = 0 kit.continuous_servo[1].throttle = 0

使用PCA9685 16通道Breakout,Python和ServoKit來控制連續旋轉伺服器就是全部了!

完整示例代碼

下載:Project Zip 或 servokit_simpletest.py | i》在Github上查看

復制代碼

“”“Simple test for a standard servo on channel 0 and a continuous rotation servo on channel 1.”“”

import time

from adafruit_servokit import ServoKit

# Set channels to the number of servo channels on your kit.

# 8 for FeatherWing, 16 for Shield/HAT/Bonnet.

kit = ServoKit(channels=8)

kit.servo[0].angle = 180

kit.continuous_servo[1].throttle = 1

time.sleep(1)

kit.continuous_servo[1].throttle = -1

time.sleep(1)

kit.servo[0].angle = 0

kit.continuous_servo[1].throttle = 0

“”“Simple test for a standard servo on channel 0 and a continuous rotation servo on channel 1.”“”

import time

from adafruit_servokit import ServoKit

# Set channels to the number of servo channels on your kit.

# 8 for FeatherWing, 16 for Shield/HAT/Bonnet.

kit = ServoKit(channels=8)

kit.servo[0].angle = 180

kit.continuous_servo[1].throttle = 1

time.sleep(1)

kit.continuous_servo[1].throttle = -1

time.sleep(1)

kit.servo[0].angle = 0

kit.continuous_servo[1].throttle = 0

下載

文件

PCA9685數據表

Arduino驅動程序庫

GitHub上的EagleCAD PCB文件

Adafruit Fritzing庫中的Fritzing對象

示意圖和構造打印

孔的直徑為2.5mm

常見問題解答

該板可以用于LED還是僅用于伺服器?

它可用于LED以及任何其他可使用PWM的設備!

當將此屏蔽罩與Adafruit LED矩陣結合使用時,我遇到了奇怪的問題/7Seg背包

PCA9865芯片的“全部通話”地址為0x70 。這是已配置地址的補充。將背包的地址設置為0x71或默認0x70以外的其他值,以消除問題。

在使用LED的情況下,我為何無法打開LED

如果要完全關閉LED,請使用 setPWM(針,4096,0); not setPWM(pin,4095,0);
責任編輯:wv

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

    關注

    85

    文章

    2030

    瀏覽量

    57723
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186681
收藏 人收藏

    評論

    相關推薦

    伺服驅動器與傳統電機的區別

    在現代工業自動化領域,電機作為動力輸出的核心部件,其性能直接影響到整個系統的穩定性和效率。隨著技術的發展,伺服驅動器逐漸取代了傳統的電機,成為了許多精密控制場合的首選。 1. 定義與工
    的頭像 發表于 11-04 15:22 ?222次閱讀

    伺服驅動器與步進電機的比較

    在現代工業自動化和精密控制領域,電機控制系統的選擇至關重要。伺服驅動器和步進電機是兩種常見的電機控制解決方案,它們各自具有獨特的優勢和局限性
    的頭像 發表于 11-04 15:02 ?293次閱讀

    伺服電機原理及控制應用

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

    伺服電機有什么用,伺服電機可以當普通電機用嗎

    一、伺服電機的作用與特點 伺服電機Servo motor),作為伺服系統中的關鍵組件,扮演著控
    的頭像 發表于 10-22 16:16 ?244次閱讀

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

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

    伺服驅動器和伺服電機的區別

    在現代工業自動化領域,伺服驅動器和伺服電機是兩個不可或缺的關鍵組件。它們各自扮演著不同的角色,共同構成了高精度的運動控制系統。本文將詳細探討伺服
    的頭像 發表于 06-06 18:00 ?2523次閱讀

    交流伺服電機與直流伺服電機的區別

    伺服電機作為現代工業自動化領域的核心驅動元件,廣泛應用于各種高精度、高性能的控制系統中。根據供電方式的不同,伺服電機主要可分為交流
    的頭像 發表于 06-05 17:26 ?1120次閱讀

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

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

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

    通常是直流無刷電機(BLDC)或交流伺服電機(AC servo motor),其輸出轉矩和轉速受到輸入電壓和電流的控制。 2.編碼器 伺服
    的頭像 發表于 01-31 10:49 ?2698次閱讀

    伺服電機驅動器設置參數教程

    伺服電機驅動器是現代工業控制領域中廣泛應用的一種設備。通過合理設置參數,可以實現電機的高精度定位、速度控制和力矩控制等功能,提高生產效率和產品質量。本文將詳細介紹
    的頭像 發表于 01-25 11:36 ?6869次閱讀

    揭秘多傳伺服電機驅動內部結構

    伺服驅動器采用有2個相同的伺服電機驅動板,電機編碼器信號通過接口反饋給控制芯片。
    發表于 01-22 14:45 ?1620次閱讀
    揭秘多傳<b class='flag-5'>伺服</b><b class='flag-5'>電機</b><b class='flag-5'>驅動</b>內部結構

    arduino如何驅動步進電機

    ,還能輕松驅動步進電機。本文將詳細介紹Arduino驅動步進電機的原理、方法和應用。 步進電機
    的頭像 發表于 01-14 16:37 ?3506次閱讀

    伺服電機伺服電機驅動器的類型和特點都有哪些呢?

    伺服電機伺服電機驅動器是緊密相關的兩個部分,它們通常作為一個完整的系統來實現精確的運動控制。
    的頭像 發表于 01-13 17:53 ?2154次閱讀

    伺服電機怎么連接驅動

    伺服電機是一種高性能、高精度的電機,廣泛應用于自動化控制系統中。要實現伺服電機的正常工作,就需要將其連接到適當的
    的頭像 發表于 12-20 09:47 ?5152次閱讀

    伺服電機選型要求及注意事項

    伺服電機(servo motor )是指在伺服系統中控制機械元件運轉的發動機,是一種補助馬達間接變速裝置。根據使用電源不同:分直流伺服
    的頭像 發表于 12-11 17:14 ?938次閱讀