用于遥测的NRF24双向无线电

dooooit_4000007
转载
发布时间: 2025-06-19 17:33:43 | 阅读数 0收藏数 0评论数 0
封面
在这个项目中,我们将制作两个独立的电路,分别用作接收器和发射器。最重要的组件是两块Arduino开发板(均可使用)和两个NRF24收发模块。在我的例子中,我用另一个Arduino开发板上的电位器控制一个舵机,并将两节锂电池的电压反馈给第一个Arduino开发板。

准备工作:

材料:

要开始我们的项目,我们需要了解所有需要的零件。以下是一些基本零件的清单。我大部分零件都是在我住的地方的一家电子产品商店买的,所以我无法推荐你在哪里购买。你可以试试亚马逊,或者其他任何网站。我不是说你应该在那里订购,只是建议而已。

  1. 两个 Arduino 板(任何人都可以使用。我有两个 arduino pro mini,我非常喜欢它们,因为它们有 13 个数字引脚和 8 个模拟引脚,而 Uno 只有 6 个模拟引脚)。
  2. 两个 NRF24 模块。有些模块配有外置天线,传输范围更广。请选择您最喜欢的型号。
  3. 母对母和母对公跳线。
  4. 原型板。
  5. Arduino 编程器(适用于 arduino pro mini,如果您有一个带 USB 连接的编程器,则不需要它)。
  6. Arduino IDE(软件)。从此处下载。
  7. 就我而言,我还使用了:
  8. 伺服电机。随便什么都可以。我喜欢SG90,一款专为Arduino设计的小型伺服电机。
  9. 电位器(10k 到 20k 欧姆之间)。可以在当地电子产品商店购买,或者你可以使用 Arduino 的摇杆。我有一些电位器的图片。我还从坏掉的无人机遥控控制器上弄了一个,给你一些参考。
  10. 4个等阻的普通电阻。我用的是祖父家的10k电阻。我把它们用作分压器。
  11. 用于将电阻器焊接在一起的小铜垫穿孔板(也是我从爷爷那里得到的)。
  12. 引脚。用于轻松连接 arduino 和电阻器的跳线。
  13. 2S 锂电池。我用它给我的一个 Arduino 板供电。电阻连接到电池上,读取电压。我打算把 Arduino 板连接到无人机的 2S 电池上,这样就不需要外部电源了,同时还能显示剩余电量。
  14. 烙铁和焊料。用于将电阻、穿孔板和引脚焊接在一起。


1

功能和代码

说完所有材料,我们开始说模块的功能。

  1. 工作原理:我们将一个Arduino模块称为“A”,另一个称为“B”。在我的例子中,在对两个模块进行编程后,我将它们连接到相应的无线电芯片,并将电位器添加到Arduino A模块,将电阻器和伺服器添加到Arduino B模块。模块A将数值发送到B模块并驱动伺服器。B模块读取2S电池的电压并将其发送回A模块。然后,整个循环再次开始。由于A模块接收的数值并非以机械方式表示,因此它连接到编程器,我们可以通过串口监视器(包含在Arduino IDE中)读取这些数值。
  2. 代码:我将 arduino A(与编程器和电位器连接)的草图称为 TwoWayRadio_1,将 arduino B 的草图称为 TwoWayRadio_2WithServo。

TwoWayRadio_1 和 TwoWayRadio_2WithServo 就在本段下方。为了方便理解,每个代码都附有解释。

INO
FX0W15NJOSXWZH4.ino
3.89KB
INO
F0Y0JJEJOSXWZGK.ino
5.91KB
2

焊接模块:分压器和电位器

