资讯详情

使用433MHz RF模块制作一艘简易的Arduino遥控小船

原文地址:https://www.yiboard.com/thread-1567-1-1.html

使用433MHz RF制作一个简单的模块Arduino遥控小船

https://www.yiboard.com/forum.php?mod=viewthread&tid=1567&fromuid=2110

本文将制作远程控制Arduino433 MHz RF控制无线模块。我们将制作自己的433MHz该船由自制遥控器控制,发射器和接收器模块。对于远程控制的设备或两个设备之间的通信,我们有很多选择,例如IR、蓝牙,互联网,RF等。与IR通信相比,无线射频通信具有一些优势,例如范围更广,并且不需要在发射器和接收器之间建立视线连接。同样,这些模块可以执行两种通信方式,即可以同时发送和接收。因此,让我们使用此433MHz RF模块,开始制造小船。

● 433MHz发射器和接收器

● Arduino开发板

● HT12E和HT12D

● 按钮-4个

● 电阻

● L293d电机驱动器

● 9V电池

● 7805调节器

● 直流电动机

● 叶片

● 1uf电容img [外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-PWuHQrsk-1620703376506)(C:/Users/Administrator/Pictures/typora/105815bpl5wlcp2jmmdedc.jpg)]这些类型的RF模块在制造商中非常流行。由于成本低,连接简单。这些模块最适合所有形式的短距离通信项目。这些模块是ASK(幅移键控)类型RF振幅移动键控制模块(ASK)它以载波幅度的变化表示数字数据。在ASK在系统中,二进制符号1通过在T秒比特持续时间内发送固定载波和固定频率来表示。若信号值为1,则发送载波信号;否则,发送信号值为0。这意味着发送逻辑"零"它们通常不消耗功率。这种低功耗使其在电池供电项目中非常有用。

这种模块很小,有三个引脚:VCC、地面和数据。还有一些带有额外天线引脚的模块。发射器模块的工作电压为3V-12V,该模块没有可调组件。该模块的主要优点之一是低电流消耗,几乎需要零电流来发送零位。

在上面的框图中,有四个按钮(控制按钮)来控制船的方向。分别是前进、后退、左右。通过按钮,我们获得了控制船只的逻辑,但不能直接连接到编码器,这是我们使用的Arduino的原因。你可能会想为什么在这里使用它Arduino,这只是因为我们需要同时下拉编码器的两个并行数据输入来实现向前和向后移动,而不是通过按钮。然后,编码器将到来的并行数据编码为串行输出。然后,我们可以借助RF发送器发送该串行数据。

在上述电路中,您可以看到所有四个按钮的一侧连接到Arduino(D6-D9)四个数字引脚,其他四个侧面都接地。当我们按下按钮时,相应的数字引脚变成逻辑低电平。 HT12E四个并行输入连接到编码器Arduino(D2-D5)另外四个数字引脚。因此,借助Arduino,我们可以确定编码器的输入。 编码器HT12E是12位编码器和并行输入-串行输出编码器。在12位中,位是地址位,可用于控制多个接收器。引脚A0-A7.地址输入引脚。在这篇文章中,我们只控制一个接收器,所以我们不需要更改它的地址,所以我接地了所有的地址引脚。如果要用发射器控制不同的接收器,可以在这里使用DIP开关。 AD8-AD11是控制位输入。控制这些输入HT12D解码器的D0-D3输出。我们需要连接振荡器进行通信,并在5V振荡器的频率应为3KHz。然后,对于5V,电阻值将为1.1MΩ。然后,我将HT12E输出连接到发射器模块。

我把每个组件焊接在一起PCB面包板上。请记住,我们正在开发一个射频项目,所以我们可能会遇到各种类型的干扰,所以请尽可能紧密地连接所有组件。此外,请尝试将所有东西焊接在焊盘上,而不是使用多余的电线。最后,将一根细电线连接到发射器模块,这将有助于增加总范围。

发射器需要一个漂亮的外壳。我选择了4mm MDF也可以选择胶合板、泡沫板或硬纸板,然后切两块,长度分别为10块cm和宽5cm。然后标记按钮的位置。我把方向按钮放在左边,把前后按钮放在右边。在纸的另一边,我将按钮连接到主发送电路。请记住,一个普通的按钮有四个引脚,每侧有两个引脚。连接引脚Arduino,将另一个引脚连接到地。 连接所有这些东西后,我把控制电路放在两个MDF用一些长螺栓拧紧板之间。 接收器也很小,有四个引脚:VCC、接地,中间的两个引脚是数据输出。该模块的工作电压为5v。

