使用RPI.GPIO

创建一个 PWM 实例:

启用 PWM:

更改频率:

更改占空比:

停止 PWM:

但当你同时使用多个舵机时,PWM输出就变得困难了。这时可以借助舵机控制板来进行多路PWM控制。

这是某宝常见的舵机控制板,这个板子也比较便宜,十几块钱一个。使用芯片PCA9685,I2C通信,只需要几根i2c线就可以控制16路pwm,周期和占空比都可控。

驱动板与树莓派连接

GND -> RPi GND(9脚)

SCL -> RPi SCL1(5脚)

SDA -> RPi SDA1(3脚)

VCC -> RPi 3.3V  (1脚)

V+    -> RPi 5V(或通过电源接线柱外接电源供电)

需要注意的是,vcc引脚仅为芯片供电,为舵机供电可以选择通过树莓派5v引脚为v+引脚供电或另接电源到驱动板的电源接线柱上。

树莓派开启I2C

树莓派默认关闭I2C,开启I2C步骤:

输入

sudo raspi-config

便可以看到配置界面,

找到第5项:Interfacing Options中有I2C等,点击进入,点击Yes即可

安装adafruit_python_pca9685

sudo pip install adafruit-pca9685

在GitHub上可以查看其例程。

adafruit_pca9685

引入adafruit_pca9685模块:

创建一个 PWM 实例:

设置频率:

更改占空比:

示例代码

# Simple demo of of the PCA9685 PWM servo/LED controller library.

# This will move channel 0 from min to max position repeatedly.

# Author: Tony DiCola

# License: Public Domain

from __future__ import division

import time

# Import the PCA9685 module.

import Adafruit_PCA9685

# Uncomment to enable debug output.

#import logging

#logging.basicConfig(level=logging.DEBUG)

# Initialise the PCA9685 using the default address (0x40).

pwm = Adafruit_PCA9685.PCA9685()

# Alternatively specify a different address and/or bus:

#pwm = Adafruit_PCA9685.PCA9685(address=0x41, busnum=2)

# Configure min and max servo pulse lengths

servo_min = 150  # Min pulse length out of 4096

servo_max = 600  # Max pulse length out of 4096

# Helper function to make setting a servo pulse width simpler.

def set_servo_pulse(channel, pulse):

pulse_length = 1000000    # 1,000,000 us per second

pulse_length //= 60       # 60 Hz

print('{0}us per period'.format(pulse_length))

pulse_length //= 4096     # 12 bits of resolution

print('{0}us per bit'.format(pulse_length))

pulse *= 1000

pulse //= pulse_length

pwm.set_pwm(channel, 0, pulse)

# Set frequency to 60hz, good for servos.

pwm.set_pwm_freq(60)

print('Moving servo on channel 0, press Ctrl-C to quit...')

while True:

# Move servo on channel O between extremes.

pwm.set_pwm(0, 0, servo_min)

time.sleep(1)

pwm.set_pwm(0, 0, servo_max)

time.sleep(1)

树莓派c语言pca9685,使用树莓派控制16路舵机驱动板(pca9685)相关推荐

  1. 树莓派python控制舵机_使用树莓派控制16路舵机驱动板(pca9685)

    使用树莓派控制16路舵机驱动板(pca9685) 在树莓派上,可以通过RPI.GPIO方便地输出PWM进行舵机控制. 使用RPI.GPIO 创建一个 PWM 实例: 1 p =GPIO.PWM(cha ...

  2. arduino 舵机接线图_arduino+16路舵机驱动板连接测试

    用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力.专门的舵机驱动板很好的解决了这个问题. 此舵机驱动板使用PCA9685芯片 ...

  3. arduino 舵机接线图_arduino+16路舵机驱动板连接测试(示例代码)

    用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力.专门的舵机驱动板很好的解决了这个问题. 此舵机驱动板使用PCA9685芯片 ...

  4. 300°舵机+16路舵机驱动板+arduino UNO机械臂测试代码

    自制机械臂,5自由度,舵机安装的时候需将其全部舵机矫正到中位值在来组装.全部使用300度舵机 204.8为1MS脉冲宽度  //此处根据不同的arduino板做不同的频率换算,常见pwmServoDr ...

  5. 树莓派控制16路PWM输出的PCA9685模块

    树莓派控制16路PWM输出的PCA9685模块 1.PCA9685 1.1简介 采用I2C通信,内置了PWM驱动器和一个时钟,不需要不断发送信号占用单片机资源 支持16路PWM输出,每路12位分辨率( ...

  6. 51单片机PCA9685控制16路舵机(代码可直接使用)

    51单片机PCA9685控制16路舵机 /**************************************************************************PCA96 ...

  7. 【雕爷学编程】Arduino动手做(161)---16路PWM舵机驱动板PCA9685

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  8. 立创梁山派GD32F450ZGT6--通过PCA9685控制16路舵机

    PCA9685芯片,每一路LED输出端均可自由调节PWM波的频率 (40~1000Hz) 和占空比 (0%~100%) .这款芯片主要通过输出不同占空比的PWM脉冲信号来控制舵机转动的角度.是16通道 ...

  9. STM32控制16路舵机控制板PCA9685

    介绍 PCA9685 是最新的快速模式 Plus(Fm+)系列中的一员. Fm+器件可以提供更高的频率 (高达 1MHz)和更频繁(densely populated) 的总线操作(高达 4000pF ...

最新文章

  1. 漫画:设计模式之 “工厂模式”
  2. DeepID2+:Deeply Learned Attributes for Crowded Scene Understanding
  3. 5加载stm32 keil_「keil」嵌入式STM32开发环境之Keil5的安装(附资源) - 金橙教程网
  4. 实现接口一种可靠的 DLL 接口实现方案
  5. fx2n4ad模块中文手册_三菱特殊模块FX2N-4AD-PT详细说明及编程应用
  6. 中间件系列「三」netty之NIO基础
  7. 机考可以作弊吗_法考主观题也全面机考?不慌,看这篇文章
  8. Code Names
  9. linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...
  10. JAVA中关于set()和get()方法的理解及使用
  11. Objective C运行时(runtime)技术总结,好强大的runtime
  12. 推荐一个看ELF文件的软件 010Editor
  13. 在MacOS Big Sur中使用Safari 翻译功能的方法
  14. (day 26 - 广度优先搜索 )剑指 Offer 32 - III. 从上到下打印二叉树 III
  15. systemctl 管理服务命令
  16. 精选数据分析师常见的面试问题2020
  17. 上市公司信用评级模型(因子分析法)
  18. 正睿(比赛--Day10)
  19. Unveiling causal interactions in complex systems(揭示复杂系统中的因果交互作用)
  20. 微信小程序云函数请求接口

热门文章

  1. deadbeef_DeaDBeeF软件下载-DeaDBeeF(音频播放器)下载1.8.0官方版-西西软件下载
  2. Mac系统Safari浏览器启动无图模式
  3. oracle 修改字段名称和备注,oracle 修改 字段名称
  4. MapReduce函数实现WordCount
  5. 鸿蒙手机录音,鸿蒙系统暗度陈仓?EMUI10.0率先发布,华为到底再打怎样的算盘...
  6. Python的学习笔记案例3--基础代谢率计算3.0
  7. 企业邮箱怎么修改密码?企业邮箱安全中心,企业邮箱账号密码安全
  8. 人工智能宇宙模拟器出现 帮助科学家能更了解未知的宇宙
  9. BIOS Rootkit
  10. 支付宝支付文档及主要路径