PWM控制舵机简介

舵机转动的方向不是由占空比决定的,而是由脉冲长度 t 决定的。有的舵机使用的PWM频率为 fPWM=50HZ,其对应于的PWM周期 T=20 ms。脉冲长度 t 和转动方向之间的关系是线性的,但也取决于电机和齿轮的配合。如下图:

树莓派通过软件PWM的方式控制舵机

目的:将一个小舵机直接连接到树莓派的5伏电源上,并使用GPIO数字输出端口采用软件PWM的方式来控制它。

警告:只能使用微型舵机(如:SG90),因为树莓派5 V供电的限制,大型号的舵机电流过大对控制板安全不利。

连接舵机的棕色线(或黑色线)至树莓派的 GND, 舵机红色线至树莓派的 5 V,舵机黄色线连接至树莓派的任意 GPIO 输出端口(本文使用pin #23)。此时舵机由树莓派的 5 V供电, GPIO的控制电压是 3.3 V。(树莓派引脚可参见:树莓派的外部I/O接口)当然我们也可以使用充电宝给舵机供电。


import RPi.GPIO as GPIO
import timeP_SERVO = 23    # GPIO 端口号,根据实际修改
fPWM = 50   # HZ
a = 10
b = 2def setup():global pwmGPIO.setmode(GPIO.BCM)  # GPIO引脚编号的两种方式之一,另一种是BCM。所用编号方式不同,pin也不同。GPIO.setup(P_SERVO, GPIO.OUT)   # 设置P_SERVO引脚为输出模式GPIO.setwarnings(False)   # 禁用警告。pwm = GPIO.PWM(P_SERVO, fPWM)    # 在P_SERVO脚上产生频率为FPWM的PWM信号。pwm.start(0)   # 在引脚上设置一个初始PWM信号。def setDirection(direction):duty = a/180 * direction + bpwm.ChangeDuttyCycle(duty)   # 改变占空比time.sleep(1)if __name__ == '__main__':setup()for direction in range(0, 181, 10):setDirection(direction)    # 通过输入不同的“占空比值”来观察舵机的位置变化direction = 0setDirection(0)GPIO.cleanup()    # 清理GPIO。

注意:代码中的a和b参数必须与您所使用的舵机类型相匹配。如下图,舵机的占空比:

若第一次使用,可能出现

RuntimeError: No access to /dev/mem.  Try running as root!

使用如下命令,将用户加入GPIO组别就好。

sudo apt install rpi.gpio-common

树莓派输出PWM波驱动舵机相关推荐

  1. 树莓派输出pwm波c语言,树莓派Ubuntu18.04使用pigpio库产生PWM波实现舵机控制

    树莓派Ubuntu18.04使用pigpio库产生PWM波实现舵机控制 树莓派Ubuntu18.04使用pigpio库产生PWM波实现舵机控制 一:pigpio库简介 pigpio是一个用于树莓派的库 ...

  2. 树莓派输出pwm波c语言,02树莓派4B—C语言编程——PWM

    01树莓派直接输出PWM波 -- 硬件PWM程序  (推荐使用) #include #include #include //必不可少 int main( void) { int pwm_gpio5 = ...

  3. STM32F103 PA8不能输出PWM波问题

    在调试STM32F103单片机输出PWM波时,单独测试PA8和PA11输出PWM波(也就是TIM1_CH1和TIM1_CH4),输出PWM波正常.然后用串口1输出数据时,发现一个问题,串口输出正常,但 ...

  4. STM32单片机:定时器TIM输出PWM波

    学习32单片机过程中使用的工具:MDK Keil5 + 正点原子精英版(STM32F103ZET6)+ STM32CubeMX + HAL开发 一.PWM的产生原理 关于PWM的产生原理网上有很多教程 ...

  5. PWM波控制舵机实验

    PWM波控制舵机实验 硬件连接 首先是舵机的引线,一般为三线控制(没有接触过不是三线的),红色为电源,棕色为地,橙黄色为信号.控制舵机的时候,需要不断的给PWM波才能使得舵机在某个角度有扭矩 控制原理 ...

  6. STM32CubeMX——LED定时闪烁和输出PWM波

    简介 通过学习STM32CubeMX软件,掌握配置各个部件的基本方法:了解外部中断,定时器中断,PWM波产生等功能的原理,编写程序代码,实现相应的功能. 程序预期结果: LED初始设置间隔2秒闪烁一次 ...

  7. STM32f103C8定时器输出PWM波信号

    利用stm32高级定时器输出PWM,模拟呼吸灯的效果带刹车功能.由于没有示波器查看输出的pwm波形图,所以本次实验使用普通直流电机模拟的. 本文章为学习笔记,其中有些地方解释的不是那么的好,即本笔记可 ...

  8. STM32—TIM3输出PWM信号驱动MG996R舵机(按键控制)

    文章目录 一.前言 二.MG996R舵机简介 三.通用定时器TIMx 四.TIM3输出PWM信号代码详解 上传代码 一.前言 利用STM32的TIM3的通道1输出PWM信号,驱动MG996R舵机,按键 ...

  9. 树莓派c语言输出pwm波,树莓派硬件PWM输出程序

    一:实验现象 对于树莓派硬件PWM只有1号引脚(wiringPi),单独测试该引脚时,可以输出不同占空比控制led灯成呼吸灯的效果 二:程序步骤 1,初始化wiringPi的库函数; 2,设置对应的P ...

  10. stm32f4 输出pwm波_stm32的pwm输出代码及注释

    stm32是非常常用的单片机.脉冲宽度调制(PWM),是英文"Pulse WidthModulation"的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非 ...

最新文章

  1. 深度学习之输入通道个数、卷积核通道个数,卷积核个数、输出通道个数的关系
  2. 杨兴平离职完全是意料之中
  3. 【代码段】UIView 部分圆角
  4. python实现轨迹回放供应_运动轨迹回放 百度地图api示例源码
  5. sicily 1021. Couples 栈
  6. ifconfig命令找不到_02. Linux命令之查看网络连接
  7. 各种云计算平台和云计算管理平台介绍
  8. 二叉树的三种遍历(递归,栈)
  9. Github:视觉问答最新资源汇总
  10. Linux 端口侦听不到,在linux上,如何在不尝试连接的情况下检查端口是否处于侦听状态...
  11. java xssfworkbook_java - poi(XSSFWorkbook)读取excel(.xlsx)文件
  12. python小玩意——计算器
  13. Python —— 数据科学的手段 (第2版)配套代码
  14. 超低功耗MCU如何降低功耗
  15. detectron2 学习笔记
  16. 【翻译】配置RSVP-signaled LSP
  17. 大学计算机基础:信息处理技术实验教程,大学计算机基础实验教程
  18. 30分钟学会js新特性
  19. 谭民机器人_中国科学院大学
  20. MTK led闪烁改为呼吸灯模式

热门文章

  1. 昆仑通态MCGS与3台欧姆龙E5*C温控器通讯程序功能:通过昆仑通态触摸屏
  2. 泰坦尼克号预测结果分析报告
  3. 第八届全国噪声与振动控制工程学术会议大会报告
  4. 量子力学计算机原理,量子力学的基本原理
  5. 哪种软件测试硬盘速度,哪种工具最适合硬盘,SSD,U盘,存储卡速度性能测试?...
  6. 联想用u盘重装系统步骤_如何使用U盘重装系统?使用U盘重装系统步骤详解
  7. ARKit入门到精通 1.0 - 实战案例 AR打地鼠-史小川-专题视频课程
  8. VHDL半整数与奇数分频器设计实验
  9. win7 VS2010 Visual Assist X破解
  10. 好多游戏,大部分都有修改器,大家赶紧下!