文章目录

  • 前言
  • 一、遥控器硬件外观
  • 二、电路图
    • 1.遥控端
    • 2.接收端
  • 三、代码
    • 1.遥控端
    • 2.接收端
  • 总结

前言

大概内容:自制船模遥控器的硬件组成和Arduino程序

这是我之前参加学校船模比赛制作的遥控器,在这里分享一下。水平不高,欢迎大家发表意见及建议。


一、遥控器硬件外观

遥控器:


接收器:

二、电路图

1.遥控端

2.接收端

三、代码

1.遥控端

#include <nRF24L01.h>
#include <RF24.h>RF24 radio(9, 10);
//Xval、Yval分别为两个摇杆上的数值,用来控制电机和舵机
struct Signal{int Xval;int Yval;};
Signal Data;
const byte add[6] = "00008";//设置通道,要与接收端一致
void setup() {pinMode(A7, INPUT);pinMode(A0, INPUT);radio.begin();radio.openWritingPipe(add);radio.stopListening();
}
//获取摇杆值并发送给接收器
void loop() {Data.Xval = analogRead(A0);Data.Yval = analogRead(A7);radio.write(&Data, sizeof(Signal));delay(5);
}

2.接收端

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>RF24 radio(9, 10);
Servo ESC;
Servo myS;
struct Signal{int Xval = 0;int Yval = 0;
};
Signal Data;
const byte add[6] = "00008";
unsigned long lastTime = 0;
unsigned long now = 0;
void setup() {ESC.attach(3, 1000 , 2000);myS.attach(4, 800, 2200);radio.begin();radio.openReadingPipe(0, add);radio.startListening();
}void loop() {recvData();now = millis();if(radio.available()){radio.read(&Data, sizeof(Signal));//获取遥控端数值//将获取到的数值进行映射在合理范围Data.Xval = map(Data.Xval, 0, 1023, 1000, 2000);Data.Yval = map(Data.Yval, 0, 1023, 800, 2200);ESC.writeMicroseconds(Data.Xval);myS.writeMicroseconds(Data.Yval);}//若长时间收不到数据则重新开启通道进行接收if(now – lastTime >1000){resetData();
}
}
void recvData(){while(radio.available()){lastTime = millis();  }
}
void resetData(){radio.begin();radio.openReadingPipe(0, add);radio.startListening();
}

总结

软硬件及电路图连接均如上所示。代码参考网站点此处
以上就是本文全部内容了,感谢大家阅读!

Arduino+NRF24L01制作遥控器相关推荐

  1. Arduino+nRF24L01接收端(二)

    Arduino nano+nRF24L01接收端(二) 本示例基于Arduino框架下开发. 相关篇<Arduino+nRF24L01发射端(二)> 采用arduino nano 作为nr ...

  2. arduino uno模拟遥控器控制无刷电机

    原理:arduino模拟遥控器 以无人机的无刷电机为例,遥控器与无刷电机进行校准: 1.遥控器将油门打到最大 2.接收机油门输出端口的pwm输出最大,(一般在2000左右) 3.pwm输出到电调 4. ...

  3. Arduino+MAX4080S制作小量程电流表

    Arduino+MAX4080S制作小量程电流表 MAX4080S MAX4080S简介 具体参数 实验说明 实验 接线 代码 实验结果 原文链接:https://www.yourcee.com/ne ...

  4. ESP8266-12F NodeMCU、MG90S舵机、Arduino IDE——制作家庭自用远程开关(手机遥控-仅关灯)

    制作家庭自用远程开关 一.效果演示 二.接线 三.代码 四.一些记录 1.ESP8266-12F NodeMCU 2.MG90S舵机 3.开发板供电 4.舵机单独供电 5.Arduino IDE 6. ...

  5. Arduino+nRF24L01发射端(二)

    Arduino+nRF24L01发射端(二)

  6. 基于Arduino的红外遥控器控制MP3播放

    基于Arduino的红外遥控器控制MP3播放(MP3音乐模块.红外接收模块.红外遥控器) ✨通过红外遥控器来控制音乐播放

  7. 如何使用Arduino UNO制作指纹扫描仪

    使用FPM10A指纹模块.Arduino UNO和Arduino IDE制作一个指纹扫描仪. 虽然您可以使用密码和密钥访问安全系统,但这两个方法都很不方便,并且容易忘记.在本篇文章中,我们将主要学习如 ...

  8. stm32f103c8t6最小系统板+nrf24l01制作简易船模

    前言: 大二兴趣使然参加了学校的船模设计比赛,也算是第一次正式比赛的经验,一番努力下来也算是有所收获,虽说现在船已经不在身边,但还是想凭着记忆把制作过程捋一遍,就当是记录学习过程吧(该文章仅供参考,相 ...

  9. Arduino获取商业遥控器(如天地飞等)PWM信号的例子

    如果我们做了一个小的创意作品,而它需要远距离的无线控制,比如遥控车.遥控航模.遥控船等,这时候我们必定会认真考虑如何实现无线控制这个问题.蓝牙.WiFi.ZigBee.NRF.HC-12等都可以,但是 ...

最新文章

  1. 关于开发过程中的空指针问题
  2. 用ftp、http搭建网络yum源
  3. LeetCode每日一题 844. 比较含退格的字符串
  4. 广播网关GPC为MDS多媒体调度再添虎翼
  5. 学计算机二级分数,2020年9月计算机二级考试成绩可以查了 多少分及格
  6. php对象存储hadoop存储,三个理由告诉你对象存储替换HDFS还不错
  7. 看不懂论文代码怎么办_学位论文中的公式排版(制表位+mathtype+域)
  8. Java高级语法笔记-字符集与中文编码
  9. Java使用Openimaj构建视觉词袋模型
  10. PyQt 5.4参考指南 ---- PyQt5和PyQt4之间的差异
  11. linux java占用199%,linux分区使用率过高又查询不到被哪些文件占用的问题
  12. 把word excel ppt 导入到右键快捷菜单中
  13. wow修改人物模型_《魔兽》3.13Bug发现:人物模型任意修改
  14. 重庆主城区首套房个人所得税退还攻略
  15. 百度浏览器,一款简单轻快绿色纯净的浏览器
  16. 使用fiddler代理,手机无法上网
  17. ImportError: cannot import name '_validate_lengths'
  18. 服务器日志显示意外关闭,服务器多次异常关闭,错误日志:计算机已经从检测错误后重新启动。。检测错误: - Microsoft Community...
  19. fastjson使用
  20. vSphere Client中虚拟机与客户机中的剪切板不能够拷贝、粘贴

热门文章

  1. CVPR2022-图像恢复重建Restormer论文解读
  2. 45个高频词的一词多义和固定搭配
  3. [软件工程]敏捷过程模型的特性研讨——源自newsmth上的讨论
  4. 软件测试基础学习收藏1
  5. slideup()和slideDown()方法的使用
  6. C/C++浮点数的存储方式 IEEE-754标准,以及实现一个ftoa函数将浮点数转换为字符串
  7. 《计算机网络》——文件传输协议FTP、简单邮件传送协议SMTP、邮局协议POP3、网际报文存取协议IMAP、万维网和HTTP协议、超文本传输协议HTTP
  8. Linux 驱动开发 三:字符设备驱动框架
  9. vue中v-for使用key
  10. matlab信号的能量谱代码,信号的频谱 频谱密度 功率谱密度 能量谱密度