Სარჩევი:
ვიდეო: ბაღის მატარებელი - Arduino Wireless NMRA DCC: 4 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
გარდა წინა ინსტრუქციისა DCC მკვდარი სარკინიგზო სისტემის შესახებ, მე შემუშავდა იდეა შემდგომი ხელით DCC სარდლობის სადგურით კლავიატურით და LCD დისპლეით. სარდლობის სადგური შეიცავს ყველა კოდს, რომელიც საჭიროა NMRA DCC ინსტრუქციებისთვის, თუმცა ლიანდაგებთან შეერთების ნაცვლად, მონაცემები რადიო მოდულით RF24L01+ გადაეცემა მიმღებს, რომელიც დამონტაჟებულია სატვირთო მანქანაში ან ლოკოში - სადაც კი ოთახში ნებადართულია.
რასაკვირველია, თქვენს ლოკებს უნდა ჰქონდეთ დატვირთვის შესაძლებლობების დეკოდი, რომელიც შეეფერება ძრავის ძრავებს.
ნაბიჯი 1: სისტემის დიზაინი
Arduino Pro Mini არის დიზაინის ცენტრში. Fritzing– ის გამოყენება მიკროსქემის შესაქმნელად და PCB– ების წარმოებისთვის.
მე შემეძლო გამომეყენებინა ერთი და იგივე PCB როგორც გადამცემისთვის, ასევე მიმღებისთვის, რაც ზოგავდა ხარჯებს.
გადამცემს აქვს კავშირი კლავიატურისა და LCD– ისთვის, ხოლო მიმღები არ საჭიროებს მათ და იყენებს H- ხიდს, რათა უზრუნველყოს DCC გამომავალი ლოკოოსთვის.
შემდგომი განვითარება მოიცავს კავშირებს უფრო დიდი H ხიდისთვის, თუ ეს საჭიროა უფრო მძლავრი ლოკოსთვის.
PCF8574 შეიძლება წაიშალოს, თუ თქვენ იყენებთ LCD ეკრანს, რომელსაც მოყვება ზურგჩანთა, რომელიც საშუალებას აძლევს SCA / SCL კავშირებს არდუინოზე, აჩვენოს ეკრანი მხოლოდ 2 მავთულის გამოყენებით. ნაწილების სია: სულ = დაახლოებით £ 60 DCC სარდლობის სადგურისთვის + 1 მიმღები დამატებითი მიმღებების ღირებულება =.00 10.00 x დაახლოებით თითოეული. + ბატარეები
Arduino Pro Mini. x 2 = 4.00
4x3 გარსის კლავიატურა = 3.00 ფუნტი
20 x 4 LCD დისპლეი = 7.00 ფუნტი
PCF5874 = 80 1.80
NRF24L01+. რადიო მოდულები x 2 = £ 5.80
PCB წარმოება 10 ფასდაკლებით (ან შეიძლება გამოყენებულ იქნას ვერო დაფა) = 24 ფუნტი ან 4.80 ფუნტი 2 ფასად
3.3 v რეგულატორი = 0.17 £ (25 კომპლექტი RS Comp– დან)
5v მარეგულირებელი LM7805 = 30 0.30
H- ხიდი SN754410ne = 3.00 ფუნტი
Lloytron ხელახლა დატენვის 2700 maH AA ბატარეები x 12 = 22.00 £. (დაბალი maH რეიტინგული ბატარეები უფრო იაფია)
კონდენსატორები, ქოთნები, ქინძისთავები, კონექტორები და სხვა = 00 2.00 დაახ
დანართი 190x110x60 მმ = £ 8.00
გადამცემი - ტელეფონის დამტენი / ბატარეა = 2.00 ფუნტი
ნაბიჯი 2: გადამცემი
მიკროსქემის დიაგრამა ნაჩვენებია, სადაც Arduino Pro Mini- ზე D2- დან D8 ქინძისთავები დაკავშირებულია კლავიატურაზე. 100k ohm პოტენომეტრი არის დაკავშირებული ანალოგურ pin A0- თან სიჩქარის კორექტირებისთვის. SDA და SCL ქინძისთავები ქმნიან PCF8574 ჩიპს, რომლებიც დაკავშირებულია A4 ქინძისთავებთან და A5 Arduino Pro Mini– ზე შედუღებული მავთულის მეშვეობით Pro Mini- ს ზედა ფენის ქინძისთავებზე.
არდუინოს ესკიზი თან ერთვის ჩამოსატვირთად.
მე გამოვიყენე 20 x 4 LCD დისპლეი, რომელიც იძლევა ინფორმაციის 4 სტრიქონს 20 სიმბოლოზე თითო ხაზზე. კლავიატურა გთავაზობთ შემდეგ მენიუს:
1 -დან 9 -მდე = ლოკოს მისამართი * = მიმართულება 0 = განათება # = ფუნქციის მენიუ 1 -დან 8 -მდე
Arduino Pro Mini ესკიზის ძირითადი აღწერა: კოდის ეს ხაზი აწესრიგებს DCC შეტყობინებას HEX ფორმატში. სტრუქტური შეტყობინება msg [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // უსაქმური msg
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 ბაიტი მისამართი
};
თითოეული ლოკოს პარამეტრების შესანახად, მასივების სერია იქმნება შემდეგნაირად:
int la [20]; // მასივი ლოკო ნომრების შესანახად
int sa [20]; // მასივი სიჩქარის მნიშვნელობების შესანარჩუნებლად
int fda [20]; // მასივი, რომ დაიჭიროს რეჟ
int fla [20]; // მასივი განათების შესანახად
int f1a [20]; // მასივი გასართობად 1…..
int f8a [20]; // მასივი გართობის ჩასატარებლად 8
იმისათვის, რომ DCC ინსტრუქციები შეიცვალოს
სიჩქარის მითითებისთვის: void amend_speed (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg 28 სიჩქარის საფეხურით}
ფუნქციის ინსტრუქციისთვის:
void amend_group1 (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg პირველი ჯგუფის ინსტრუქციით 0x80}
ესკიზის მთავარი მარყუჟი:
void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // მონაცემების გაგზავნა უკაბელო საშუალებით
დაგვიანება (10);
send_data_3 (); // მონაცემების ჩვენება LCD ეკრანზე
send_data_4 (); // სერიული მონიტორის მონაცემების ჩვენება}
თუ (წაკითხვის_ფუნქცია ()) {
assemble_dcc_msg_group1 ();
send_data_1 ();
დაგვიანება (10);
send_data_3 (); }}
სიჩქარის შეცვლისას განაახლეთ მონაცემები:
boolean read_locoSpeed () ეს ამოიცნობს ახალ ლოკოს მისამართს, სიჩქარეს ან მიმართულებას და შესაბამისად ცვლის HEX 'მონაცემებს'. აქ მე დავაზუსტე 28 სიჩქარის საფეხური და NMRA სტანდარტის S 9.2 დასაკმაყოფილებლად, სიჩქარის მონაცემები უნდა მოიძებნოს ცხრილიდან "speed_step ()" - ში
void speed_step () {switch (locoSpeed) {
შემთხვევა 1: მონაცემები | = 0x02; შესვენება;
შემთხვევა 2: მონაცემები | = 0x12; შესვენება;
შემთხვევა 3: მონაცემები | = 0x03; შესვენება;
………
საქმე 28: მონაცემები | = 0x1F; შესვენება; }}
განაახლეთ მონაცემები ფუნქციების შეცვლისას:
ლოგიკური წაკითხვის ფუნქცია ()
if (fla [locoAdr] == 0) {data = 0x80;
} // თავის შუქები გამორთულია
თუ (fla [locoAdr] == 1) {
მონაცემები = 0x90;
} // თავის განათება ჩართულია
თითოეული ფუნქციისთვის:
if (f2a [locoAdr] == 0) {მონაცემები | = 0; }. // ფუნქცია 2 გამორთულია
თუ (f2a [locoAdr] == 1) {
მონაცემები | = 0x02; // ფუნქცია 2 'მონაცემებზე' აგებულია ['| =' ნაერთის ბიტიურად ან] HEX კოდების კომბინაციით თითოეული ფუნქციისთვის.
ნაბიჯი 3: მიმღები
მიკროსქემის დიაგრამა ნაჩვენებია იქ, სადაც Arduino Pro Mini 5 და 6 პინები გამოიყენება H- ხიდზე მიწოდებული DCC სიგნალის უზრუნველსაყოფად. H- ხიდის წყვილი დაკავშირებულია პარალელურად მიმდინარე სიმძლავრის გასაზრდელად. ლოკოოს მიერ გამოყვანილი დენიდან გამომდინარე, შეიძლება მოითხოვდეს გამაცხელებელ მოწყობილობას 16 პინიანი DIP მოწყობილობაზე მიმაგრება, ან მძიმე H- ხიდი გარედან იყოს დაკავშირებული.
Arduino ესკიზი თან ერთვის ჩამოსატვირთად. DCC სიგნალი შედგება საათისგან, რომელიც მუშაობს 2 MHZ
void SetupTimer2 () აკეთებს ამ საქმეს.
საათი შეიცავს 'მოკლე პულსი' (58us) '1' DCC მონაცემებში და 'გრძელი პულსი' (116us) '0' DCC მონაცემებში.
მარყუჟი ბათილია, იღებს მონაცემებს რადიოდან და თუ სწორი სტრიქონი მოიძებნება, მონაცემები გარდაიქმნება DCC მონაცემებად.
void loop (void) {if (radio.available ()) {bool done = false; კეთდება = radio.read (inmsg, 1); // წაიკითხეთ მიღებული მონაცემები
char rc = inmsg [0]; // დააყენეთ წაკითხული სიმბოლო ამ მასივში
თუ (rc! = 0) {. // თუ სიმბოლო არ არის ნულის ტოლი
inString.concat (rc); // შექმენით შეტყობინება}
if (rc == '\ 0') {// if სიმბოლო არის '/0' შეტყობინების დასასრული
Serial.println (inString); // დაბეჭდე აწყობილი შეტყობინება
სიმებიანი (); // DC კონსტრუქციის ინსტრუქციის მისაღებად ააშენეთ სიმებიანი შეტყობინება
} } }
ნაბიჯი 4: გაუშვით Locos
ერთსა და იმავე ბილიკზე მრავალი მატარებლის გაშვების მონაცემების შეფერხების თავიდან ასაცილებლად, თქვენ უნდა გათიშოთ კონტაქტები ბორბლებსა და ბილიკებს შორის თითოეული დასაქმებული ლოკოსა და სატვირთო მანქანისთვის.
ისიამოვნეთ უფასო მოძრავი მატარებლებით, ბილიკის პირობების მიუხედავად - რა განსხვავებაა! არანაირი სირთულე, არც გაჩერება და არც დასუფთავება.
ბატარეები, რომლებიც მე გამოვიყენე, ხელახლა იტენება LLoytron AA x 12. მე სპეციალურად მათთვის შევქმენი დამტენი, რომელიც ერთდროულად 6-ს იტენება. (იხ. სასწავლო)
გირჩევთ:
Steampunk მატარებელი: 5 ნაბიჯი (სურათებით)
Steampunk მატარებელი: მე გამიმართლა, რომ მეგობრისგან მივიღე ინვალიდის ეტლის საყრდენი. მე მჭირდებოდა ორივე ბატარეის გამოცვლა, რათა ის ამუშავებულიყო, მაგრამ ეს მცირე ფასი იყო ასეთი მრავალმხრივი საყრდენი სამშენებლო პლატფორმისათვის. მე გადავწყვიტე, რომ
ESP8266 - ბაღის მორწყვა ტაიმერით და დისტანციური მართვით ინტერნეტით / ESP8266: 7 ნაბიჯი (სურათებით)
ESP8266 - ბაღის მორწყვა ქრონომეტრითა და დისტანციური მართვის საშუალებით ინტერნეტით / ESP8266: ESP8266 - სარწყავი დისტანციური მართვით და დროით ბოსტნეულის ბაღებისთვის, ყვავილების ბაღებისთვის და გაზონებისთვის. იგი იყენებს ESP-8266 სქემას და ჰიდრავლიკურ / ელექტრო სარქველს სარწყავი საკვებისათვის. უპირატესობები: დაბალი ღირებულება (, 30,00 აშშ დოლარი) სწრაფი წვდომის ბრძანებები ov
გამარჯობა მატარებელი! ATtiny 1614: 8 ნაბიჯი (სურათებით)
გამარჯობა მატარებელი! ATtiny 1614: ჩემი Fab აკადემიის კლასისთვის მე უნდა შევქმნა დაფა მიკროკონტროლით, ღილაკით და LED- ით. არწივს გამოვიყენებ მის შესაქმნელად
კლავიატურის კონტროლირებადი მოდელის მატარებელი V2.0 - PS/2 ინტერფეისი: 13 ნაბიჯი (სურათებით)
კლავიატურის კონტროლირებადი მოდელის მატარებელი V2.0 | PS/2 ინტერფეისი: ერთ – ერთ ჩემს წინა ინსტრუქციებში მე გაჩვენეთ როგორ აკონტროლოთ რკინიგზის მოდელის განლაგება კლავიატურის გამოყენებით. ეს მშვენივრად გამოიყურებოდა, მაგრამ მას ჰქონდა ნაკლი, რომელიც მოითხოვდა კომპიუტერის მუშაობას. ამ ინსტრუქციებში ვნახოთ, როგორ გავაკონტროლოთ მოდელის მატარებელი კლავიატურის გამოყენებით
სანტას მაღაზია 2017, მატარებელი: 4 ნაბიჯი (სურათებით)
სანტას მაღაზია 2017, მატარებელი: სანტას მაღაზია 2017 არის სანტას მაღაზიის 2016 წლის განახლებული ვერსია. მინდოდა კიდევ ერთი მატარებლის დამატება, მაგრამ ერთადერთი ოთახი დარჩა ჭერზე. ყველაფერი რაც თქვენ უნდა გააკეთოთ იმისათვის, რომ მატარებელი თავდაყირა დადგეს არის მაგნიტების გამოყენება. არა? რა თქმა უნდა, არის რამდენიმე პატარა დაკავებული