Агуулгын хүснэгт:

Төмөр замын загвар - Arduino ашиглан DCC командын станц :: 3 алхам
Төмөр замын загвар - Arduino ашиглан DCC командын станц :: 3 алхам

Видео: Төмөр замын загвар - Arduino ашиглан DCC командын станц :: 3 алхам

Видео: Төмөр замын загвар - Arduino ашиглан DCC командын станц :: 3 алхам
Видео: Зочин багш Р.Мижиддорж "Роботын байршил тодорхойлоход интегро сплайн ашиглах нь" сэдэвт вебинар 2024, Долдугаар сарын
Anonim
Image
Image
Arduino код - Товчлууртай командын станц
Arduino код - Товчлууртай командын станц

2018 оны 8-р сард шинэчлэгдсэн-шинэ зааврыг үзнэ үү:

2016 оны 4 -р сарын 28 -ны шинэчлэлт: Одоо Command Station -ийн 16 ирц / цэгийг хянах боломжтой. T1 - T8 эргэлтийг 'B' товчлуураар авах боломжтой T9 - T16 эргэлтийг 'C' товчлуураар авах боломжтой

2016 оны 3 -р сарын 10 -ны шинэчлэлт:

Одоо Command Station дээр 8 ирц / цэгийн хяналтын чадварыг нэмсэн. Arduino кодыг NMRA стандарт багцыг ашиглан эргүүлгийн хувьд шинэчилсэн болно (мөн эргэлтийг хянахад зориулагдсан Lenz / Atlas Compact мэдээллийн пакетын судалгаанд үндэслэсэн болно).

T1 - T8 эргэлтийг "B" товчлуураар авах боломжтой

Өгөгдлийн пакет хүлээн авагчийн хэлхээний зааварчилгаа болон шаардлагатай Arduino кодыг үзнэ үү.

2016 оны 1 -р сарын 18 -ны шинэчлэлт:

Би хэлхээнд одоогийн мэдрэгч резистор (1к5 ом) ба конденсатор (10 uf) нэмж, Arduino кодыг өөрчилж> 3200 мАмп -ийн оргил гүйдэл илрэх үед хүчийг нь таслав. H-bridge-ийн үзүүлэлт нь ачааллын 1 амперт 377 uA гаралтын мэдрэх гүйдлийг хэлдэг.

1.5 к ом эсэргүүцэл нь аналог зүү 6 дээр 1 ампер тутамд 0.565 вольт өгнө. Аналог оролт дээр 1023 алхам хийснээр энэ нь нэг ампер ачаалалд 0.565 * 1023 /5 = 116 болно.

A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (миллиампаар үр дүн өгөх)

Миллиамп дахь ачааллын гүйдлийг TFT дээр харуулна

Бүрэн 4x4 гар нь F1-ээс F8 хүртэлх функцууд болон '#' товчлуураар дамжуулан өөр 10 локос (1-19) агуулдаг (локо 10-аас эхлэн тоон товчлууруудад 10 нэмэх).

Arduino код нь зааврын байтын NMRA стандартыг агуулдаг.

Холбоосыг үзнэ үү

www.nmra.org/sites/default/files/s-9.2.1_20…

(6 -р хуудас нь онцгой ач холбогдолтой юм)

Пакетууд нь хурдны алхам, урт / богино хаяг, Функцийн бүлгийн заавруудын дагуу байрлуулсан болно.

Бүх зааврын байтын өмнө 11111111 (эсвэл идэвхгүй пакет) '1' битийн оршил, дараа нь;

жишээ нь 4 байтын хаяг 0 00000011 0 00111111 0 10000011 0 10111111

loco 3, 128 хурдны алхам, урагш чиглэл ба хурдны 3 -р алхамтай тэнцэнэ (төгсгөлийн байт нь XOR алдааг шалгах)

жишээ нь 3 байтын хаяг 0 00000011 0 10010000 0 10110011

loco 3, 1 -р функцын бүлэг, FL гэрэл ассан дээр нэмэх нь XOR байт (a '0' бит нь байт тус бүрийг тусгаарладаг)

Локо 12 -ийн талаархи видео бичлэгийг үзнэ үү.

F1 - F8 функцууд нь 'A' товчлуур, DIR ('*' товчлуур = чиглэл) FL ('0' товчлуур = гэрэл) болон '#' товчлууруудаар тоон товчлуур дээр 10 -аас 19 хүртэл тоонуудыг өгдөг. 'D' товчлуурыг одоо 'Яаралтай зогсоох' болгон ашиглаж байна.