此步骤是可选的,因为您可能只想使用专为Arduino设计的电位器操纵杆,并使用另一个模块代替分压器。不过,我已经为这些模块规划好了一切(包括代码)。

  1. 电位器:
  2. 这部分是焊接步骤中最简单的部分。你只需要将一些跳线焊接到电位器上即可。如果需要,你可以先将电位器焊接到穿孔板上,然后再焊接一些引脚。需要使用时,只需将跳线连接到Arduino,然后再连接到穿孔板上的引脚即可。不使用时,你可以将跳线拆下并用于其他项目。但是,如果你像我一样,可以将电位器直接焊接到跳线上。
  3. 如果您像我一样做,请获取三根母对母跳线,剪掉其中一个尖端并去除那里的绝缘层,在每根电线上留下一小段铜线。
  4. 加热烙铁,将修改后的跳线焊接到电位器的引脚上。如果可以,尽量使用不同的颜色,这样你就能记住哪个是VCC、哪个是GND,以及哪个是“信号”引脚(中间的那个)。将这些线连接到Arduino上相应的模拟引脚。本步骤的开头有一些图片,展示了最终的样子。这个电位器不是普通的电位器,它实际上是一个有五个引脚的小轮子。我花了一段时间才弄清楚哪个是哪个。试着更简单一点,使用“材料”步骤中所示的普通电位器。
  5. 如果要将其焊接到穿孔板上,请取出电位器和穿孔板,然后用烙铁将它们焊接在一起。
  6. 取出三个引脚,并将它们放置在最方便的位置。使用焊料将每个引脚与电位器引脚连接起来。请勿连接两个以上的引脚,否则将无法工作(会造成短路)。
  7. 获取一些母对母或母对公跳线并将它们从您的 arduino 连接到您的新电位器模块(记住哪个是哪个)。

2.分压器:

  1. 这部分稍微复杂一些。你需要四个电阻、五个引脚和一块穿孔板。我设计的代码是用于 2S 电池(两节电池),但你也可以通过稍微修改 Arduino 草图和硬件来将其用于 1S 电池。我附上了自己制作的两个分压器的图片,一个只有两个电阻(用于 1S 电池),另一个有四个电阻(你猜对了:用于 2S 电池)。
  2. 我们从 2s 开始吧。我没有制作过程的图片,因为我是在焊接完成后很久才开始写这个教程的。我附上了最终成品的图片,所以我会尽量讲解得更清楚一些。
  3. 首先准备好穿孔板和 5 个引脚。将它们焊接到一起,并注意不要让它们互相接触。
  4. 按照步骤开始时最后一张图(小电路图)所示焊接电阻。每个电阻和引脚之间的连接都用焊锡连接。尽量占用尽可能小的空间。
  5. 完成后,它应该看起来类似于我上面发布的完成的分压器的图片。
  6. 1s分压器基本相同,只是只用了三个引脚和两个电阻。我附上了完成后的图片。只需看一下2s分压器的示意图,想象一下它没有信号线1、中间线以及电阻r2和r3的样子,就搞定了!
  7. 因此,如果您想要一个 1s 分压器,它可能比使用 2s 分压器稍微复杂一些。
3

