Mündəricat:
- Addım 1: Arduino Kodu - Klaviatura ilə Komanda Stansiyası
- Addım 2: Arduino Kodu - TFT Ekranı
- Addım 3: İştirak Nəzarətçisi
Video: Model Dəmiryolu - Arduino istifadə edərək DCC Komanda Stansiyası :: 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Avqust 2018-də yeniləndi-yeni Təlimatlara baxın:
28 Aprel 2016 -ı yeniləyin: İndi Command Station -a 16 iştirak / xal nəzarət qabiliyyəti. T1 - T8 açarları 'B' düyməsi ilə əldə edilə bilər T9 - T16 açarları 'C' düyməsi ilə mövcuddur
10 Mart 2016 -ı yeniləyin:
İndi Command Station -a 8 iştirak / bal nəzarət qabiliyyəti əlavə edildi. Arduino kodu, NMRA standart paketi istifadə edərək müvafiq olaraq yeniləndi (eyni zamanda Lenz / Atlas Compact məlumat paketlərinin seçilmə nəzarəti üçün).
T1 - T8 açarları 'B' düyməsi ilə mövcuddur
İstifadə olunan məlumat paketi qəbuledici sxemində və tələb olunan Arduino kodunda təlimatlara baxın.
Yeniləmə 18 Yanvar 2016:
Dövrə bir cərəyan mənası rezistoru (1k5 ohm) və kondansatör (10 uf) əlavə etdim və> 3200 mAmps pik cərəyanı aşkar edildikdə gücü kəsmək üçün Arduino kodunu dəyişdirdim. H-körpü spesifikasiyası, yükdə 1 Amper başına 377 uA bir çıxış hissi cərəyanını bildirir.
1.5 k ohm müqavimət, analog pin 6 -da bir Amp üçün 0.565 volt təmin edəcək. Analog girişdə 1023 addım ilə bu, bir Amper yükü üçün 0.565 * 1023 /5 = 116 verir.
A = 100 * (analogOxu (AN_CURRENT)) / 116; A = A * 10; (milliamplarda nəticə vermək üçün)
Milliamplarda yük cərəyanı TFT -də göstərilir
Tam 4x4 klaviatura, F1-dən F8-ə qədər funksiyaları və '#' düyməsiylə başqa 10 lokosu (1-19) (loco 10-dan başlayan rəqəmsal düymələrə 10 əlavə etmək üçün) daxildir.
Arduino koduna təlimat baytları üçün NMRA standartı daxildir.
Linkə baxın
www.nmra.org/sites/default/files/s-9.2.1_20…
(səhifə 6 xüsusi əhəmiyyət kəsb edir)
Paketlər sürət addımlarının sayına, uzun / qısa ünvana və Function Group təlimatlarına uyğun olaraq düzülmüşdür.
Bütün təlimat baytlarının önündə '1' bit 11111111 (və ya boş paket) ön müqabili, ardınca;
məs. 4 baytlı ünvan 0 00000011 0 00111111 0 10000011 0 10111111
loco 3, 128 sürət addımlarına, irəli istiqamətə və sürət addımına 3 bərabərdir (son bayt XOR səhv yoxlamasıdır)
məsələn, 3 baytlıq ünvan 0 00000011 0 10010000 0 10110011
loco 3, funksiya qrupu 1, FL işıqları üstəgəl XOR baytına bərabərdir (a '0' bit hər baytı ayırır)
Loco 12 üçün əlavə edilmiş nümayiş videosuna baxın.
F1 - F8 funksiyaları 'A' düyməsi, DIR ('*' düymə = istiqamət) FL ('0' düyməsi = işıqlar) və '#' düymələri vasitəsi ilə mövcuddur. 'D' düyməsi indi 'Təcili STOP' üçün istifadə olunur.
DCC məlumat mənbələri və Arduino kodu üçün internetdəki müxtəlif provayderlər sayəsində.
Xüsusilə, bu layihə Michael Blankdan və 'Simple DCC - bir komanda stansiyasından' ilham aldı.
www.oscale.net/en/simpledcc
4x4 Matrix Array 16 Key Membran Switch Keypad (ebay) 1.75 AZN
2.2 düym 240x320 Serial SPI TFT LCD Ekran Modulu (ebay) 7,19 AZN
UNIVERSAL 12V 5A 60W GÜÇ KAYNAĞI AC ADAPTÖRÜ (ebay) £ 6.49
CH340G 5V 16M uyğun ATmega328P (ebay) ilə Arduino üçün Nano V3.0 2 x 3.30 £ 6.60
Arduino R3 (ebay) üçün LMD18200T Sürücü Modulu 6.99 funt sterlinq
Bağlayıcılar, tel, vero lövhəsi, potansiyometr təxminən 3.50 funt sterlinq
Ümumi £ 32.52
Tft ekranı və 1 x nano olmayan əsas komanda stansiyası 22.03 funt sterlinq olardı
[Qeyd: TFT ekranına bir yaddaş kartı əlavə etmək və seçilmiş mühərriklərin şəkillərini göstərmək üçün kodu dəyişdirmək mümkündür, baxmayaraq ki, eskiz üçün daha çox yaddaş yaratmaq üçün kitabxana kodlarının redaktə edilməsi lazımdır. TFT Arduino Nano üçün hazırkı eskiz ölçüsü maksimumdur]
Michael Blank tərəfindən yazılmış orijinal Arduino kodu, bir funksiya idarəsi, klaviaturası və ekranı olmadan irəli / geri çevirən bir mühərrik üçündür.
Kodu 1 - 19 mühərrik, bir ekran, istiqamət, işıqlar, 8 funksiya, təcili dayanma və avtomatik cərəyan limiti daxil etmək üçün dəyişdirdim.
LMD18200T körpüsü 3 amperə qədər yük daşıya bilir ki, bu da G miqyaslı (bağ qatarları) daxil olmaqla bütün tərəzi üçün əlverişlidir. Şəbəkə elektrik təchizatı və elektronika, yalnız hava şəraitinə davamlı edə bilmədiyiniz təqdirdə, daxili istifadə üçün uyğundur. Yaz evində, dəmir yolu ilə telin divardan keçərək yola çıxan komanda məntəqəsi var.
Addım 1: Arduino Kodu - Klaviatura ilə Komanda Stansiyası
Arduino kodunun naqillərə uyğun gəlmədiyi dövrə diaqramında 2 səhv göstərdiyinə görə tvantenna2759 -a təşəkkür edirəm, indi yeniləndi (21 Oktyabr 2017).
İndi Komanda Stansiyasına 16 döngə əlavə edildi. Arduino Mini Pro modulundan istifadə edərək seçmə / xal dövrə diaqramında göstərişlərə baxın.
İştirakçılığa nəzarət də daxil olmaqla dəyişdirilmiş kod aşağıda verilmişdir.
Əsas Aksesuar dekoder paketi belədir: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEE 1 Lenz (Compact / Atlas) tərəfindən xal nəzarət üçün istifadə olunan paketi təhlil edərək, bayt 1 və 2 üçün aşağıdakı ikili paket formatını istifadə etdim: tunAddr = 1 Turnir 1a: 1000 0001 1111 1000 / Katılım 1b: 1000 0001 1111 1001 İştirak 2a: 1000 0001 1111 1010 / İştirak 2b: 1000 0001 1111 1011 İştirak 3a: 1000 0001 1111 1100 / İştirak 3b: 1000 0001 1111 1101 Katılım 4a: 1000 0001 1111 1110 / İştirak 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- İştirak 5a: 1000 0010 1111 1000 / İştirak 5b: 1000 0010 1111 1001 İştirak 6a: 1000 0010 1111 1010 / İştirak 6b: 1000 0010 1111 1011 İştirak 7a: 1000 0010 1111 1100 / İştirak 7b: 1000 0010 1111 1101 İştirak 8a: 1000 0010 1111 1110 / İştirak 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- İştirak 9a: 1000 0011 1111 1000 / İştirak 9b: 1000 0011 1111 1001 və s. ………
Dəyişdirilmiş koddan çıxarış: Daha 2 'struct' mesajı əlavə edinvoid_dun1 (struct Message & x) {x.data [0] = 0x81; // aksesuar dexoderi 0x80 və ünvan 1 x.data [1] = 0; }
void editor_tun2 (struct Message & x) {x.data [0] = 0x82; // aksesuar dexoderi 0x80 və ünvan 2 x.data [1] = 0; }
İştirakçılar üçün yeni boşluq əlavə edin: boolean read_turnout () {delay (20);
boolean dəyişdi_t = yanlış; get_key ();
əgər (key_val> = 101 && key_val <= 404 && turn == 1) {
məlumat = 0xf8; // = ikili 1111 1000
düzəliş_tun1 (msg [1]);
}
əgər (key_val> = 505 && key_val <= 808 && turn == 1) {
məlumat = 0xf8; // = ikili 1111 1000
dəyişiklik_tun2 (msg [1]);
}
əgər (key_val == 101 && turn == 1) {
əgər (tun1 == 1) {
məlumatlar | = 0; // t1a
dəyişdi_t = doğru;}
əgər (tun1 == 0) {
məlumatlar | = 0x01; // t1b
dəyişdi_t = doğru;}
}
əgər (key_val == 202 && turn == 1) {
əgər (tun2 == 1) {
məlumatlar | = 0x02; // t2a
dəyişdi_t = doğru;
}
əgər (tun2 == 0) {
məlumatlar | = 0x03; // t2b
dəyişdi_t = doğru; }
}
əgər (key_val == 303 && turn == 1) {
əgər (tun3 == 1) {
məlumatlar | = 0x04; // t3a
dəyişdi_t = doğru;
}
əgər (tun3 == 0) {
məlumatlar | = 0x05; // t3b
dəyişdi_t = doğru;}
}
əgər (key_val == 404 && turn == 1) {
əgər (tun4 == 1) {
məlumatlar | = 0x06; // t4a
dəyişdi_t = doğru;
}
əgər (tun4 == 0) {
məlumatlar | = 0x07; // f4b
dəyişdi_t = doğru;}
}
əgər (key_val == 505 && turn == 1) {
əgər (tun5 == 1) {
məlumatlar | = 0; // t5a
dəyişdi_t = doğru;
}
əgər (tun5 == 0) {
məlumatlar | = 0x01; // t5b
dəyişdi_t = doğru;}
}
və s ………………….
Addım 2: Arduino Kodu - TFT Ekranı
Ekran dövrəsi, 16 döngənin vəziyyətini göstərmək üçün dəyişdirilmiş bir kodla eyni qalır. Qeyd: Kitabxana kodu, yeni xüsusiyyətlər üçün az yer buraxaraq, eskiz kod yaddaşının demək olar ki, hamısını tutur. Burada istifadə olunan TFT üçün daha səmərəli bir kitabxana faylı varsa, mənə bildirin.
Addım 3: İştirak Nəzarətçisi
İştirak / Nöqtələr nəzarətçisinin necə ediləcəyi ilə bağlı təlimatlara baxın.
Tam dövrə 16 nöqtəni və işıqlar, səslər, dönər masası və s. Kimi 15 aksesuarı idarə edir.
Tövsiyə:
Model Dəmiryolu üçün WiFi DCC Komanda Stansiyası: 5 addım
Model Dəmiryolu üçün WiFi DCC Komanda Stansiyası: 5 Aprel 2021 -də yeniləndi: yeni komponent və sxem elementləri. Yeni eskiz: command_station_wifi_dcc3_LMD18200_v4.ino Təlimatları çatdırmaq üçün WiFi istifadə edən yeni DCC sistemi 3 mobil telefon/planşet istifadəçisi ideal bir sxemdə istifadə edilə bilər. üçün
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək sürətlənməni izləyin: 6 addım
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək Sürətləndirməni izləyin: Sürətləndirmə sonsuzdur, düşünürəm ki, Fizikanın bəzi qanunlarına görə. Sahilə çıxan ən sürətli məxluq, bir anda ən yüksək sürətindən istifadə edərək ovunu tutur
Proqramlaşdırıla bilən Həqiqi Bypass Gitara Efektli Looper Stansiyası, Daldırma Açarlarından istifadə edərək: 11 Addım
Proqramlaşdırıla bilən Həqiqi Baypas Gitara Efektli Looper Stansiyası, Dip Switch -lərdən istifadə edir: Mən gitara həvəskarı və hobbiistəm. Layihələrimin əksəriyyəti gitara alətləri ətrafında baş verir. Mən öz amplifikatörlerimi və bir neçə effektli pedalı qururam. Keçmişdə kiçik bir qrupda oynayırdım və özümü inandırırdım ki, təkərli bir ampa ehtiyacım var
Yolda bir Dəmiryolu Yüksək Dəmiryolu Vasitəsini Necə Qurmaq olar: 10 Addım (Şəkillərlə birlikdə)
Dəmiryolu Hi-Rail vasitəsini yolda necə qurmaq olar: Təhlükəsizlik tədbirləri: Yüksək relsli yük maşını dəmir yoluna qoyan və kömək edən şəxs görünməsi üçün yüksək görünürlüklü paltarlar (məsələn, yelek, sweatshirt, palto) geyinməlidir. yaxınlaşan trafikə görə. Bir çətir və əlcək də taxılmalıdır
Yurt Elektrik Stansiyası/NiMH Şarj Stansiyası: 3 addım
Yurt Elektrik Stansiyası/NiMH Şarj Stansiyası: Məndə bir elektrik stansiyası var. Bir iş tezgahına yüklənən hər şeyi sıxmaq və üzərində lehim/və s. Güclü şeylər siyahısı: Cib telefonu (qırıqdır, amma telefonumun batareyalarını doldurur, buna görə də həmişə qoşulmuşdur və şarj cihazını axıdır