DCC мэдээллийн эх сурвалж, Arduino кодын вэб дээрх янз бүрийн үйлчилгээ үзүүлэгчдэд баярлалаа.

Ялангуяа энэ төслийг Майкл Бланк болон түүний "Энгийн DCC - командлалын станц" -аас санаа авсан болно.

www.oscale.net/en/simpledcc

4x4 матрицын массив 16 Түлхүүр мембран шилжүүлэгч товчлуур (ebay) 1.75 фунт стерлинг

2.2 инчийн 240x320 Цуваа SPI TFT LCD дэлгэцийн модуль (ebay) 7.19 фунт стерлинг

UNIVERSAL 12V 5A 60W цахилгаан хангамж AC адаптер (ebay) £ 6.49

Nano V3.0 Arduino -ийн хувьд CH340G 5V 16M нийцтэй ATmega328P (ebay) 2 x £ 3.30 = £ 6.60

Arduino R3 мотор жолоочийн модуль LMD18200T (ebay) £ 6.99

Холбогч, утас, vero хавтан, потенциометр ойролцоогоор 3.50 фунт

Нийт £ 32.52

Tft дэлгэцгүй, 1 x наногүй үндсэн команд станц нь 22.03 фунт стерлинг байх болно

[Тэмдэглэл: TFT дэлгэц дээр санах ойн карт нэмж, сонгосон хөдөлгүүрүүдийн зургийг харуулахын тулд кодыг өөрчлөх боломжтой боловч ноорог дээр илүү их санах ой бий болгохын тулд номын сангийн кодыг засварлах шаардлагатай байдаг. Одоогийн ноорогны хэмжээ нь TFT Arduino Nano -ийн хамгийн дээд хэмжээ юм]

Майкл Бланкийн анхны Arduino код нь нэг хөдөлгүүрт зориулагдсан бөгөөд зөвхөн функц удирдлагагүй, товчлуургүй, дэлгэцгүй урагш / урвуу чиглэлд зориулагдсан байв.

Би кодыг өөрчилсөн - 1 - 19 хөдөлгүүр, дэлгэцийн дэлгэц, чиглэл, гэрэл, 8 функц, яаралтай зогсолт, автомат гүйдлийн хязгаар.

LMD18200T гүүр нь 3 ампер хүртэл даацтай тул G масштаб (цэцэрлэгийн галт тэрэг) зэрэг бүх хэмжээсийг ашиглахад тохиромжтой. Цахилгаан хангамж, цахилгаан хэрэгсэл нь цаг агаарын бүх нөхцлийг баталгаажуулж чадаагүй тохиолдолд зөвхөн дотор ашиглахад тохиромжтой. Надад зуслангийн байшинд төмөр замын холболтын утаснууд хананаас дамжин зам руу урсдаг.

Алхам 1: Arduino код - Товчлууртай командын станц

Arduino код нь утастай таарахгүй байгаа схемийн 2 алдааг зааж өгсөн tvantenna2759 -д баярлалаа, одоо шинэчлэгдсэн (2017 оны 10 -р сарын 21).

Одоо Command Station -д 16 ирц нэмэгдэв. Arduino Mini Pro модулийг ашиглан ирц / цэгийн схемийг зааварчилгаанаас үзнэ үү.

Ирцийн хяналтыг багтаасан өөрчлөгдсөн кодыг доор хавсаргасан болно.

Үндсэн дагалдах хэрэгслийн декодерын багц нь: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Lenz (Compact / Atlas) -ийн ашиглан цэгийн хяналтанд ашигладаг пакетыг задлан шинжилж үзэхэд би 1 ба 2 байтын дараах хоёртын пакет форматыг ашигласан болно: tunAddr = 1 1а: 1000 0001 1111 1000 / Ирц 1б: 1000 0001 1111 1001 Ирц 2а: 1000 0001 1111 1010 / Ирц 2б: 1000 0001 1111 1011 Ирц 3а: 1000 0001 1111 1100 / Ирц 3б: 1000 0001 1111 1101 Ирц 4а: 1000 0001 1111 1110 / Ирц 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ---------------- Ирц 5а: 1000 0010 1111 1000 / Ирц 5б: 1000 0010 1111 1001 Ирц 6а: 1000 0010 1111 1010 / Ирц 6б: 1000 0010 1111 1011 Ирц 7а: 1000 0010 1111 1100 / Ирц 7б: 1000 0010 1111 1101 Ирц 8а: 1000 0010 1111 1110 / Ирц 8б: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- 9а ирц: 1000 0011 1111 1000 / 9b ирц: 1000 0011 1111 1001 гэх мэт.

