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

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

3天内不再提示

一种采用微控制器的自动模型铁路布局项目

科技观察员 来源:Kushagra Keshari 作者:Kushagra Keshari 2022-06-08 17:10 次阅读

本文要介绍的是一种基本的模型火车布局,其中包含经过的侧线,火车以自动顺序运行和停止。

制作模型火车布局是一个很好的爱好,自动化它们会让它变得更好!让我们来看看它自动化的一些优势:

低成本运行:整个布局由Arduino微控制器控制,使用L298N电机驱动器,与传统的列车控制油门和电源组相比,它们的成本几乎为零。

放置在显示器上的理想选择:由于不需要人为干预来保持对布局的控制,因此您可以在无法始终在场的显示器上使用它来控制火车和道岔。

非常适合微控制器爱好者:如果您是或想要开始使用Arduino和编程,这是一个锻炼技能的好项目。

所以,事不宜迟,让我们开始吧!

第1步:观看项目

poYBAGKgZy6Ac00hAATFTeTA7Vo904.png

第2步:获取所有零件和组件

pYYBAGKgZyyAJAVxAAbn5cg8UWU650.png

首先,请确保您具备以下所有条件:

一个Arduino微控制器板,UNO是首选。

L298N双H桥电机驱动板。

6公对公跳线。

7公对母跳线。

一把螺丝起子。

一个12伏直流电源适配器。

底部带有红外接近传感器的轨道段(我使用的是KatoS62轨道)

第3步:将程序上传到Arduino板

poYBAGKgZyiAJq52AAK4aJs8juQ819.png

如果您的计算机上没有ArduinoIDE,请先下载。然后使用这一段code:

inti=0;//Integertostorethelocomotive‘sspeedatascalefrom0to255.

intswitchLimit=80;//Integertostorethespeedlimitatwhichthetrainwillenterthesiding.

voidcheck_n_switch(){

if(digitalRead(A0)==HIGH){//Checkingifthesensordetectsthetrainpassingthesensoredtrack.

if(i《=switchLimit){//Ifthespeedvalueisgreaterthanthesetvalue.

switch_to_pass();//Directthetraintothesiding.

}

if(i》switchLimit){//Ifthespeedvalueislessthanthesetvalue.

switch_to_main();//Directthetraintothemainline.

}

}

}

voidswitch_to_pass(){

digitalWrite(11,LOW);

digitalWrite(12,HIGH);

delay(200);

digitalWrite(12,LOW);

}

voidswitch_to_main(){

digitalWrite(12,LOW);

digitalWrite(11,HIGH);

digitalWrite(11,HIGH);

delay(200);

digitalWrite(11,LOW);

}

voidsetup(){

pinMode(A0,INPUT);

pinMode(9,OUTPUT);

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

}

voidloop(){

switch_to_pass();//Switchingturnoutstothesidingsincethetrainwillstartthejourneyfrothere.

for(i=0;i《=40;i++){//Increasingthespeedofthelocmotiveto40,atthisspeedthelightsturnonbutthetrainremainsatrest.

analogWrite(9,i);

delay(10);

}

delay(1000);

for(i=40;i《=90;i++){//Increasingthespeedofthelocomotiveto90

analogWrite(9,i);

check_n_switch();

delay(500);

}

delay(4000);

for(i=90;i《=180;i++){//Increasingthespeedofthelocomotiveto180.

analogWrite(9,i);

check_n_switch();

delay(250);

}

delay(3000);

for(i=180;i!=90;i--){//Decreasingthespeedofthelocmotivebackto90.

analogWrite(9,i);

check_n_switch();

delay(500);

}

delay(2000);

while(digitalRead(A0)==LOW){//Waitforthetraintocrossthesensoredtrack.

}

switch_to_pass();//Switchtheturnoutstodirectthetraintothesiding.

delay(2000);//Waitforthetraintoenterthesiding.

for(i=90;i!=35;i--){//Reducethespeedofthetraingradually,bringingittoahalt.

analogWrite(9,i);

check_n_switch();

delay(500);

}

for(i=35;i!=0;i--){

analogWrite(9,i);

check_n_switch();

delay(62);

}

delay(5000);//Waitfor5secondsbeforerepeatingthewholeprocessagain.

}

第4步:铺设轨道并进行布局

pYYBAGKgZxqALCAaAAO5wvzIAQQ861.png

如上图所示,用经过的壁板制作一个椭圆形环。确保传感器轨道与列车在穿过传感器轨道后要穿过的第一个道岔之间的距离大于火车的长度,这样当火车穿过道岔时,没有任何部分超过传感器轨道。

第5步:电路原理

poYBAGKgZxaATcbLAANpEYOnZS4492.png

在继续之前,请确保您浏览了完整的电路原理图和所有细节。

第6步:将道岔连接到L298N驱动板的输出

pYYBAGKgZxKAX_CzAAaQRkPMzuI315.png

将两个道岔的红线和黑线分别相互连接,形成并联。然后,将红线连接到电机驱动板的out4端子,将黑线连接到电机驱动板的out3端子。

第7步:将电源馈线轨道连接到L298N驱动板的剩余输出

poYBAGKgZwyAPW6sAAOIGG5m-JQ097.png

将电源馈线的白线连接到电机驱动板的out1端子,将蓝线连接到电机驱动板的out2端子。

第8步:将L298N驱动板连接到Arduino板的电源引脚

poYBAGKgZweAJIjhAARWw2SzOq8463.png

将12伏引脚连接到Arduino板的VIN引脚,将GND引脚连接到Arduino板的GND引脚,最好将电机驱动器的5伏引脚连接到Arduino板的5伏引脚。

第9步:将传感器连接到Arduino板

poYBAGKgZv2AbOEcAARfWhasscE205.png

