电子说
概述
使用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
全部0条评论
快来发表一下你的评论吧 !