对Arduino进行编程

  1. 我们快完成了!
  2. 从 MATERIALS 步骤中链接的站点下载 Arduino IDE 软件后,从 FUNCTION AND CODE 步骤中下载草图。
  3. 接下来,在 Arduino IDE 中打开它们。
  4. 在任意一个选项卡中打开“工具”,然后点击“开发板”。从列表中选择你的开发板。点击“处理器”,然后点击“编程器”,根据你的开发板选择相应的选项。然后返回到草图。在网上查找你的开发板信息非常方便。只需查找名称并查看规格即可。
  5. 点击“草图”(顶部),然后点击“包含库”,再点击“管理库”。屏幕中央会打开一个小窗口。在搜索选项中输入“rf24”。下载所需的库。下载完成后,代码将上传到Arduino开发板。
  6. 为了确保万无一失,请点击左上方的“勾选”符号,确认没有任何错误。然后点击“勾选”符号旁边指向右侧的箭头继续上传。
  7. 如果你的开发板是 Pro Mini,我稍后会解释如何连接所有东西。如果不是,只需上传,并在完成两个 Arduino 的编程后,阅读下面的警告,然后进入下一步。
  8. 由于您有两块电路板,请记住每块电路板是用什么代码编程的,以避免将来出现任何问题。
  9. 所以,如果你有 Pro Mini,你需要一个编程器。编程器有两种:5 针和 6 针。我将重点介绍 5 针的,因为我有。连接方式如下(第一个针脚来自编程器,然后是 arduino):Gnd 接 Gnd;5v 接 Vcc(除非你的 Pro Mini 是 3.3v,在这种情况下是 3.3v 接 Vcc);Rxd 接 Txo;Txd 接 Rxi。我附上了开发板和编程器的图片,以防你需要查看。
  10. 将Arduino连接到编程器,并将编程器连接到电脑。打开IDE并点击上传按钮。查看屏幕左下角,您会看到一条消息“编译中”。当此消息变为“上传”时,按下Arduino Pro Mini上的重置按钮。片刻之后,程序将完成,并显示一条消息“上传完成”。上传完成后,您就完成了,可以进入下一步了。
4

连接一切

  1. 对两个Arduino编程完成后,我们需要连接所有东西才能使其工作。这里我们需要之前提到的所有东西:Arduino、NRF24模块、电缆、伺服器、编程器、分压器、电位器等等。
  2. 我们首先要连接与编程器配合使用的Arduino。步骤开头是NRF24连接的图片。IRQ引脚,据说连接到Arduino的8号引脚,根本没有连接。其余部分与两个Arduino的图片相同(您可以阅读图片中的说明了解更多信息)。
  3. 收音机的 Vcc 可能连接到 3.3V 或 5V。有时只能连接其中一个。如果不行,请先尝试 3.3V,然后再尝试 5V。对于 3.3V,请使用编程器的 3.3V 引脚。我不得不这样做,正如您在成品图片中看到的那样。
  4. 按照上一步所述将编程器连接到 arduino。
  5. 将电位器的“信号”线连接到模拟引脚 A0。
  6. 将电位器的“正极”连接至 Vcc(仅 5v,而不是 3.3),将“负极”连接至 Gnd。
  7. 传递给另一个 arduino。
  8. 根据图像,按照之前所述连接收音机。
  9. 将伺服器的信号线(橙黄白。检查伺服器的规格)连接到数字引脚 2,将其接地连接到 arduino 的 Gnd,将其正极连接到 arduino 的 Vcc。
  10. 将分压器的信号线 1 连接到引脚 A0,将信号线 2 连接到引脚 A1。
  11. 使用原型板连接分压器的负极电缆、arduino 的 gnd 和电池的 gnd(jst 插头上的黑色电缆)。
  12. 将分压器的“中间电缆”连接到电池的中间电缆,位于 jst 插头的红色和黑色电缆(白色)之间。
  13. 将分压器的“正极”线连接到电池正极和Arduino的Raw接口。不要直接连接到Vcc,因为这个引脚是专门用于5V的。Raw引脚可以使用任何高于3.3V或5V至12V的电压,并对其进行稳压。这样,Vcc引脚就变成了5V的输出。

快完成了!成品应该如上图所示。请重新检查所有连接,避免短路

5

启动你的项目

  1. 当你将电池连接到整个电路时,带舵机的Arduino终于通电了。所以,你只需要将另一个Arduino连接到USB端口就大功告成了!
  2. 移动电位器,你会看到伺服器也跟着转动。我的伺服器连接在一个单轴相机万向架上,这限制了角度,所以我必须调整参数。无论如何,你可以在代码中找到这些参数。
  3. 要查看电压,将编程器连接到电脑后,打开Arduino软件并按下“Ctrl+Shift+m​​”。此时会打开一个显示“串口监视器”的窗口。窗口底部有一个选项,显示“波特率(数字)”。点击它并选择“9600”。关闭监视器,然后按相同的键再次打开,您应该会看到大量的数值输入。由于输入速度太快,您可能无法看到这些数值,但如果您断开编程器的连接,输入就会停止,您可以读取它们。我正在尝试开发一种可以自动绘制电压图表或用LED显示电压的方法,但目前仍在进行中。
  4. 尽管您可能无法清楚地看到这些值,因为它们传递得太快了,但只要知道它最终起作用了,并且您可以修改它以满足您的需要!