将传感器的VCC引脚连接到Arduino板的5V引脚,GND引脚连接到Arduino板的GND引脚,OUT引脚连接到Arduino板的A0引脚。

第10步:将电机驱动器的输入引脚连接到Arduino板

pYYBAGKgZvmAL35PAASNForngD8332.png

将Arduino板的数字引脚连接到电机驱动板的输入引脚,如下所示:

D9到IN1

D10至IN2

D11至IN3

D12至IN4

第11步:将火车放在轨道上

pYYBAGKgZvOAD2lzAARiUNtVcJY222.png

检查所有接线连接后,将火车放在壁板上。

第12步:启动设置

pYYBAGKgZu6AZK5zAAPtRo9jZMU552.png

启动设置并确保道岔切换到壁板,如果没有,则只需反转与电机驱动器建立的道岔的连接。此外,确保火车开始向前移动。如果列车运行方向错误,则将馈线轨道与电机驱动器的连接反向。

第13步:完成!

到这一步,该项目已经完成。您可以修改Arduino代码以更改布局的功能、添加更多侧板等。这一切都是可定制的!

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

    关注

    48

    文章

    7542

    浏览量

    151316
  • 电机驱动器
    +关注

    关注

    16

    文章

    642

    浏览量

    64669
收藏 人收藏

    评论

    相关推荐

    不同微控制器版的特性

    要开始嵌入式开发,我们需要两个主要的东西,即开发板和IDE(集成开发环境)。微控制器开发板是一种印刷电路板(PCB),其电路和硬件设计用于促进某些微控制器板功能的实验。开发板与处理
    发表于 08-07 08:53

    如何设计一种位置控制器

    一种基于S7-200 PLC的位置控制器研究设计位置控制器在工业中有什么应用?
    发表于 04-28 06:16

    请问怎样去设计一种基于STM32F469微控制器的机器学习面部检测电路?

    人脸识别硬件是什么?怎样将人脸识别功能整合到嵌入式系统中去?怎样去设计一种基于STM32F469微控制器的机器学习面部检测电路?
    发表于 07-04 06:14

    请问怎样去搭建一种模糊控制器系统的数学模型

    模糊PID控制方式与传统PID控制相比有何优势?怎样去搭建一种模糊控制器系统的数学模型?如何对模糊控制器
    发表于 08-18 07:35

    如何去开发一种STM32Fx微控制器自定义引导程序

    如何去开发一种STM32Fx微控制器自定义引导程序?怎样去使用CubeMX生成C项目
    发表于 09-28 08:18

    一种嵌入式-微控制器的集成电路(IC)

    本技术产品采用STM32F10F103RCT6STM32F103RCT6是一种嵌入式-微控制器的集成电路(IC),芯体尺寸是32位,速度是72MHz,程序存储容量是256KB,程序存
    发表于 11-30 06:59

    一种基于MM32SPIN222C微控制器的电机控制方案

    一种基于MM32SPIN222C微控制器的电机控制方案
    发表于 03-01 07:11

    采用可定制微控制器来优化算法的设计

    采用可定制微控制器来优化算法的设计     Atmel公司的CAP可定制微控制器为这种挑战提出了一种可行的解决方案。CAP是
    发表于 09-27 13:50 629次阅读
    <b class='flag-5'>采用</b>可定制<b class='flag-5'>微控制器</b>来优化算法的设计

    一种自动路灯控制器电路图

    一种自动路灯控制器电路图
    发表于 06-12 11:05 1447次阅读
    <b class='flag-5'>一种</b>全<b class='flag-5'>自动</b>路灯<b class='flag-5'>控制器</b>电路图

    一种PLC控制自动换向型电镀电源

    一种PLC控制自动换向型电镀电源 摘要:介绍一种由PLC可编程控制器控制
    发表于 07-25 12:09 1035次阅读
    <b class='flag-5'>一种</b>PLC<b class='flag-5'>控制</b>的<b class='flag-5'>自动</b>换向型电镀电源

    一种基于ARMCortex微控制器的相位差检测方法

    一种基于ARMCortex微控制器的相位差检测方法
    发表于 09-26 09:46 5次下载
    <b class='flag-5'>一种</b>基于ARMCortex<b class='flag-5'>微控制器</b>的相位差检测方法

    什么是微控制器?如何编程微控制器

    微控制器进行编程或刻录意味着“将程序从编译传输到微控制器的存储”。微控制器的程序通常是用C或汇编语言编写的,最后编译
    的头像 发表于 08-21 15:40 1w次阅读

    微控制器布局

    有效 的,其他则需要适当的留心下 PCB 设计。 因此,很容易地理解噪声的来源主要由 NEC CMOS 微控制器 的内部躁声和它传播到外面的躁声组成。 3.1典型的微控制器布局 在以
    的头像 发表于 08-15 19:59 1285次阅读
    <b class='flag-5'>微控制器</b><b class='flag-5'>布局</b>

    基于Arduino微控制器自动植物浇水系统设计

    基于 Arduino 的自动植物浇水系统。我想到了我车间的土壤湿度传感、水泵电机和些管道,我想做项目。该
    发表于 12-27 15:57 4次下载

    基于PIC微控制器构建一种低成本的高低压保护电路

    天,我们正在构建一种低成本的高低压保护电路,该电路将在高电压或低电压的情况下切断电器的电源。它还将在 16x2 LCD 上显示警告消息。在本项目中,我们使用PIC微控制器来读取输入电压并将其与参考电压进行比较,并采取相应的措施。
    的头像 发表于 01-25 15:50 1574次阅读
    基于PIC<b class='flag-5'>微控制器</b>构建<b class='flag-5'>一种</b>低成本的高低压保护电路