Isi kandungan:
- Langkah 1: Arduino Code - Command Station Dengan Pad Kekunci
- Langkah 2: Arduino Code - TFT Display
- Langkah 3: Pengawal Pemilih
Video: Model Keretapi - Stesen Perintah DCC Menggunakan Arduino :: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Dikemas kini Ogos 2018 - lihat Instructable baru:
Kemas kini 28 April 2016: Kini 16 keupayaan kawalan perolehan / mata ke Command Station. Pemilih T1 - T8 boleh didapati melalui kekunci 'B'
Kemas kini 10 Mac 2016:
Kini ditambahkan 8 keupayaan kawalan keluar / mata ke Command Station. Kod Arduino telah diperbaharui dengan sewajarnya menggunakan paket standard NMRA untuk jumlah pemilih (juga berdasarkan kajian paket data Lenz / Atlas Compact untuk kawalan pemilih).
Pemilih T1 - T8 boleh didapati melalui kekunci 'B'
Lihat petunjuk di litar penerima paket data yang digunakan dan kod Arduino diperlukan.
Kemas kini 18 Jan 2016:
Saya telah menambahkan perintang rasa semasa (1k5 ohm) dan kapasitor (10 uf) ke litar dan mengubah kod Arduino untuk memotong kuasa apabila arus puncak> 3200 mAmps dikesan. H-bridge spec menyatakan arus output output 377 uA per 1 Amp dalam muatan.
Perintang 1.5 k ohm akan memberikan 0.565 volt per Amp pada pin analog 6. Dengan 1023 langkah pada input analog, ini memberikan 0.565 * 1023/5 = 116 per beban Amp.
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (untuk memberikan hasil dalam miliamp)
Arus beban dalam miliamp ditunjukkan pada TFT
Papan kekunci 4x4 penuh merangkumi fungsi F1 hingga F8 dan 10 lokos lain (1-19) melalui kekunci '#' (untuk menambah 10 ke kekunci angka bermula dari loko 10).
Kod arduino merangkumi standard NMRA untuk bait arahan.
Lihat pautan
www.nmra.org/sites/default/files/s-9.2.1_20…
(halaman 6 sangat relevan)
Paket disusun mengikut bilangan langkah laju, alamat panjang / pendek dan arahan Kumpulan Fungsi.
Semua bait arahan didahului dengan mukadimah bit '1' 11111111 (atau paket idle) diikuti oleh;
cth. Alamat 4 bait 0 00000011 0 00111111 0 10000011 0 10111111
sama dengan loko 3, 128 langkah kelajuan, arah maju dan langkah laju 3 (bait akhir adalah pemeriksaan ralat XOR)
cth: Alamat 3 bait 0 00000011 0 10010000 0 10110011
sama dengan loko 3, kumpulan fungsi 1, lampu FL menyala ditambah byte XOR (bit '0' memisahkan setiap bait)
Lihat video demonstrasi tertutup untuk loko 12.
Fungsi F1 - F8 tersedia melalui kekunci 'A', DIR ('*' key = direction) FL ('0' key = lights) dan key '#' memberikan lokos 10 hingga 19 pada papan kekunci berangka. Kekunci 'D' kini digunakan untuk 'STOP Kecemasan'.
Terima kasih kepada pelbagai penyedia di web untuk sumber maklumat DCC dan kod Arduino.
Khususnya, projek ini diilhamkan oleh Michael Blank dan 'Simple DCC - sebuah stesen arahan'
www.oscale.net/en/simpledcc
Pad Kekunci Suis Membran 4x4 Matriks Array 16 (ebay) £ 1.75
Modul Paparan LCD Serial SPI TFT 2,2 inci 240x320 (ebay) £ 7,19
UNIVERSAL 12V 5A 60W BEKALAN KUASA AC ADAPTER (ebay) £ 6.49
Nano V3.0 Untuk Arduino dengan CH340G 5V 16M serasi ATmega328P (ebay) 2 x £ 3,30 = £ 6,60
Modul Pemandu Motor LMD18200T untuk Arduino R3 (ebay) £ 6,99
Penyambung, wayar, papan vero, potensiometer kira-kira £ 3,50
Jumlah £ 32.52
Stesen arahan asas tanpa skrin tft dan 1 x nano adalah £ 22.03
[Catatan: Anda dapat menambahkan kartu memori ke layar TFT dan mengubah kod untuk menampilkan gambar mesin yang dipilih, walaupun kode perpustakaan harus diedit untuk membuat lebih banyak memori untuk sketsa. Ukuran lakaran semasa adalah maksimum untuk TFT Arduino Nano]
Kod Arduino yang asli oleh Michael Blank adalah untuk satu enjin, maju / mundur sahaja tanpa kawalan fungsi, tanpa papan kekunci dan tanpa paparan.
Saya telah mengubah kod untuk memasukkan 1 - 19 mesin, skrin paparan, arah, lampu, 8 fungsi, berhenti kecemasan dan had arus automatik.
Jambatan LMD18200T boleh memuat hingga 3 amp yang menjadikannya sesuai untuk semua skala termasuk skala G (kereta kebun). Bekalan kuasa elektrik dan elektronik sesuai untuk kegunaan dalaman sahaja melainkan anda boleh menjadikannya tahan cuaca. Saya mempunyai stesen komando di rumah musim panas dengan wayar penghubung rel keluar melalui dinding ke trek.
Langkah 1: Arduino Code - Command Station Dengan Pad Kekunci
Terima kasih kepada tvantenna2759 kerana menunjukkan 2 ralat dalam rajah litar di mana kod Arduino tidak sepadan dengan pendawaian, kini dikemas kini (21 Okt 2017).
Kini menambah 16 orang yang hadir ke Command Station. Lihat arahan pada rajah litar perolehan / mata menggunakan modul Arduino Mini Pro.
Kod yang diubahsuai termasuk kawalan pemilih dilampirkan di bawah.
Paket decoder Aksesori Asas adalah: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Dari menganalisis paket yang digunakan oleh Lenz (Compact / Atlas) untuk kawalan titik, saya telah menggunakan format paket binari berikut untuk byte 1 dan 2: tunAddr = 1 Turnout 1a: 1000 0001 1111 1000 / Perolehan 1b: 1000 0001 1111 1001 Perolehan 2a: 1000 0001 1111 1010 / Perolehan 2b: 1000 0001 1111 1011 Perolehan 3a: 1000 0001 1111 1100 / Perolehan 3b: 1000 0001 1111 1101 Perolehan 4a: 1000 0001 1111 1110 / Perolehan 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Jumlah Perolehan 5a: 1000 0010 1111 1000 / Jumlah Perwakilan 5b: 1000 0010 1111 1001 Jumlah Perolehan 6a: 1000 0010 1111 1010 / Perolehan 6b: 1000 0010 1111 1011 Perolehan 7a: 1000 0010 1111 1100 / Perolehan 7b: 1000 0010 1111 1101 Perolehan 8a: 1000 0010 1111 1110 / Perolehan 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Perolehan 9a: 1000 0011 1111 1000 / Perolehan 9b: 1000 0011 1111 1001 dll ………
Ekstrak dari kod yang diubah: Tambahkan 2 lagi kemas kini mesej 'struct' dan jangan ubah_tun1 (struct Pesan & x) {x.data [0] = 0x81; // penyahkod aksesori 0x80 & alamat 1 x.data [1] = 0; }
batal edit_tun2 (struct Pesan & x) {x.data [0] = 0x82; // penyahkod aksesori 0x80 & alamat 2 x.data [1] = 0; }
Tambahkan kekosongan baru untuk pemilih: boolean read_turnout () {delay (20);
boolean berubah_t = salah; get_key ();
jika (key_val> = 101 && key_val <= 404 && turn == 1) {
data = 0xf8; // = binari 1111 1000
edit_tun1 (msg [1]);
}
jika (key_val> = 505 && key_val <= 808 && turn == 1) {
data = 0xf8; // = binari 1111 1000
edit_tun2 (msg [1]);
}
jika (key_val == 101 && turn == 1) {
jika (tun1 == 1) {
data | = 0; // t1a
berubah_t = benar;}
jika (tun1 == 0) {
data | = 0x01; // t1b
berubah_t = benar;}
}
jika (key_val == 202 && turn == 1) {
jika (tun2 == 1) {
data | = 0x02; // t2a
berubah_t = benar;
}
jika (tun2 == 0) {
data | = 0x03; // t2b
berubah_t = benar; }
}
jika (key_val == 303 && turn == 1) {
jika (tun3 == 1) {
data | = 0x04; // t3a
berubah_t = benar;
}
jika (tun3 == 0) {
data | = 0x05; // t3b
berubah_t = benar;}
}
jika (key_val == 404 && turn == 1) {
jika (tun4 == 1) {
data | = 0x06; // t4a
berubah_t = benar;
}
jika (tun4 == 0) {
data | = 0x07; // f4b
berubah_t = benar;}
}
jika (key_val == 505 && turn == 1) {
jika (tun5 == 1) {
data | = 0; // t5a
berubah_t = benar;
}
jika (tun5 == 0) {
data | = 0x01; // t5b
berubah_t = benar;}
}
dan lain-lain ………………….
Langkah 2: Arduino Code - TFT Display
Litar paparan tetap sama dengan kod yang diubah untuk menunjukkan status 16 jumlah pemilih. Nota: Kod perpustakaan mengambil hampir semua memori kod lakaran yang meninggalkan sedikit ruang untuk ciri baru. Sekiranya ada yang mempunyai fail perpustakaan yang lebih cekap untuk TFT yang digunakan di sini, beritahu saya.
Langkah 3: Pengawal Pemilih
Lihat petunjuk mengenai cara membuat pengawal Giliran / Mata.
Litar lengkap mengawal 16 titik dan 15 aksesori seperti lampu, bunyi, pusing putar, dll.
Disyorkan:
WiFi DCC Command Station untuk Model Keretapi: 5 Langkah
WiFi DCC Command Station for Model Railway: Diperbarui 5 April 2021: sketsa baru dan mod ke komponen litar. Sketsa baru: command_station_wifi_dcc3_LMD18200_v4.inoSistem DCC baru menggunakan WiFi untuk menyampaikan arahan 3 pengguna pendikit telefon bimbit / tablet boleh digunakan pada susun atur yang ideal untuk
Tata Letak Kereta Api Model Automatik yang Mengendalikan Dua Keretapi (V2.0) - Berdasarkan Arduino: 15 Langkah (dengan Gambar)
Tata Letak Kereta Api Model Automatik yang Mengendalikan Dua Keretapi (V2.0) | Berasaskan Arduino: Mengautomasikan susun atur kereta api model menggunakan mikrokontroler Arduino adalah cara terbaik untuk menggabungkan pengawal mikro, pengaturcaraan dan model kereta api menjadi satu hobi. Terdapat banyak projek yang tersedia untuk menjalankan kereta api secara autonomi pada model kereta api
Sistem Maklumat Ketersediaan Keretapi Keretapi - FGC: 8 Langkah
Sistem Maklumat Ketersediaan Keretapi Keretapi - FGC: Projek ini berdasarkan pelaksanaan, dalam skala, kereta api yang memungkinkan orang-orang yang berada di stesen mengetahui tempat duduk yang percuma. Untuk menjalankan prototaip, perisian Arduino UNO digunakan bersama dengan Pemprosesan untuk
NOMBOR Matrik Perintah Perintah: 5 Langkah
NOMBOR Matriks Prompt Perintah: Instructable terakhir saya dengan Matrix hanya dengan huruf, tetapi ini adalah fail kumpulan yang menggunakan nombor, dan kelihatan lebih realistik. Matriks sebenar menggunakan huruf Jepun dan simbol lain, tetapi yang ini hanya menggunakan nombor dalam pesanan yang berbeza dan
Buat Tetingkap Perintah Perintah dengan Cara Mudah: 3 Langkah
Buat Tetingkap Perintah Perintah dengan Cara Mudah: Saya tahu bahawa ini telah dilakukan sebelumnya, tetapi versi saya sedikit berbezaOkay, jadi anda ingin mencuba beberapa trik arahan cepat, tetapi anda tidak dapat mengetahui bagaimana sebenarnya arahan arahan terbuka. (Ini akan terjadi di kebanyakan sekolah, atau