0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino 2合1模型火车控制器的制作教程

454398 来源:wv 2019-10-12 11:13 次阅读

步骤1:脉宽调制(PWM) )

Arduino 2合1模型火车控制器的制作教程

对于那些不熟悉PWM的人来说,它并不像听起来那样可怕。对于我们简单的电机控制应用程序而言,它真正的意思是生成一定频率的方波,然后更改占空比。占空比定义为输出与波形周期相比为逻辑高电平的时间比率。您可以在上图中清楚地看到,顶部波形为10%占空比,中间波形为50%占空比,底部波形为90%占空比。每个波形上覆盖的虚线表示电机看到的等效直流电压。鉴于Arduino具有内置的PWM功能,生成这种类型的DC电机控制确实非常简单。使用PWM的另一优点是,它有助于防止电动机在使用直直流电时可能发生的突然启动。 PWM的一个缺点是有时在PWM的频率下会听到来自电动机的声音。

步骤2:硬件

第一张图片显示了开关和LM298电机驱动器模块的Arduino连接。 Arduino内部有弱上拉电阻,因此开关不需要上拉电阻。方向开关是一个简单的SPST(单刀单掷)开关。油门和制动开关显示为常开,瞬时接触按钮。

第二张图显示了蓝牙模块和LM298电机驱动器模块的Arduino连接。蓝牙TXD输出直接连接到Arduino RX串行输入。

第三张图片是L298N双H桥模块。 LM298模块具有一个板载5伏调节器,可通过跳线将其启用。 Arduino和蓝牙需要+5伏特,但我们需要+12伏特来驱动电机。在这种情况下,我们将+12伏特施加到L298N的“ + 12V电源”输入,我们将保留“ 5V使能”跳线。这允许5伏调节器输出到模块上的“ +5功率”连接。将其连接到Arduino和蓝牙。别忘了将+12输入和+5输出的接地线连接到模块“电源GND”。

我们希望电机的输出电压根据产生的PWM变化。 Arduino,而不仅仅是完全打开或关闭。为此,我们从“ ENA”和“ ENB”上移除跳线,并将我们的Arduino PWM输出连接至模块上的“ ENA”。请记住,实际的使能引脚是最靠近板边缘的引脚(“输入”引脚旁边)。每个使能的背面引脚为+5伏,因此我们要确保不连接该引脚。

模块上的“ IN1”和“ IN2”引脚分别连接到各自的Arduino引脚。这些引脚控制电机方向,是的,有充分的理由让Arduino控制它们,而不是简单地将开关连接到模块。

第3步:蓝牙模块

此处显示的图片是蓝牙的典型图片可用模块。在寻找要购买的产品时,您可以搜索“ HC-05”和“ HC-06”。两者之间的差异在于固件,通常是板上的引脚数。上图是HC-06模块的图片,带有简化的固件,仅允许进行非常基本的配置。它也被设置为“从属”蓝牙设备。简单来说,这意味着它只能响应来自“主”设备的命令,而不能自行发出命令。 HC-05模块具有更多配置可能性,可以设置为“主”设备或“从”设备。 HC-05通常具有六个插针,而不是上面为HC-06所示的四个插针。 State引脚并不是很重要,但是如果要进行任何配置,则需要Key引脚(有时会使用“ EN”之类的其他名称)。通常,如果您可以使用默认的9600波特率,并且不需要为模块指定具体名称,则无需对模块进行任何配置。我在几个项目中都使用了这些项目,因此我要相应地命名它们。

配置蓝牙模块需要您购买或构建RS-232串行端口USB端口的接口。我不会在这篇文章中介绍如何构建一个,但是您应该可以在网上找到信息。或者只是购买一个接口。配置命令使用的AT命令有点像过去电话调制解调器中使用的命令。我在此处随附了一个用户手册,其中包含每种模块类型的AT命令。要注意的一件事是HC-06需要大写命令,并且命令字符串必须在1秒内完成。这意味着某些较长的字符串(例如更改波特率)将需要剪切并粘贴到终端程序中,或者您需要设置要发送的文本文件。仅当您尝试发送配置命令时,才需要大写。常规通信模式可以接受任何8位数据。

步骤4:软件

对于手动版本和蓝牙而言,该软件都非常简单版。要选择蓝牙版本,只需取消对“ #define BT_Ctrl”语句的注释即可。

当我编写PIC代码时,我尝试使用PWM频率并最终稳定在500 Hz。我发现如果频率太高,则LM298N模块无法对脉冲做出足够迅速的反应。这意味着电压输出不是线性的,可能会发生较大的变化。 Arduino内置了PWM命令,但它们仅允许您更改占空比而不是频率。幸运的是,该频率约为490 Hz,因此足够接近我在PIC上使用的500 Hz。

火车油门的“特征”之一是具有加速和制动的动量感模拟真实火车的工作方式。为此,在软件的手动版本的循环中插入一个简单的时间延迟。使用所示的值,从0到12伏或从12伏回到零大约需要13秒钟。可以很容易地将延迟更改为更长或更短的时间。动量无效的唯一情况是更改方向开关。为了保护起见,只要更改此开关,PWM占空比就会立即设置为0%。实际上,这使得“方向”开关也可以用作紧急制动器。

为确保立即处理“方向”开关,我将其代码放入了中断处理程序中。这也使我们可以使用“更改时中断”功能,因此更改从低到高还是从高到低都没有关系。

