OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5374|回复: 13

有关两块STM板通过NRF24L01控制舵机的问题

[复制链接]

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
发表于 2013-4-11 23:29:58 | 显示全部楼层 |阅读模式
<p>&nbsp;我是用块板做STM32的无线通信实验的,一块是发送板,一块是接收板<br />
我想用发送板的按键来控制接收板的舵机来进行转动,但是不行,接收得了信息,但是不能转动.....<br />
</p>
<p>发送端代码:</p>
<p>&nbsp;while(1)<br />
&nbsp;{<br />
&nbsp;&nbsp;key=KEY_Scan();&nbsp;&nbsp;&nbsp;&nbsp;//通过按键确定发送信息<br />
&nbsp;&nbsp;if(key==1)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;tmp_buf[1]=1;<br />
&nbsp;&nbsp;&nbsp;TX_Mode();<br />
&nbsp;&nbsp;&nbsp;NRF24L01_TxPacket(tmp_buf);<br />
&nbsp;&nbsp;}else if(key==2)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;tmp_buf[1]=2;<br />
&nbsp;&nbsp;&nbsp;TX_Mode();<br />
&nbsp;&nbsp;&nbsp;NRF24L01_TxPacket(tmp_buf);&nbsp;&nbsp;<br />
&nbsp;&nbsp;} &nbsp;<br />
&nbsp;}<br />
</p>
<p>接收端代码:<br />
&nbsp;while(1)<br />
{<br />
&nbsp;&nbsp;if(NRF24L01_RxPacket(tmp_buf)==0)&nbsp;&nbsp;&nbsp; //判断是否接收到信息<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;if(tmp_buf[1]==1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断信息内容<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;ENGINE_VAL=500;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=1000;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=1500;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=2000;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);<br />
&nbsp;&nbsp;&nbsp;}else if(tmp_buf[1]==2)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;LED0=!LED0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(1000);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}&nbsp;&nbsp;<br />
&nbsp;}<br />
灯是可以控制亮灭的,但是不能控制舵机的转动......<br />
请问为什么不能控制呢?是接收的间隔时间太小,舵机来不及转动就接收了下一个信息了?还是其他的问题?<br />
希望能有人帮我解答一下.....</p>
<p>谢谢!<br />
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
学习之路漫长而修远......
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-4-12 00:13:00 | 显示全部楼层
回复【楼主位】stm师弟:
<br>---------------------------------
<br>不用无线的时候,舵机驱动正常么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
 楼主| 发表于 2013-4-12 09:14:04 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>不用无线通信的时候是可以的转动的,但是一用无线通信,就不行了,但是舵机内部会一直响。
<br>有时候舵机不是在原位的话,只要一上电,它就会自动转回原位,然后就又不会动了,又是一直响。
<br>希望原子兄能帮帮我!谢谢!
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-4-12 10:25:39 | 显示全部楼层
回复【楼主位】stm师弟:
<br>---------------------------------
<br>怀疑是不是你配置无线模块的时候,把舵机控制的一些配置给改了。
<br>接收代码改一下:
<br>while(NRF24L01_RxPacket(tmp_buf)!=0)&nbsp;;//死循环等待正确接收一次数据
<br>&nbsp;while(1)//测试舵机
<br>{
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=500;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=1000;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=1500;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=2000;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);
<br>&nbsp;&nbsp;
<br>&nbsp;}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
 楼主| 发表于 2013-4-12 13:09:51 | 显示全部楼层
回复【4楼】正点原子:
<br>---------------------------------
<br>我用你的程序做了个试验:我先把电机弄到不是原位,然后两个板都按了复位键,当没按发送端的KEY键时,舵机没有响声;当我按下KEY时,舵机就自动转到原位了!!但是之后就又变成只会响,无论怎么按都没反应了......
<br>1.说明舵机可以受发送端的控制;
<br>2.接收端的程序出错了;
<br>谢谢原子兄了,我再改改程序,看看行不行!
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
 楼主| 发表于 2013-4-14 21:35:13 | 显示全部楼层
回复【4楼】正点原子:
<br>---------------------------------
<br>我用仿真测试了,他是可以进入
<br>&nbsp;while(1)//测试舵机&nbsp;
<br>{&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=500;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=1000;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=1500;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENGINE_VAL=2000;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_ms(280);&nbsp;
<br>&nbsp;&nbsp;&nbsp;
<br>&nbsp;}这个while里面的;但是进入一次有反应外(还要是不能完成舵机程序的反应),其他的进入都没反应了...
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-4-14 22:14:21 | 显示全部楼层
回复【6楼】stm师弟:
<br>---------------------------------
<br>这个是你测试舵机的代码了,没有用到其他东西。
<br>如果这里面都不正确的话,肯定就有问题啊
<br>检查是不是硬件初始化的时候有干扰。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
 楼主| 发表于 2013-4-14 22:41:37 | 显示全部楼层
谢谢原子兄,我搞定了!我把原来的舵机电源换了OK了!
<br>谢谢你的帮忙!我想问下:原来的电压和换了的电压是差不多的,难道舵机的控制与电流有很大关系?
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-4-14 23:02:14 | 显示全部楼层
回复【8楼】stm师弟:
<br>---------------------------------
<br>估计是你原来的电源带负载能力很弱。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
 楼主| 发表于 2013-4-14 23:27:17 | 显示全部楼层
回复【9楼】正点原子:
<br>---------------------------------
<br>哦,是这样啊,谢了原子兄!
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2015-7-20
在线时间
0 小时
发表于 2015-7-21 20:34:56 | 显示全部楼层
请问你用的原子哥代码改过来的吗,我用了这个代码改了一下想通过发送端按键点亮接收端的LED,但是没反应
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
 楼主| 发表于 2015-7-31 12:09:40 | 显示全部楼层
回复【11楼】李杰培:
<br>---------------------------------
<br>是的,我是用原子哥的修改过来的
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2015-7-20
在线时间
0 小时
发表于 2015-8-6 10:55:25 | 显示全部楼层
回复【12楼】stm师弟:
<br>---------------------------------
<br>可以将代码发给我看下吗
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
 楼主| 发表于 2015-8-6 15:09:00 | 显示全部楼层
回复【13楼】李杰培:
<br>---------------------------------
<br>好久没用了,都不知道放哪里了。现在都用蓝牙做通讯了
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-1 10:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表