完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
如何使用Arduino UNO、操纵杆模块和NRF24L01模块控制伺服电机
本文转自:https://www.yiboard.com/thread-1095-1-1.html 基于Arduino和NRF24L01模块制作发射器和接收器,实现使用操纵杆控制伺服电机! 在本篇文章中,我们主要介绍如何使用NRF24L01和Arduino控制伺服电机。我们在发送端移动操纵杆,使用NRF24L01,将操纵杆移动的值发送到接收侧,然后在接收侧接收该值,使用此值移动伺服电机。 1. 必需的组件
在发送侧,我们有一个操纵杆模块、Arduino和NRF24L01,而在接收侧,我们有一个NRF24L01、Arduino和一个伺服电机。 当我们在水平方向上移动操纵杆时,操纵杆模块将向Arduino发送模拟值。我们已将NRF24L01模块设置为发送模式,并将操纵杆移动值发送到特定地址。 在接收侧,将NRF24L01模块设置为接收模式。我们在接收端给出了相同的地址,其他NRF24L01模块正在传输数据。因此,只要模块接收到数据,Arduino就会读取数据并根据它移动伺服电机。 3. NRF24L01引脚说明 该模块的功耗非常低。它在传输过程中消耗大约12mA的功率,甚至低于LED。 该模块工作在3.3V,因此不要将其直接连接到5V的Arduino,因为它可能会损坏。 NRF24L01模块的其他引脚具有5V容限,因此您可以将它们直接连接到Arduino。 SCK、MOSI和MISO引脚用于SPI通信,CSN和CE引脚用于设置待机或活动模式以及设置发送或命令模式。 4. 威廉希尔官方网站 原理图 连接有点冗长,因此我将分别介绍发送器和接收器的连接。 在发送器侧,NRF24L01与Arduino的连接如下:
5. 代码介绍 首先,包括NRF24L01和伺服电机的库 #include RF24 radio(7, 8); // CSN, CEconst byte address[6] = "00001";12在发送器的setup()函数中,我们设置了发送数据的地址。然后将功率放大范围设置为最小,因为模块彼此很接近。 radio.openWritingPipe(address);radio.setPALevel(RF24_PA_MIN);12在接收器侧,我们使用以下命令并设置模块以从该地址接收数据。 radio.openReadingPipe(0, address);1在发送器的loop()函数中,我们从操纵杆模块读取并在我们之前设置的地址发送值。 radio.write(&x_pos, sizeof(x_pos));1接收器侧的以下命令将从发送器获取数据,并且在将数据映射到0-180之后,我们将移动伺服电机。 radio.read(&x_pos, sizeof(x_pos));1发送器和接收器的完整代码如下所示: https://download.csdn.net/download/acktomas/11114570 主机代码: #include #include |
|
|
|
只有小组成员才能发言,加入小组>>
2443 浏览 0 评论
9135 浏览 4 评论
36820 浏览 19 评论
5036 浏览 0 评论
24798 浏览 34 评论
1545浏览 2评论
1766浏览 1评论
2213浏览 1评论
1571浏览 0评论
543浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 20:26 , Processed in 1.176808 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号