上上框图描述RF接收器电路的工作过程。首先,我们可以使用它RF接收器模块接收发送的信号。接收器的输出是串行数据。解码器将串行数据解码为我们的原始并行数据。在这部分,我们不需要任何微控制器,我们可以直接将输出连接到电机驱动器。

HT12D是12位解码器,是串行输入并行输出解码器。 HT12D输入引脚将连接到串行输出的接收器。12位有8位(A0-A7)是地址位而且HT12D只有在匹配其当前地址时才能解码输入。 D8-D11是输出位。我将所有地址引脚接地,以匹配发送器电路。该模块的数据是串行类型,解码器将串行数据解码为原始并行数据,然后通过D8-D11取出。33-56应匹配振荡频率k电阻连接到振荡器引脚。第17引脚上的LED只有在接收器连接到发送器后,才能有效地传输指示灯。接收器的电压输入也是6-12伏。 我用它来控制电机。L293D,选择该IC是因为减小了尺寸和重量,并且该IC两个电机最适合在两个方向上控制。 L293D下图显示了16个引脚。

我们将1、9个引脚连接到5v,电动机1A、2A、3A和4A控制引脚。如果引脚1A变成低电平和2A如果变为高电平,电机将向右旋转;如果引脚1A变成低电平和2A电机将向左旋转,变成高电平。因此,我们将这些引脚连接到解码器的输出ps。 1Y、2Y、3Y和4Y是电机连接引脚。 Vcc二是电机驱动电压引脚,若采用高压电机,则将引脚连接到相应的电压源。

与发射器电路相同,将所有部件焊接在小块上PCB在面包板中,尽量使用最少的导线。我用的是5V因此,将电机驱动器的引脚8连接到5v。 我尝试了不同的材料来制造船体。hermocol Sheet我得到了更好的结果。所以我决定用Thermocol来制造船体。首先,我拿出一块3厘米厚的Thermocol片,并将接收器电路放在顶部,然后用Thermocol标记船的形状并切开。

选择正确的电动机非常重要,我选择了体积小且重量轻的5V,n20型普通直流电动机。 对于螺旋桨,我用塑料片制成螺旋桨。为了制作螺旋桨,首先,我取了一个小塑料片,并从中切下了两个小块,然后借助蜡烛加热将其弯曲。最后,我在马达中心放置了一个小孔,并将其固定在马达上。 编程代码非常简单,我们只需要一些逻辑切换。而且我们可以使用Arduino基础函数来实现所有功能。 首先,在代码中定义四个输入按钮和解码器输入引脚的编号。

int f_button = 9;
int b_button = 8;
int l_button = 7;
int r_button = 6;
int m1=2;
int m2=3;
int m3=4;
int m4=5;

在setup函数中,定义了引脚模式。按钮连接到数字引脚,因此这些引脚应定义为输入;我们需要获取解码器输入的输出,因此我们应将这些引脚定义为输出。

  pinMode(f_button,INPUT_PULLUP);
  pinMode(b_button,INPUT_PULLUP);
  pinMode(l_button,INPUT_PULLUP);
  pinMode(r_button,INPUT_PULLUP);
  pinMode(m1,OUTPUT);
  pinMode(m2,OUTPUT);
  pinMode(m3,OUTPUT);
  pinMode(m4,OUTPUT);

接下来,在loop函数中,我们将使用Arduino的digitalread()函数读取按钮状态。如果引脚状态变为低电平,则意味着相应的引脚被按下,那么我们将执行以下条件:

if ( digitalRead(f_button)==LOW)

这意味着按下前进按钮:

{
   digitalWrite(m1, LOW);
   digitalWrite(m3, LOW);
   digitalWrite(m2, HIGH);
   digitalWrite(m4, HIGH);
}

这将下拉编码器的m1和m2,并激活接收器侧的两个电机。同样,向后移动

{
   digitalWrite(m1, HIGH);
   digitalWrite(m3, HIGH);
   digitalWrite(m2, LOW);
   digitalWrite(m4, LOW);
}

编译代码后,将其上传到Arduino开发板。 故障排除:将船放在水面上,请检查船是否在正确移动,如果没有,改变电动机和螺旋桨的极性。

标签: 1500uf螺栓电容

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台