本文要介紹的是一種基本的模型火車布局,其中包含經(jīng)過的側(cè)線,火車以自動順序運(yùn)行和停止。
制作模型火車布局是一個(gè)很好的愛好,自動化它們會讓它變得更好!讓我們來看看它自動化的一些優(yōu)勢:
低成本運(yùn)行:整個(gè)布局由Arduino微控制器控制,使用L298N電機(jī)驅(qū)動器,與傳統(tǒng)的列車控制油門和電源組相比,它們的成本幾乎為零。
放置在顯示器上的理想選擇:由于不需要人為干預(yù)來保持對布局的控制,因此您可以在無法始終在場的顯示器上使用它來控制火車和道岔。
非常適合微控制器愛好者:如果您是或想要開始使用Arduino和編程,這是一個(gè)鍛煉技能的好項(xiàng)目。
所以,事不宜遲,讓我們開始吧!
第1步:觀看項(xiàng)目
第2步:獲取所有零件和組件
首先,請確保您具備以下所有條件:
一個(gè)Arduino微控制器板,UNO是首選。
L298N雙H橋電機(jī)驅(qū)動板。
6公對公跳線。
7公對母跳線。
一把螺絲起子。
一個(gè)12伏直流電源適配器。
底部帶有紅外接近傳感器的軌道段(我使用的是KatoS62軌道)
第3步:將程序上傳到Arduino板
如果您的計(jì)算機(jī)上沒有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步:鋪設(shè)軌道并進(jìn)行布局
如上圖所示,用經(jīng)過的壁板制作一個(gè)橢圓形環(huán)。確保傳感器軌道與列車在穿過傳感器軌道后要穿過的第一個(gè)道岔之間的距離大于火車的長度,這樣當(dāng)火車穿過道岔時(shí),沒有任何部分超過傳感器軌道。
第5步:電路原理圖
在繼續(xù)之前,請確保您瀏覽了完整的電路原理圖和所有細(xì)節(jié)。
第6步:將道岔連接到L298N驅(qū)動板的輸出
將兩個(gè)道岔的紅線和黑線分別相互連接,形成并聯(lián)。然后,將紅線連接到電機(jī)驅(qū)動板的out4端子,將黑線連接到電機(jī)驅(qū)動板的out3端子。
第7步:將電源饋線軌道連接到L298N驅(qū)動板的剩余輸出
將電源饋線的白線連接到電機(jī)驅(qū)動板的out1端子,將藍(lán)線連接到電機(jī)驅(qū)動板的out2端子。
第8步:將L298N驅(qū)動板連接到Arduino板的電源引腳
將12伏引腳連接到Arduino板的VIN引腳,將GND引腳連接到Arduino板的GND引腳,最好將電機(jī)驅(qū)動器的5伏引腳連接到Arduino板的5伏引腳。
第9步:將傳感器連接到Arduino板
將傳感器的VCC引腳連接到Arduino板的5V引腳,GND引腳連接到Arduino板的GND引腳,OUT引腳連接到Arduino板的A0引腳。
第10步:將電機(jī)驅(qū)動器的輸入引腳連接到Arduino板
將Arduino板的數(shù)字引腳連接到電機(jī)驅(qū)動板的輸入引腳,如下所示:
D9到IN1
D10至IN2
D11至IN3
D12至IN4
第11步:將火車放在軌道上
檢查所有接線連接后,將火車放在壁板上。
第12步:啟動設(shè)置
啟動設(shè)置并確保道岔切換到壁板,如果沒有,則只需反轉(zhuǎn)與電機(jī)驅(qū)動器建立的道岔的連接。此外,確保火車開始向前移動。如果列車運(yùn)行方向錯誤,則將饋線軌道與電機(jī)驅(qū)動器的連接反向。
第13步:完成!
到這一步,該項(xiàng)目已經(jīng)完成。您可以修改Arduino代碼以更改布局的功能、添加更多側(cè)板等。這一切都是可定制的!
-
微控制器
+關(guān)注
關(guān)注
48文章
7542瀏覽量
151316 -
電機(jī)驅(qū)動器
+關(guān)注
關(guān)注
16文章
642瀏覽量
64669
發(fā)布評論請先 登錄
相關(guān)推薦
評論