树莓派输出PWM波驱动舵机
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波驱动舵机相关推荐
- 树莓派输出pwm波c语言,树莓派Ubuntu18.04使用pigpio库产生PWM波实现舵机控制
树莓派Ubuntu18.04使用pigpio库产生PWM波实现舵机控制 树莓派Ubuntu18.04使用pigpio库产生PWM波实现舵机控制 一:pigpio库简介 pigpio是一个用于树莓派的库 ...
- 树莓派输出pwm波c语言,02树莓派4B—C语言编程——PWM
01树莓派直接输出PWM波 -- 硬件PWM程序 (推荐使用) #include #include #include //必不可少 int main( void) { int pwm_gpio5 = ...
- STM32F103 PA8不能输出PWM波问题
在调试STM32F103单片机输出PWM波时,单独测试PA8和PA11输出PWM波(也就是TIM1_CH1和TIM1_CH4),输出PWM波正常.然后用串口1输出数据时,发现一个问题,串口输出正常,但 ...
- STM32单片机:定时器TIM输出PWM波
学习32单片机过程中使用的工具:MDK Keil5 + 正点原子精英版(STM32F103ZET6)+ STM32CubeMX + HAL开发 一.PWM的产生原理 关于PWM的产生原理网上有很多教程 ...
- PWM波控制舵机实验
PWM波控制舵机实验 硬件连接 首先是舵机的引线,一般为三线控制(没有接触过不是三线的),红色为电源,棕色为地,橙黄色为信号.控制舵机的时候,需要不断的给PWM波才能使得舵机在某个角度有扭矩 控制原理 ...
- STM32CubeMX——LED定时闪烁和输出PWM波
简介 通过学习STM32CubeMX软件,掌握配置各个部件的基本方法:了解外部中断,定时器中断,PWM波产生等功能的原理,编写程序代码,实现相应的功能. 程序预期结果: LED初始设置间隔2秒闪烁一次 ...
- STM32f103C8定时器输出PWM波信号
利用stm32高级定时器输出PWM,模拟呼吸灯的效果带刹车功能.由于没有示波器查看输出的pwm波形图,所以本次实验使用普通直流电机模拟的. 本文章为学习笔记,其中有些地方解释的不是那么的好,即本笔记可 ...
- STM32—TIM3输出PWM信号驱动MG996R舵机(按键控制)
文章目录 一.前言 二.MG996R舵机简介 三.通用定时器TIMx 四.TIM3输出PWM信号代码详解 上传代码 一.前言 利用STM32的TIM3的通道1输出PWM信号,驱动MG996R舵机,按键 ...
- 树莓派c语言输出pwm波,树莓派硬件PWM输出程序
一:实验现象 对于树莓派硬件PWM只有1号引脚(wiringPi),单独测试该引脚时,可以输出不同占空比控制led灯成呼吸灯的效果 二:程序步骤 1,初始化wiringPi的库函数; 2,设置对应的P ...
- stm32f4 输出pwm波_stm32的pwm输出代码及注释
stm32是非常常用的单片机.脉冲宽度调制(PWM),是英文"Pulse WidthModulation"的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非 ...
最新文章
- 深度学习之输入通道个数、卷积核通道个数,卷积核个数、输出通道个数的关系
- 杨兴平离职完全是意料之中
- 【代码段】UIView 部分圆角
- python实现轨迹回放供应_运动轨迹回放 百度地图api示例源码
- sicily 1021. Couples 栈
- ifconfig命令找不到_02. Linux命令之查看网络连接
- 各种云计算平台和云计算管理平台介绍
- 二叉树的三种遍历(递归,栈)
- Github:视觉问答最新资源汇总
- Linux 端口侦听不到,在linux上,如何在不尝试连接的情况下检查端口是否处于侦听状态...
- java xssfworkbook_java - poi(XSSFWorkbook)读取excel(.xlsx)文件
- python小玩意——计算器
- Python —— 数据科学的手段 (第2版)配套代码
- 超低功耗MCU如何降低功耗
- detectron2 学习笔记
- 【翻译】配置RSVP-signaled LSP
- 大学计算机基础:信息处理技术实验教程,大学计算机基础实验教程
- 30分钟学会js新特性
- 谭民机器人_中国科学院大学
- MTK led闪烁改为呼吸灯模式
热门文章
- 昆仑通态MCGS与3台欧姆龙E5*C温控器通讯程序功能:通过昆仑通态触摸屏
- 泰坦尼克号预测结果分析报告
- 第八届全国噪声与振动控制工程学术会议大会报告
- 量子力学计算机原理,量子力学的基本原理
- 哪种软件测试硬盘速度,哪种工具最适合硬盘,SSD,U盘,存储卡速度性能测试?...
- 联想用u盘重装系统步骤_如何使用U盘重装系统?使用U盘重装系统步骤详解
- ARKit入门到精通 1.0 - 实战案例 AR打地鼠-史小川-专题视频课程
- VHDL半整数与奇数分频器设计实验
- win7 VS2010 Visual Assist X破解
- 好多游戏,大部分都有修改器,大家赶紧下!