该软件的蓝牙版本使用单字母命令来启动前进,倒车,刹车和油门功能。实际上,收到的命令将替换手动开关,但会导致相同的响应。我用于蓝牙控制的应用程序被Next Prototypes称为“蓝牙串行控制器”。它使您可以配置虚拟键盘并为每个按键设置自己的命令字符串和名称。它还允许您设置重复频率,因此我将“制动”和“油门”按钮设置为50ms,以提供约14秒的动量。我禁用了“前进”和“后退”按钮的重复功能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15214

    浏览量

    171140
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184826
收藏 人收藏

    评论

    相关推荐

    Arduino制作循迹小车教程

    Arduino制作循迹小车完全教程
    发表于 01-05 11:09 2次下载

    Arduino制作雕刻机时用哪个pin来控制激光开关?

    Arduino制作雕刻机是用哪个pin来控制激光的开关? Limit Z_Axis 还是 SPINDLE_ENABLE 好像要交换一下.
    发表于 10-27 07:52

    使用Arduino和PAJ7620手势传感制作手势控制机器人

    使用Arduino和PAJ7620手势传感制作手势控制机器人,简单程序即可实现。小小的传感可以识别各种手势。它采用内置的空间传感
    发表于 09-27 06:17

    利用Arduino制作智能空调

    宿舍总是太热,我们决定用Arduino来建造我们自己的空调。每个房间都有自己的温度传感、通风井和风扇控制器Arduino的工作是监控室温并控制
    发表于 09-22 06:32

    宙Air001在Arduino下的测试IIC工程

    本帖最后由 大懒猫54 于 2023-8-23 11:57 编辑 测试使用宙Air001开发板,使用PF0,PF1对应的IIC接口,测试0.96英寸的OLED。下载器使用宙Air001开发板配套的DAPLink下载
    发表于 08-23 11:56

    PrimeCell动态内存控制器(PL340)循环模型9.1.0版用户指南

    了周期模型的功能与硬件的功能,以及周期模型的性能和准确性。 有关周期模型所代表的硬件功能的详细信息,请参阅《ARM PrimeCell Dynamic Memory控制器(PL340)
    发表于 08-12 06:25

    PrimeCell DDR2动态内存控制器(PL341)循环模型9.1.0版用户指南

    PL341内存控制器是一款高性能、面积优化的DDR2 SDRAM内存控制器,兼容高级微控制器总线架构(AMBA)AXI协议。 有关AXI协议的详细说明,请参阅AMBA AXI协议规范。
    发表于 08-12 06:01

    如何制作基于Arduino的IR接收器?

    在这里,将展示如何制作基于Arduino的IR接收器,以解码来自TV/DVD遥控器的IR信号。根据与遥控器上特定按钮对应的解码值,我们将对Arduino进行编程以控制多个继电器开关。
    的头像 发表于 07-10 14:20 774次阅读
    如何<b class='flag-5'>制作</b>基于<b class='flag-5'>Arduino</b>的IR接收器?

    制作Arduino控制的机器人

    电子发烧友网站提供《制作Arduino控制的机器人.zip》资料免费下载
    发表于 07-06 14:21 0次下载
    <b class='flag-5'>制作</b><b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>的机器人

    DIY一个模型列车控制器电路

    火车模型是我们每个人在童年时都玩过的有趣玩具。现在市场上有许多复杂而有吸引力的模型列车,但为其构建控制器的基本原理保持不变。我构建了一个模型列车控制
    的头像 发表于 06-29 16:53 1254次阅读
    DIY一个<b class='flag-5'>模型</b>列车<b class='flag-5'>控制器</b>电路

    如何使用Arduino控制继电器模块制作智能家居

    电子发烧友网站提供《如何使用Arduino控制继电器模块制作智能家居.zip》资料免费下载
    发表于 06-29 10:22 0次下载
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>继电器模块<b class='flag-5'>制作</b>智能家居

    Arduino:连续MIDI控制器/键盘

    电子发烧友网站提供《Arduino:连续MIDI控制器/键盘.zip》资料免费下载
    发表于 06-27 10:31 0次下载
    <b class='flag-5'>Arduino</b>:连续MIDI<b class='flag-5'>控制器</b>/键盘

    如何制作Arduino蓝牙控制的汽车

    电子发烧友网站提供《如何制作Arduino蓝牙控制的汽车.zip》资料免费下载
    发表于 06-26 10:21 0次下载
    如何<b class='flag-5'>制作</b><b class='flag-5'>Arduino</b>蓝牙<b class='flag-5'>控制</b>的汽车

    使用Arduino和其他常见组件制作热风枪控制器

    电子发烧友网站提供《使用Arduino和其他常见组件制作热风枪控制器.zip》资料免费下载
    发表于 06-26 09:19 1次下载
    使用<b class='flag-5'>Arduino</b>和其他常见组件<b class='flag-5'>制作</b>热风枪<b class='flag-5'>控制器</b>

    使用Arduino和L293d shield制作语音控制机器人

    电子发烧友网站提供《使用Arduino和L293d shield制作语音控制机器人.zip》资料免费下载
    发表于 06-12 10:49 0次下载
    使用<b class='flag-5'>Arduino</b>和L293d shield<b class='flag-5'>制作</b>语音<b class='flag-5'>控制</b>机器人