6

关于如何使用此项目的更多想法

以下是一些你可以以此为基础进行构建的想法。如果你实现了其中一个,或者尝试了却做不到,请告诉我,这样我就能帮你了!

  1. 不要读取电压,而是修改代码以便它发回温度、压力、高度等。我发现 BMP180 芯片对此非常有用。
  2. 使用 HC-SR04 模块测量距离并将其发送回第一个 arduino。使用伺服器将传感器指向您想要的任何位置。
  3. 添加另一个伺服通道以将摄像机向上和向侧面移动;例如在遥控车上。
  4. 添加三个其他伺服通道(或更多!)并为四轴飞行器、飞机、直升机、遥控车等制作自己的遥控发射器和接收器!
  5. 把伺服器换成探照灯,然后把它装到你的无人机上!你还可以控制灯光的强度(可能需要一些晶体管和一些代码修改)
  6. 与其在电脑上读取电压,不如发挥创意,添加一个液晶模块,或者你可以制作一个6个LED灯板(两个绿灯、两个黄灯和两个红灯),当电池电量不足时,LED灯会逐个关闭;当电池电量低于你设定的电压时,LED灯会开始闪烁。我制作了这个小板,并在步骤开头贴了一张图片。

为了更清楚地说明,如果您要进行这些项目,请记住,您将需要修改代码,甚至可能修改一些连接。请务必记住,不要做任何愚蠢的事情,以免烧坏您的电路板。

如果您还有其他想法或需要帮助完成其中一个项目,请在问题部分发帖!

7

故障排除

说实话,到目前为止,我遇到的大多数问题都与草图部分有关,而你已经解决了这个问题。我会尽量多地告诉你一些问题,以便对你提供最大的帮助。

  1. 首先,如果您尝试上传草图但无法上传,请尝试以下操作:

确保您下载了必要的库(以及正确的库!)。

确保您选择了正确的主板、处理器和编程器。

确保 PC 和编程器以及编程器和 arduino 之间的连接良好。

如果您使用的是 pro mini,请在出现“正在上传”消息后尽快尝试按下重置按钮。

所有这些事情都在编程你的 ARDUINO 步骤中提到过。

  1. 其次,检查所有事物之间的所有联系:

如果你的Arduino无法启动,那显然是电压问题。检查一下线材是否连接正确,以及是否存在短路。

如果电源正常通电但不工作,请确保所有连接都正确,确保编程连接到伺服器和分压器的Arduino确实连接到了它们(换句话说,确保你没有混淆它们),然后尝试按下两个Arduino上的重置按钮,看看会发生什么。在极少数情况下,问题可能全部出在NRF24模块上。我发现我的一个Arduino只能工作在5伏电压下,另一个只能工作在3.3伏电压下。看看这是否能解决问题。我还遇到过这种情况:只有一个Arduino能与3.3伏的无线电模块配合使用,而另一个只能与5伏的无线电模块配合使用。很惊讶,不是吗?

  1. 第三,如果可以移动舵机但电压错误,请检查分压器的连接是否与步骤3中的示意图一致,以及与Arduino的连接是否正确。另一方面,如果电压正常但无法正确移动舵机,请检查电位器及其连接、舵机与数字引脚的连接、Vcc和Gnd的连接,以及舵机是否卡住、损坏或短路。尝试更换舵机。确保数字引脚与代码中指定的引脚一致。

好了,以上就是我想到的关于你们可能遇到的问题的全部内容。希望这些问题永远不要发生,祝项目顺利!

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载