Mục lục:
- Bước 1: Mã Arduino - Trạm lệnh có bàn phím
- Bước 2: Mã Arduino - Màn hình TFT
- Bước 3: Bộ điều khiển lượt đi
Video: Đường sắt mô hình - Trạm lệnh DCC sử dụng Arduino :: 3 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Cập nhật tháng 8 năm 2018 - xem mới Có thể hướng dẫn:
Cập nhật ngày 28 tháng 4 năm 2016: Hiện có khả năng điều khiển 16 cử tri / điểm đến Trạm chỉ huy. Lượt đi T1 - T8 khả dụng thông qua phím 'B' Lượt đi T9 - T16 khả dụng qua phím 'C'
Cập nhật ngày 10 tháng 3 năm 2016:
Giờ đây đã thêm khả năng kiểm soát 8 cử tri / điểm vào Trạm chỉ huy. Mã Arduino đã được cập nhật tương ứng bằng cách sử dụng gói tiêu chuẩn NMRA cho lượt đi bỏ phiếu (cũng dựa trên nghiên cứu về gói dữ liệu Lenz / Atlas Compact để kiểm soát lượt đi bỏ phiếu).
Lượt đi T1 - T8 có sẵn thông qua phím 'B'
Xem hướng dẫn trên mạch nhận gói dữ liệu được sử dụng và yêu cầu mã Arduino.
Cập nhật ngày 18 tháng 1 năm 2016:
Tôi đã thêm điện trở cảm nhận dòng điện (1k5 ohm) và tụ điện (10 uf) vào mạch và sửa đổi mã Arduino để cắt nguồn khi phát hiện dòng điện đỉnh> 3200 mAmps. Thông số kỹ thuật cầu H cho biết dòng điện cảm nhận đầu ra là 377 uA trên 1 Amp khi tải.
Điện trở 1,5 k ohm sẽ cung cấp 0,565 volt cho mỗi Amp trên chân tương tự 6. Với 1023 bước trên đầu vào tương tự, điều này mang lại 0,565 * 1023/5 = 116 cho mỗi tải Amp.
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (để đưa ra kết quả tính bằng miliampe)
Dòng tải tính bằng miliampe được hiển thị trên TFT
Bàn phím 4x4 đầy đủ bao gồm các chức năng F1 đến F8 và 10 locos khác (1-19) thông qua phím '#' (để thêm 10 vào các phím số bắt đầu từ loco 10).
Mã arduino bao gồm tiêu chuẩn NMRA cho byte lệnh.
Xem liên kết
www.nmra.org/sites/default/files/s-9.2.1_20…
(trang 6 có liên quan cụ thể)
Các gói tin được sắp xếp theo số bước tốc độ, địa chỉ dài / ngắn và hướng dẫn Nhóm chức năng.
Tất cả các byte lệnh được bắt đầu bằng phần mở đầu là bit '1' 11111111 (hoặc gói tin nhàn rỗi) theo sau là;
ví dụ. Địa chỉ 4 byte 0 00000011 0 00111111 0 10000011 0 10111111
tương đương với loco 3, 128 bước tốc độ, hướng về phía trước và bước tốc độ 3 (byte kết thúc là XOR kiểm tra lỗi)
ví dụ: Địa chỉ 3 byte 0 00000011 0 10010000 0 10110011
tương đương với loco 3, nhóm chức năng 1, đèn FL sáng cộng với byte XOR (bit '0' phân tách từng byte)
Xem video trình diễn kèm theo cho loco 12.
Các chức năng F1 - F8 khả dụng thông qua phím 'A', DIR (phím '*' = hướng) FL (phím '0' = đèn) và phím '#' cung cấp vị trí từ 10 đến 19 trên bàn phím số. Phím 'D' hiện được sử dụng cho 'DỪNG khẩn cấp'.
Cảm ơn các nhà cung cấp khác nhau trên web về các nguồn thông tin DCC và mã Arduino.
Đặc biệt, dự án này được lấy cảm hứng từ Michael Blank và 'Simple DCC - một trạm chỉ huy' của anh ấy
www.oscale.net/en/siamplecc
Bàn phím chuyển đổi màng ma trận 4x4 Mảng 16 phím (ebay) £ 1,75
Mô-đun màn hình LCD 2,2 inch 240x320 SPI TFT nối tiếp (ebay) £ 7,19
BỘ CHUYỂN ĐỔI AC CUNG CẤP ĐIỆN UNIVERSAL 12V 5A 60W (ebay) £ 6,49
Nano V3.0 cho Arduino với CH340G 5V 16M tương thích ATmega328P (ebay) 2 x £ 3,30 = £ 6,60
Mô-đun trình điều khiển động cơ LMD18200T cho Arduino R3 (ebay) £ 6,99
Đầu nối, dây, bảng vero, chiết áp khoảng £ 3,50
Tổng £ 32,52
Trạm lệnh cơ bản không có màn hình tft và 1 x nano sẽ là £ 22,03
[Lưu ý: Có thể thêm thẻ nhớ vào màn hình TFT và sửa đổi mã để hiển thị hình ảnh của các động cơ đã chọn, mặc dù mã thư viện phải được chỉnh sửa để tạo thêm bộ nhớ cho bản phác thảo. Kích thước phác thảo hiện tại là tối đa cho TFT Arduino Nano]
Mã Arduino ban đầu của Michael Blank chỉ dành cho một công cụ, chỉ tiến / lùi khi không có điều khiển chức năng, không có bàn phím và không có màn hình.
Tôi đã sửa đổi mã để bao gồm động cơ 1-19, màn hình hiển thị, hướng, đèn, 8 chức năng, dừng khẩn cấp và giới hạn dòng điện tự động.
Cầu LMD18200T có thể mang tới 3 ampe giúp nó phù hợp với mọi quy mô kể cả thang G (tàu sân vườn). Nguồn điện chính và thiết bị điện tử chỉ thích hợp để sử dụng trong nhà trừ khi bạn có thể làm cho nó chống chọi với mọi thời tiết. Tôi có trạm chỉ huy trong ngôi nhà mùa hè với đường sắt nối dây chạy xuyên tường tới đường ray.
Bước 1: Mã Arduino - Trạm lệnh có bàn phím
Tôi cảm ơn tvantenna2759 đã chỉ ra 2 lỗi trong sơ đồ mạch mà mã Arduino không khớp với hệ thống dây, hiện đã được cập nhật (2017-10-21).
Hiện đã thêm 16 lượt vào Trạm chỉ huy. Xem hướng dẫn trên sơ đồ mạch lượt / điểm sử dụng mô-đun Arduino Mini Pro.
Mã sửa đổi bao gồm kiểm soát cử tri được đính kèm bên dưới.
Gói giải mã phụ kiện cơ bản là: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Từ việc phân tích gói được Lenz (Compact / Atlas) sử dụng để điều khiển điểm, tôi đã sử dụng định dạng gói nhị phân sau cho byte 1 và 2: tunAddr = 1 Lượt đi 1a: 1000 0001 1111 1000 / Lượt đi 1b: 1000 0001 11111001 Lượt đi 2a: 1000 0001 1111 1010 / Lượt đi 2b: 1000 0001 1111 1011 Lượt đi 3a: 1000 0001 1111 1100 / Lượt đi 3b: 1000 0001 1111 1101 Lượt đi 4a: 1000 0001 1111 1110 / Lượt đi 4b: 1000 0001 1111 1111 tunAddr = 2 ------------------------------------------ -------------------------------------------------- ----------------- Lượt đi 5a: 1000 0010 1111 1000 / Lượt đi 5b: 1000 0010 1111 1001 Lượt đi 6a: 1000 0010 1111 1010 / Lượt đi 6b: 1000 0010 1111 1011 Lượt đi 7a: 1000 0010 1111 1100 / Lượt đi 7b: 1000 0010 1111 1101 Lượt đi 8a: 1000 0010 1111 1110 / Lượt đi 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Lượt đi 9a: 1000 0011 1111 1000 / Lượt đi 9b: 1000 0011 1111 1001, v.v. ………
Trích xuất từ mã đã sửa đổi: Thêm 2 thông báo 'struct' cập nhật khác, tránh sửa đổi_tun1 (struct Message & x) {x.data [0] = 0x81; // bộ giải mã phụ kiện 0x80 & địa chỉ 1 x.data [1] = 0; }
void sửa_tun2 (struct Message & x) {x.data [0] = 0x82; // bộ giải mã phụ kiện 0x80 & địa chỉ 2 x.data [1] = 0; }
Thêm khoảng trống mới cho lần lượt: boolean read_turnout () {delay (20);
boolean change_t = false; get_key ();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
dữ liệu = 0xf8; // = nhị phân 1111 1000
sửa đổi_tun1 (msg [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
dữ liệu = 0xf8; // = nhị phân 1111 1000
sửa đổi_tun2 (thư [1]);
}
if (key_val == 101 && turn == 1) {
nếu (tun1 == 1) {
dữ liệu | = 0; // t1a
change_t = true;}
if (tun1 == 0) {
dữ liệu | = 0x01; // t1b
change_t = true;}
}
if (key_val == 202 && turn == 1) {
nếu (tun2 == 1) {
dữ liệu | = 0x02; // t2a
change_t = true;
}
nếu (tun2 == 0) {
dữ liệu | = 0x03; // t2b
change_t = true; }
}
if (key_val == 303 && turn == 1) {
if (tun3 == 1) {
dữ liệu | = 0x04; // t3a
change_t = true;
}
if (tun3 == 0) {
dữ liệu | = 0x05; // t3b
change_t = true;}
}
if (key_val == 404 && turn == 1) {
nếu (tun4 == 1) {
dữ liệu | = 0x06; // t4a
change_t = true;
}
nếu (tun4 == 0) {
dữ liệu | = 0x07; // f4b
change_t = true;}
}
if (key_val == 505 && turn == 1) {
nếu (tun5 == 1) {
dữ liệu | = 0; // t5a
change_t = true;
}
if (tun5 == 0) {
dữ liệu | = 0x01; // t5b
change_t = true;}
}
Vân vân ………………….
Bước 2: Mã Arduino - Màn hình TFT
Mạch hiển thị vẫn được giữ nguyên với một mã sửa đổi để hiển thị trạng thái của 16 lần lượt. Lưu ý: Mã thư viện chiếm gần như tất cả bộ nhớ mã phác thảo, để lại ít chỗ cho các tính năng mới. Nếu ai có tệp thư viện hiệu quả hơn cho TFT được sử dụng ở đây, vui lòng cho tôi biết.
Bước 3: Bộ điều khiển lượt đi
Xem hướng dẫn về cách tạo bộ điều khiển Lượt đi / Điểm.
Mạch hoàn chỉnh điều khiển 16 điểm và 15 phụ kiện như đèn, âm thanh, bàn xoay, v.v.
Đề xuất:
Đường sắt mô hình điểm đến điểm tự động đơn giản: 10 bước (có hình ảnh)
Đường sắt mô hình điểm đến điểm tự động đơn giản: Bộ vi điều khiển Arduino rất tuyệt vời để tự động hóa bố cục đường ray mô hình. Tự động hóa bố cục rất hữu ích cho nhiều mục đích như đưa bố cục của bạn lên màn hình nơi thao tác bố trí có thể được lập trình để chạy tàu theo trình tự tự động. Cái l
Sơ đồ mô hình đường sắt tự động chạy hai đoàn tàu (V2.0) - Dựa trên Arduino: 15 bước (có hình ảnh)
Sơ đồ mô hình đường sắt tự động chạy hai đoàn tàu (V2.0) | Dựa trên Arduino: Tự động hóa bố cục đường ray mô hình bằng vi điều khiển Arduino là một cách tuyệt vời để hợp nhất vi điều khiển, lập trình và mô hình hóa đường ray vào một sở thích. Có một loạt các dự án về chạy tàu tự động trên đường ray kiểu mẫu
Bố cục đường sắt mô hình tự động đơn giản - Điều khiển Arduino: 11 bước (có hình ảnh)
Bố cục đường sắt mô hình tự động đơn giản | Điều khiển bằng Arduino: Bộ vi điều khiển Arduino là một bổ sung tuyệt vời cho việc xây dựng mô hình, đặc biệt là khi xử lý tự động hóa. Đây là một cách đơn giản và dễ dàng để bắt đầu tự động hóa mô hình đường sắt với Arduino. Vì vậy, không cần thêm bất kỳ quảng cáo nào nữa, chúng ta hãy bắt đầu
Làm thế nào để đặt một phương tiện đường sắt cao tốc trên đường ray: 10 bước (có hình ảnh)
Cách Đặt Xe Hi-rail Đường sắt trên Đường ray: Các Biện pháp Phòng ngừa An toàn: Người đặt xe tải Đường sắt cao trên đường ray và người giúp đỡ phải mặc quần áo có tầm nhìn cao (ví dụ: áo vest, áo len, áo khoác) để được nhìn thấy bởi phương tiện giao thông đang tới. Cũng nên đeo bao tay và găng tay để
Sử dụng cảm biến nhiệt độ, nước mưa và rung động trên Arduino để bảo vệ đường sắt: 8 bước (có hình ảnh)
Sử dụng Cảm biến nhiệt độ, nước mưa và rung động trên Arduino để bảo vệ đường sắt: Trong xã hội hiện đại, lượng hành khách đi tàu tăng lên đồng nghĩa với việc các công ty đường sắt phải làm nhiều hơn để tối ưu hóa mạng lưới để theo kịp nhu cầu. Trong dự án này, chúng tôi sẽ giới thiệu trên quy mô nhỏ cách các cảm biến nhiệt độ, nước mưa và rung động o