树莓派驱动舵机介绍_树莓派驱动舵机代码

舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度舵机为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
请看下形象描述吧:
舵机的工作电压和电流 每一款舵机都有自己的参数,如tr213舵机的工作电压是4.8-7.2v,tr205舵机的工作电压是4.8-6v,电压不能超过这个范围,否则会很容易烧坏舵机,在不清楚舵机工作电压范围的情况下,建议使用5v给舵机供电。
舵机的工作电流是根据舵机的实际情况而定的,如tr213舵机,在空载的时候电流几乎为0,而在正常负载的情况下,电流在0.5a左右,视实际情况而定。六足机器人需要18个tr213金属舵机,需要提高的电流大概在8a左右,如果电源功率不够会影响舵机的性能,最常见的现象是,当一个舵机负载的时候,其他舵机会出现混乱,无规律的乱摆。
舵机的接线如下图
市场上90%的舵机中间那根线都是正级。
基础知识介绍的差不多了,具体可以去百度看看舵机手册。
下面我们来说说在树莓派中,如何用wiringpi库去驱动舵机随心所欲的转。为什么要用wiringpi库呢,因为博主不怎么喜欢写python,博主喜欢写c/c++代码。废话不多说,开始。
第一:首先,我已经知道了舵机的pwm周期为20ms,然后是这样的
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
也就是说给它1.5ms的高电平,19.5ms的低电平转向0度位置。这里需要注意,是0度位置,不是舵机转0度,当然如果舵机怎么正好处于0度位置,当然也不转。这里可能就有人要问了,那啥位置算是0度位置呢?根据我对舵机的理解(180度的舵机),就是你向一个方向用手转动舵机,到一个你无法转动的地方,这个位置不是0度位置,就是180度位置。然后你用下面的代码运行一下就知道了。
我这里就这样来模仿pwm的。这个代码一运行,舵机就自动到了0度位置。
同理,想转到45度位置,90度位置,135度位置,180度位置的代码如下:
这里可能有人要说为啥不用delay()函数呢,因为delay函数精确到毫秒,当我传1.5给它的时候,和传1给它的时候,你会发现舵机都是转向45度位置,因为delay(int x),当1.5传过去的时候精度丢失了。(我一开始就犯了这个错误,尴尬啊)
到这里我想你应该已经知道怎么旋转45度,90度,等等了吧。然后你可能发现舵机旋转的太快,可能不受自己的控制了。这里我就要给你提供一种思路,怎么去解决这个问题。
当然,本人能力有限,写的难免有错误,希望指正。
下面我给一个很不错的链接,想深入研究的可以去看看(他用的是单片机)
http://www.njliaohua.com/lhd_5xtsq7jr1e0088t3wpu3_1.html
我是这样认为的。0.5ms转向0度,1ms转向45度,那个这其中是不是经历了0.5ms,而且转了45度,所以我就用0.5=500us,500us/45度。然后得出约为11.11us/度。
接下来我的代码是这样写的。
这样一来速度确实是降了下来,但是每次舵机都要先转向0度位置,然后才能转向我们输入的个角度位置。
树莓派3b+控制舵机、伺服电机的驱动代码 #include《stdio.h》
#include《wiringpi.h》
void init();
int main()
{
init();
int angle=0;
scanf(“%d”,&angle);
int i=0;
float x=0;
int k=180;//180次循环的时间够了
while(k--)
{
x=11.11*i;
digitalwrite(15,high);
delaymicroseconds(500+x);
digitalwrite(15,low);
delaymicroseconds(19500-x);
if(i==angle)
break;
i++;
}
return0;
}
void init()
{
wiringpisetup();
pinmode(15,output);
}

Cardtronic表示比特币等虚拟货币支付是民众对现金需求量减少的原因
Matlab数字数字图像处理函数汇总
区块链的运行原理是怎样的
橙色云:为中国制造业的发展,刻上了个性鲜明的橙色印记
RT-Thread加入教育部产学合作协同育人项目
树莓派驱动舵机介绍_树莓派驱动舵机代码
NIDays 2015全球图形化系统设计盛会中国站圆满落幕
mpu6050姿态解算
tcp0030a电流探棒的用途
芯华章宣布朱洪辰出任副总裁,强化技术解决方案的开发与部署
英伟达为VR开发者开发出VRWorks工具
先导式溢流阀和直动式溢流阀区别
锂电池充电控制的Flash MCU BD66FM5252介绍
基于引言DSP平台的USB接口设计
华为投资光刻胶企业 光刻胶单体材料全部自供
电荒持续凸显新能源投资价值
Modelithics和Qorvo大力扩展GaN RF仿真模型库
波音隐瞒MAX 737型飞机的问题遭到了股东的集体诉讼
电缆/电线的最大载流能力
送女朋友礼物排行榜,高颜值耳机分享!