Daftar Isi:
Video: Garden Train - Arduino Wireless NMRA DCC: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Lebih jauh dari instruksi sebelumnya dengan DCC pada sistem rel mati, saya telah mengembangkan ide lebih lanjut dengan Stasiun Komando DCC genggam dengan keypad dan layar LCD. Stasiun Komando berisi semua pengkodean yang diperlukan untuk instruksi NMRA DCC, namun alih-alih terhubung ke rel, data ditransfer oleh modul radio RF24L01+ ke penerima yang dipasang di truk atau di bawah loco - di mana pun ruangan memungkinkan.
Tentu saja, loco Anda harus dilengkapi dengan dekoder dengan kemampuan beban yang sesuai dengan motor mesin.
Langkah 1: Desain Sistem
Arduino Pro Mini adalah inti dari desain. Menggunakan Fritzing untuk mengembangkan sirkuit dan menghasilkan PCB.
Saya dapat menggunakan PCB yang sama untuk pemancar dan penerima sehingga menghemat beberapa biaya.
Pemancar memiliki koneksi untuk keypad dan LCD sedangkan penerima tidak memerlukan ini dan menggunakan jembatan-H untuk memasok output DCC untuk loco.
Pengembangan lebih lanjut mencakup koneksi untuk jembatan-H yang lebih besar jika diperlukan untuk lokasi yang lebih kuat.
PCF8574 dapat dihapus jika Anda menggunakan layar LCD yang disertakan dengan ransel yang memungkinkan koneksi SCA / SCL pada Arduino untuk memberi makan layar hanya dengan menggunakan 2 kabel. Daftar bagian: Total = sekitar £60 untuk Stasiun Komando DCC + 1 penerima Biaya penerima tambahan = £10.00 kira-kira masing-masing. + baterai
Arduino Pro Mini. x 2 = £4.00
Papan tombol membran 4x3 = £3,00
Layar LCD 20 x 4 = £7,00
PCF5874 = £1,80
NRF24L01+. modul radio x 2 = £5,80
Pembuatan PCB dengan diskon 10 (atau papan Vero dapat digunakan) = £24 atau £4,80 untuk diskon 2
3,3 v Regulator = £0,17 (paket 25 dari RS Comp)
5v Regulator LM7805 = £0,30
H-jembatan SN754410ne = £3.00
Baterai AA 2700 mAh Lloytron yang dapat diisi ulang x 12 = £22.00. (baterai dengan nilai maH lebih rendah lebih murah)
Kapasitor, pot, pin, konektor, dll = kira-kira £2,00
Kandang 190x110x60 mm = £8.00
Pemancar - pengisi daya telepon / baterai = £2,00
Langkah 2: Pemancar
Diagram rangkaian ditunjukkan di mana pin D2 hingga D8 pada Arduino Pro Mini terhubung ke keypad. Potensiometer 100k ohm terhubung ke pin Analog A0 untuk penyesuaian kecepatan. Pin SDA dan SCL dari chip PCF8574 terhubung ke pin A4 dan A5 pada Arduino Pro Mini dengan cara menyolder kabel ke pin pada lapisan atas Pro Mini.
Sketsa Arduino terlampir untuk diunduh.
Saya telah menggunakan layar LCD 20 x 4 yang memungkinkan 4 baris informasi dengan 20 karakter per baris. Papan tombol menyediakan menu berikut:
1 hingga 9 = alamat loco * = arah 0 = lampu # = Menu fungsi untuk tombol 1 hingga 8
Deskripsi dasar sketsa Arduino Pro Mini: Baris kode ini mengatur pesan DCC dalam format HEX. struct Pesan pesan[MAXMSG] = {
{ { 0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // pesan menganggur
{ { locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 byte alamat
};
Untuk menyimpan pengaturan untuk setiap loco, serangkaian array diatur sebagai berikut:
int la[20];// array untuk menyimpan nomor loco
int sa[20];// array untuk menyimpan nilai kecepatan
int fda[20];// array untuk menampung direktori
int fla[20];// array untuk menahan lampu
int f1a[20];// array untuk menahan kesenangan1…..
int f8a[20];// array untuk menahan kesenangan8
Untuk mengaktifkan instruksi DCC yang akan diubah saat kita pergi:
Untuk petunjuk kecepatan: void amend_speed (struct Message & x) {
x.data[0] = locoAdr;
x.data[1] = 0x40; // locoMsg dengan 28 langkah kecepatan }
Untuk instruksi Fungsi:
void amend_group1 (Pesan struct & x) {
x.data[0] = locoAdr;
x.data[1] = 0x80; // locoMsg dengan instruksi grup satu 0x80 }
Lingkaran utama sketsa:
void loop(void) { if (read_locoSpeed()) { assemble_dcc_msg_speed();
kirim_data_1(); // kirim data dengan nirkabel
penundaan (10);
kirim_data_3(); // menampilkan data pada layar LCD
kirim_data_4(); // menampilkan data pada monitor serial }
jika (baca_fungsi()) {
assemble_dcc_msg_group1();
kirim_data_1();
penundaan (10);
kirim_data_3(); } }
Perbarui data saat kecepatan berubah:
boolean read_locoSpeed()Ini mendeteksi alamat loco baru, pengaturan kecepatan atau arah dan mengubah 'data' HEX yang sesuai. Di sini saya telah menetapkan 28 langkah kecepatan dan untuk memenuhi standar NMRA S 9.2, data kecepatan harus ditemukan dari tabel pencarian di 'speed_step()'
void speed_step(){ switch (locoSpeed){
kasus 1: data |= 0x02; merusak;
kasus 2: data |= 0x12; merusak;
kasus 3: data |= 0x03; merusak;
………
kasus 28: data |= 0x1F; merusak; }}
Perbarui data saat fungsi berubah:
boolean read_function()
if (fla[locoAdr] == 0) { data = 0x80;
} //lampu kepala mati
if (fla[locoAdr] == 1) {
data = 0x90;
} //lampu kepala menyala
Untuk setiap Fungsi:
if (f2a[locoAdr] == 0) { data |= 0; }. // Fungsi 2 mati
if (f2a[locoAdr] == 1) {
data |= 0x02; // Fungsi 2 pada }'data' dibangun dengan menggabungkan ['|=' compound bitwise atau] kode HEX untuk setiap Fungsi.
Langkah 3: Penerima
Diagram rangkaian ditunjukkan di mana pin 5 dan 6 dari Arduino Pro Mini digunakan untuk menyediakan sinyal DCC yang dipasok ke H-bridge. Pasangan H-jembatan dihubungkan secara paralel untuk meningkatkan kapasitas arus. Tergantung pada arus yang ditarik oleh loco, heatsink mungkin diperlukan untuk dipasang ke perangkat DIP 16 pin, atau jembatan-H tugas berat dapat dihubungkan secara eksternal.
Sketsa Arduino terlampir untuk diunduh. Sinyal DCC dibuat dari jam yang berjalan pada 2MHZ
void SetupTimer2() melakukan pekerjaan ini.
Jam termasuk 'pulsa pendek' (58us) untuk '1' dalam data DCC dan 'pulsa panjang' (116us) untuk '0' dalam data DCC.
Loop void, mendapatkan data dari radio dan jika string yang valid ditemukan, data diubah menjadi data DCC.
void loop(void){ if (radio.available()){ bool done = false; selesai = radio.read(inmsg, 1); // membaca data yang diterima
char rc = inmsg[0]; // masukkan karakter yang dibaca ke dalam array ini
jika (rc != 0){. // jika karakter tidak sama dengan nol
inString.concat(rc); // buat pesan }
if (rc == '\0') { // jika karakter adalah '/0' akhir pesan
Serial.println(inString); // cetak pesan yang sudah dirakit
rangkaian(); // de-konstruksi pesan string untuk mendapatkan instruksi DCC
} } }
Langkah 4: Jalankan Locos
Untuk menghindari gangguan data dari menjalankan beberapa kereta di trek yang sama, Anda harus memutuskan kontak antara roda dan trek untuk setiap loko dan truk yang digunakan.
Nikmati kereta berjalan gratis apa pun kondisi lintasannya - sungguh bedanya! Tidak ada kerumitan, tidak ada start-stop dan tidak perlu pembersihan.
Baterai yang saya gunakan adalah LLoytron AA x 12 yang dapat diisi ulang. Saya telah membuat pengisi daya khusus untuk mereka yang mengisi daya 6 sekaligus. (lihat dapat diinstruksikan)
Direkomendasikan:
Naik Sepeda Solar Garden Light ke RBG: 7 Langkah (dengan Gambar)
Menaikkan Lampu Taman Tenaga Surya ke RBG: Ada banyak video di Youtube tentang memperbaiki lampu taman tenaga surya; memperpanjang masa pakai baterai lampu taman tenaga surya sehingga dapat bekerja lebih lama di malam hari, dan berbagai peretasan lainnya. Instruksi ini sedikit berbeda dari yang Anda temukan di Y
Smart IoT Garden: 10 Langkah (dengan Gambar)
Taman IoT Cerdas: Jika Anda seperti saya, Anda menyukai buah dan sayuran segar di piring Anda, tetapi Anda tidak punya cukup waktu untuk memelihara taman yang layak. Instruksi ini akan menunjukkan kepada Anda bagaimana membangun taman IoT yang cerdas (saya menyebutnya: Green Guard) yang mengairi
Smart Indoor Herb Garden: 6 Langkah (dengan Gambar)
Smart Indoor Herb Garden: Dalam Instructable ini, saya akan menunjukkan kepada Anda bagaimana saya membuat taman herbal indoor pintar saya! Saya memiliki beberapa inspirasi untuk proyek ini dengan yang pertama adalah bahwa saya tertarik pada model Aerogarden di rumah. Selain itu, saya memiliki Arduino Mega yang tidak digunakan dengan
Bolt - DIY Wireless Charging Night Clock (6 Langkah): 6 Langkah (dengan Gambar)
Bolt - DIY Wireless Charging Night Clock (6 Langkah): Pengisian induktif (juga dikenal sebagai pengisian nirkabel atau pengisian tanpa kabel) adalah jenis transfer daya nirkabel. Ini menggunakan induksi elektromagnetik untuk menyediakan listrik ke perangkat portabel. Aplikasi yang paling umum adalah pengisian nirkabel Qi
Cara Membongkar Komputer Dengan Langkah Mudah dan Gambar: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah Mudah dan Gambar: Ini adalah instruksi tentang cara membongkar PC. Sebagian besar komponen dasar bersifat modular dan mudah dilepas. Namun penting bahwa Anda diatur tentang hal itu. Ini akan membantu Anda agar tidak kehilangan bagian, dan juga dalam membuat