Өөрчлөгдсөн кодоос гаргаж авах: Өөр 2 'бүтэц' мессежийн шинэчлэлтийг нэмж оруулна уу // дагалдах код тайлагч 0x80 & хаяг 1 x.data [1] = 0; }

хүчин төгөлдөр бус өөрчлөлт_түн2 (бүтэц Мессеж & x) {x.data [0] = 0x82; // дагалдах код тайлагч 0x80 & хаяг 2 x.data [1] = 0; }

Хамрах хүрээний хувьд шинэ хоосон зай нэмэх: boolean read_turnout () {delay (20);

boolean өөрчлөгдсөн_t = худал; get_key ();

хэрэв (key_val> = 101 && key_val <= 404 && turn == 1) {

өгөгдөл = 0xf8; // = хоёртын 1111 1000

нэмэлт өөрчлөлт_түн1 (msg [1]);

}

хэрэв (key_val> = 505 && key_val <= 808 && turn == 1) {

өгөгдөл = 0xf8; // = хоёртын 1111 1000

нэмэлт өөрчлөлт_түн2 (msg [1]);

}

хэрэв (key_val == 101 && turn == 1) {

хэрэв (tun1 == 1) {

өгөгдөл | = 0; // t1a

өөрчлөгдсөн_т = үнэн;}

хэрэв (tun1 == 0) {

өгөгдөл | = 0x01; // t1b

өөрчлөгдсөн_т = үнэн;}

}

хэрэв (key_val == 202 && turn == 1) {

хэрэв (tun2 == 1) {

өгөгдөл | = 0x02; // t2a

өөрчлөгдсөн_т = үнэн;

}

хэрэв (tun2 == 0) {

өгөгдөл | = 0x03; // t2b

өөрчлөгдсөн_т = үнэн; }

}

хэрэв (key_val == 303 && turn == 1) {

хэрэв (tun3 == 1) {

өгөгдөл | = 0x04; // t3a

өөрчлөгдсөн_т = үнэн;

}

хэрэв (tun3 == 0) {

өгөгдөл | = 0x05; // t3b

өөрчлөгдсөн_т = үнэн;}

}

хэрэв (key_val == 404 && turn == 1) {

хэрэв (tun4 == 1) {

өгөгдөл | = 0x06; // t4a

өөрчлөгдсөн_т = үнэн;

}

хэрэв (tun4 == 0) {

өгөгдөл | = 0x07; // f4b

өөрчлөгдсөн_t = үнэн;}

}

хэрэв (key_val == 505 && turn == 1) {

хэрэв (tun5 == 1) {

өгөгдөл | = 0; // t5a

өөрчлөгдсөн_т = үнэн;

}

хэрэв (tun5 == 0) {

өгөгдөл | = 0x01; // t5b

өөрчлөгдсөн_t = үнэн;}

}

гэх мэт ………………….

Алхам 2: Arduino код - TFT дэлгэц

Arduino код - TFT дэлгэц
Arduino код - TFT дэлгэц
Arduino код - TFT дэлгэц
Arduino код - TFT дэлгэц
Arduino код - TFT дэлгэц
Arduino код - TFT дэлгэц
Arduino код - TFT дэлгэц
Arduino код - TFT дэлгэц

Дэлгэцийн хэлхээ нь өөрчлөгдсөн кодтой хэвээр байгаа бөгөөд 16 эргэлтийн байдлыг харуулна. Анхаарна уу: Номын сангийн код нь ноорог кодын бараг бүх санах ойг эзэлдэг бөгөөд шинэ функцуудыг ашиглахад бага зай үлдээдэг. Хэрэв хэн нэгэн энд ашигласан TFT -ийн илүү үр дүнтэй номын сангийн файлтай бол надад мэдэгдээрэй.

Алхам 3: Оролтын хянагч

Эргэлтийн хянагч
Эргэлтийн хянагч
Эргэлтийн хянагч
Эргэлтийн хянагч

Бүртгэл / Оноо хянагч хэрхэн хийх талаар зааварчилгааг үзнэ үү.

Бүрэн хэлхээ нь гэрэл, дуу чимээ, эргэх самбар гэх мэт 16 цэг, 15 дагалдах хэрэгслийг хянадаг.

Зөвлөмж болгож буй: