概述
使用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
發布評論請先 登錄
相關推薦
評論