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

描述

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

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

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

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

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

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

第1步:观看项目

微控制器

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

微控制器

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

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

L298N双H桥电机驱动板。

6公对公跳线。

7公对母跳线。

一把螺丝起子。

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

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

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

微控制器

如果您的计算机上没有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步:铺设轨道并进行布局

微控制器

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

第5步:电路原理图

微控制器

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

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

微控制器

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

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

微控制器

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

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

微控制器

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

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

微控制器

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

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

微控制器

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

D9到IN1

D10至IN2

D11至IN3

D12至IN4

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

微控制器

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

第12步:启动设置

微控制器

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

第13步:完成!

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

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分