本文要介紹的是一種基本的模型火車布局,其中包含經過的側線,火車以自動順序運行和停止。
制作模型火車布局是一個很好的愛好,自動化它們會讓它變得更好!讓我們來看看它自動化的一些優勢:
低成本運行:整個布局由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代碼以更改布局的功能、添加更多側板等。這一切都是可定制的!
-
微控制器
+關注
關注
48文章
7334瀏覽量
150087 -
電機驅動器
+關注
關注
15文章
624瀏覽量
64362
發布評論請先 登錄
相關推薦
評論