Електроника и Електротехника | Electronics and Electrical Engineering > Цифрово / дигитално управление | Digital Command Control

Осветление на вагони

<< < (4/13) > >>

IvanC:
CV-та за задаване на бутоните за управление на изходите

CVЗаводска
стойност   ОписаниеCV331Изходи, управлявани от бутона F0 в посока напред:
бит 0-тегло 1-0 = изход F0f не се управлява от бутона;1 = изход F0f се активира при включен бутонбит 1-тегло 2-0 = изход F0r не се управлява от бутона;2 = изход F0r се активира при включен бутонбит 2-тегло 4-0 = изход FA1 не се управлява от бутона;4 = изход FA1 се активира при включен бутонбит 3-тегло 8-0 = изход FA2 не се управлява от бутона;8 = изход FA2 се активира при включен бутонбит 4-тегло 16-0 = изход FA3 не се управлява от бутона;16 = изход FA3 се активира при включен бутонбит 5-тегло 32-0 = изход FA4 не се управлява от бутона;32 = изход FA4 се активира при включен бутонбит 6-тегло 64-0 = изход FA5 не се управлява от бутона;64 = изход FA5 се активира при включен бутонбит 7-тегло 128-0 = изход FA6 не се управлява от бутона;128 = изход FA6 се активира при включен бутон
Стойността на CV33 се образува, като се съберат стойностите на всички битове, например:
Искаме бутон F0 в посока напред да управлява изходи F0f (= 1) и FA1 (= 4), 1 + 4 = 5, което записваме в CV33

Втори пример - бутонът управлява изходи FA1 (= 4), FA2 (= 8 ) и FA3 (= 16): в CV33 записваме 28 (4 + 8 + 16)

CV342Изходи, управлявани от бутона F0 в посока назад; задаването на изходите е еднакво с това за CV33 по-гореCV354Изходи, управлявани от бутона F1; аналогично на CV33 и CV34, но за бутон F1CV368Изходи, управлявани от бутона F2; като CV33 - CV35, но за бутон F2CV3716Изходи, управлявани от бутона F3; като CV33 - CV36, но за бутон F3CV3832Изходи, управлявани от бутона F4; като CV33 - CV37, но за бутон F4CV3964Изходи, управлявани от бутона F5; като CV33 - CV38, но за бутон F5CV40128Изходи, управлявани от бутона F6; като CV33 - CV39, но за бутон F6CV410Изходи, управлявани от бутона F7; като CV33 - CV40, но за бутон F7CV420Изходи, управлявани от бутона F8; като CV33 - CV41, но за бутон F8CV430Изходи, управлявани от бутона F9; като CV33 - CV42, но за бутон F9CV440Изходи, управлявани от бутона F10; като CV33 - CV43, но за бутон F10CV450Изходи, управлявани от бутона F11; като CV33 - CV44, но за бутон F11CV460Изходи, управлявани от бутона F12; като CV33 - CV45, но за бутон F12CV1330Втора група изходи, управлявани от бутона F0 в посока напред:
бит 0-тегло 1-0 = изход FA7 не се управлява от бутона;1 = изход FA7 се активира при включен бутонбит 1-тегло 2-0 = изход FA8 не се управлява от бутона;2 = изход FA8 се активира при включен бутонбит 2-тегло 4-0 = изход FA9 не се управлява от бутона;4 = изход FA9 се активира при включен бутонбит 3-тегло 8-0 = изход FA10 не се управлява от бутона;8 = изход FA10 се активира при включен бутонбитове 4 до 7-тегла 16 до 128-не се използват
Стойността на CV133 се образува, като се съберат стойностите на всички битове, както това е описано за CV33

CV1340Втора група изходи, управлявани от бутона F0 в посока назад; задаването на изходите е еднакво с това за CV133 по-гореCV1350Втора група изходи, управлявани от бутона F1; аналогично на CV133 и CV134, но за бутон F1CV1360Втора група изходи, управлявани от бутона F2; като CV133 - CV135, но за бутон F2CV1370Втора група изходи, управлявани от бутона F3; като CV133 - CV136, но за бутон F3CV1380Втора група изходи, управлявани от бутона F4; като CV133 - CV137, но за бутон F4CV1390Втора група изходи, управлявани от бутона F5; като CV133 - CV138, но за бутон F5CV1400Втора група изходи, управлявани от бутона F6; като CV133 - CV139, но за бутон F6CV1411Втора група изходи, управлявани от бутона F7; като CV133 - CV140, но за бутон F7CV1422Втора група изходи, управлявани от бутона F8; като CV133 - CV141, но за бутон F8CV1434Втора група изходи, управлявани от бутона F9; като CV133 - CV142, но за бутон F9CV1448Втора група изходи, управлявани от бутона F10; като CV133 - CV143, но за бутон F10CV1450Втора група изходи, управлявани от бутона F11; като CV133 - CV144, но за бутон F11CV1460Втора група изходи, управлявани от бутона F12; като CV133 - CV145, но за бутон F12

CV-та за задаване на ефектите на изходите
Описанието на стойностите, които се записват в тези CV-та ще дам по-нататък.

CVЗаводска
стойност   ОписаниеCV1250Ефект на изход F0fCV1260Ефект на изход F0rCV1270Ефект на изход FA1CV1280Ефект на изход FA2CV1290Ефект на изход FA3CV1300Ефект на изход FA4CV1310Ефект на изход FA5CV1320Ефект на изход FA6CV1590Ефект на изход FA7CV1600Ефект на изход FA8
Стойности за избор на ефектите, които се записват в CV-тата на ефектите (CV125 до CV132, CV159 и CV160)
Стойностите са разделени на две групи. Първата група указва посоката, в която ефектът да е активен, а втората група указва кой точно ефект да бъде избран. Стойността, която се записва в съответното CV се образува, като стойностите от двете групи се сумират. Ще дам пример след като опиша стойностите за избор на ефектите.

Група 1 - посока на движение:
0 = ефектът, зададен от група 2 е активен и в двете посоки
1 = ефектът е активен само в избрана посока напред
2 = ефектът е активен само в избрана посока назад
3 = също като стойност 0, т.е. и в двете посоки

Група 2 - избор на ефект:
0 = няма ефект, освен активиране на изхода в определена посока, зададено от група 1
4 = Марс светлина; параметрите на ефекта се управляват от CV54 и CV59
8 = произволно мигаща светлина; параметри в CV55
12 = мигаща светлина; параметри в CV60
16 = единична стробоскопна светлина - еднократно кратко присветване, последвано от пауза; параметри в CV61
20 = двукратна стробоскопна светлина - две кратки присветвания, последвани от пауза; параметри в CV61
24 = ефект на въртящ се "буркан"; параметри в CV62
28 = Gyralite светлина; параметри в CV59
32 = мигаща светлина 1, дясна (ditch light); параметри в CV64
36 = мигаща светлина 1, лява (ditch light); параметри в CV64
40 = мигаща светлина 2, дясна (ditch light); параметри в CV64
44 = мигаща светлина 2, лява (ditch light); параметри в CV64
48 = управление на електрически теглич; параметри в CV115
52 = плавно светване; параметри в CV63
60 = изходът е активен само в покой, ако съответният бутон е включен; в движение изходът се изключва
64 = изключване на изхода (ако е бил включен) след 5 минути работа
68 = изключване на изхода (ако е бил включен) след 10 минути работа
88 = плавно включване и изключване на изхода; параметри в CV190 и CV191
92 = ефект на светване на луминисцентна лампа; параметрите са от генератор на произволни числа

Пример:
Изход FA3 управлява осветлението на кабина 1 (в посока напред), FA4 управлява осветлението на кабина 2 (в посока назад).
Искаме кабината да се управлява от бутон F3 и да свети само в покой.

1. От таблицата за бутон F3 (CV37) виждаме, че FA3 се управлява със стойност 16, а FA4 с 32, следователно в CV37 записваме 48 (16 + 32).
2. Понеже от заводската стойност на CV38 = 32 бутон F4 също управлява FA4, забраняваме това, като в CV38 записваме 0.
3. Ефектът на FA3 ще бъде активен само в посока напред = 1 и изключен в движение = 60, в CV129 записваме 61 (60 + 1)
4. Ефектът на FA4 ще бъде активен само в посока назад = 2 и изключен в движение = 60, в CV130 записваме 62 (60 + 2)


CV-та за управление на ефектите

CVЗаводска
стойност   ОписаниеCV5432Минимален ШИМ на Марс и Gyralite светлините (ефекти 4 и 28)CV5532Минимален ШИМ на произволно мигащата светлина (ефект 8 )CV5915Период на Марс и Gyralite светлините (ефекти 4 и 28) в 0,1 секундиCV6053Мигаща светлина (ефект 12):
Стотици и десетици - период на мигането в 0,2 секунди:0=0,2 секунди период на мигане10=0,4 секунди период на мигане20=0,6 секунди период на мигане. ... . . . .240=5,0 секунди период на миганеЕдиници - времетраене на светенето в проценти от продължителността на периода:0=10%1=20%... . . .9=100%, т.е. ще свети непрекъснатоCV6157Стробоскопичен ефект (ефекти 16 и 20):
Стотици - продължителност на светенето в 0,035 секунди:0=0,035 секунди100=0,075 секунди200=0,105 секундиДесетици - период на ефекта в 0,2 секунди:0=0,2 секунди период10=0,4 секунди период. ... . . . .90=2,0 секунди периодЕдиници - пауза между двете присветвания на двойния стробоскопен ефект в 0,05 секунди:0=0,05 секунди пауза1=0,10 секунди пауза. ... . . . .9=0,50 секунди паузаCV6230Период на "въртене на буркана" (ефект 24) в 0,1 секундиCV6315Време за плавно светване (ефект 52) в 0,1 секундиCV6435Мигащи светлини (ditch lights), ефекти 32, 36, 40 и 44; стойности от 0 до 199:
Стотици - пауза при минимален ШИМ в % от периода:0=10% от периода100=20% от периодаДесетици - минимален ШИМ:0=0% (напълно изгасена светлина)10=5%. ... . . . .90=42%Единици - период на ефекта:0=0,5 секунди1=0,6 секунди. ... . . . .9=1,4 секундиCV1150Управление на електрически теглич (ефект 48):
Стотици и десетици - времетраене на максималния ШИМ в 0,2 секунди:0=0,0 секунди10=0,2 секунди20=0,4 секунди. ... . . . .240=4,8 секундиЕдиници - ШИМ за продължително задържане:0=0% (изключен изход)1=10%. ... . . . .9=90%CV1908Време за плавното включване на изхода (ефект 88) в 0,1 секундиCV1918Време за плавното изключване на изхода (ефект 88) в 0,1 секунди

Продължението следва...

Иван

IvanC:
CV-та за задаване на ШИМ на изходите
Тези ШИМове са максималните за всеки един изход. Там, където параметрите на ефектите задават ШИМ е всъщност процент от максималния ШИМ, указан в долните CV-та. Например ако в едно от долните CV-та е зададена стойност 160 (това са заводските стойности на тези CV-та), това задава маскимален ШИМ от 62,5% (0,625). Ако пък даден ефект задава ШИМ (минимален или максимален) от например 40% (0,4), то резултантният ШИМ ще бъде произведението от двата или в конкретния пример 25% (0,625 * 0,4 = 0,25). Това го дадох само като пример за по-любознателните. Ние нямаме нужда да го смятаме. Веднъж като сме определили какъв искаме да бъде максималният ШИМ, от там нататък спираме да мислим за него и задаваме съответните параметри на ефектите, ако има такива. Удобството на задамане на максималния ШИМ е, че може да сложим по-малки баластни съпротивления на светодиодите или крушки за по-ниско максимално напрежение (тук трябва да се внимава обаче!) и с ШИМа за изхода да зададем желаната яркост на светене. С крушките с по-ниско напрежение трябва да се внимава - ШИМът трябва да бъде програмиран ПРЕДИ да се свържат крушките, за да не изгорят. Аз обаче съм предвидил това до известна степен с въвеждане на заводска стойност 160 (62,5%) в CV-тата на ШИМа.

Стойност 0 означава 0% ШИМ, т.е. изходът ще е постоянно изключен.
Стойност 64 = 25% ШИМ
Стойност 128 = 50% ШИМ
Стойност 160 (заводската) = 62,5% ШИМ
Стойност 192 = 75% ШИМ
Стойност 255 = 100% ШИМ или когато изходът е включен, ШИМ няма да има - ще свети постоянно, освен ако има ефект, който моментно да задава някаква друга стойност на ШИМ на изхода

CVЗаводска
стойност   ОписаниеCV209160ШИМ на изход F0fCV210160ШИМ на изход F0rCV211160ШИМ на изход FA1CV212160ШИМ на изход FA2CV213160ШИМ на изход FA3CV214160ШИМ на изход FA4CV215160ШИМ на изход FA5CV216160ШИМ на изход FA6CV217160ШИМ на изход FA7CV218160ШИМ на изход FA8

CV-та за указване кои функции, задавани от бутоните да се запазват при отпадане на захранването

CVЗаводска
стойност   ОписаниеCV200255Запазване на състоянието на функциите, зададени от бутони F0 до F6бит 0-тегло 1-0 = състоянието на F0f няма да бъде запазено;1 = състоянието на F0f ще бъде запазенобит 1-тегло 2-0 = състоянието на F0r няма да бъде запазено;2 = състоянието на F0r ще бъде запазенобит 2-тегло 4-0 = състоянието на FA1 няма да бъде запазено;4 = състоянието на FА1 ще бъде запазенобит 3-тегло 8-0 = състоянието на FA2 няма да бъде запазено;8 = състоянието на FА2 ще бъде запазенобит 4-тегло 16-0 = състоянието на FA3 няма да бъде запазено;16 = състоянието на FА3 ще бъде запазенобит 5-тегло 32-0 = състоянието на FA4 няма да бъде запазено;32 = състоянието на FА4 ще бъде запазенобит 6-тегло 64-0 = състоянието на FA5 няма да бъде запазено;64 = състоянието на FА5 ще бъде запазенобит 7-тегло 128-0 = състоянието на FA6 няма да бъде запазено;128 = състоянието на FА6 ще бъде запазено
Стойността на CV200 се образува, като се съберат стойностите на всички битове, както е описано в предното ми мнение за CV33.

CV201255Запазване на състоянието на функциите, зададени от бутони F7 до F12бит 0-тегло 1-0 = състоянието на FA7 няма да бъде запазено;1 = състоянието на FA7 ще бъде запазенобит 1-тегло 2-0 = състоянието на FA8 няма да бъде запазено;2 = състоянието на FA8 ще бъде запазенобит 2-тегло 4-0 = състоянието на FA9 няма да бъде запазено;4 = състоянието на FА9 ще бъде запазенобит 3-тегло 8-0 = състоянието на FA10 няма да бъде запазено;8 = състоянието на FА10 ще бъде запазенобитове 4 до 7-тегла 16 до 128-не се използват
Стойността на CV201 се образува, като се съберат стойностите на всички битове, както е описано в предното ми мнение за CV133.

CV204255Памет на състоянието на F0 до F6; програмата сама пише в това CVCV205255Памет на състоянието на F7 до F12; и тук програмата сама пише в това CV
Както се вижда от заводските стойности на CV-тата за запазване на състоянията на функциите, всички функции са включени и се запазват. По този начин всички изходи на декодера ще бъдат включени в аналогов режим, а и в DCC режим, когато централата не подава команди към адреса на декодера.

Заводските стойности на ефектите са 0, т.е. ефекти няма и изходите се активират и в двете посоки, т.е. отново се са постоянно активни в аналогов режим или в DCC без декодерът да е изрично адресиран. Това съм го направил умишлено, за да може вагоните, с осветление управлявано от декодер да светят постоянно в аналогов режим - както би било при напълно аналогово осветление.


CV-та за задаване на активното ниво на изходите

CVЗаводска
стойност   ОписаниеCV225255Активно ниво на изходите F0f до FA6:бит 0-тегло 1-активно ниво на изход F0f:0 = ниско;1 = високобит 1-тегло 2-активно ниво на изход F0r:0 = ниско;2 = високобит 2-тегло 4-активно ниво на изход FA1:0 = ниско;4 = високобит 3-тегло 8-активно ниво на изход FA2:0 = ниско;8 = високобит 4-тегло 16-активно ниво на изход FA3:0 = ниско;16 = високобит 5-тегло 32-активно ниво на изход FA4:0 = ниско;32 = високобит 6-тегло 64-активно ниво на изход FA5:0 = ниско;64 = високобит 7-тегло 128-активно ниво на изход FA6:0 = ниско;128 = високо
Стойността на CV225 се образува, като се съберат стойностите на всички битове, както е описано в предното ми мнение за CV33.

CV226255Активно ниво на изходите FA7 до FA10:бит 0-тегло 1-активно ниво на изход FA7:0 = ниско;1 = високобит 1-тегло 2-активно ниво на изход FA8:0 = ниско;2 = високобит 2-тегло 4-активно ниво на изход FA9:0 = ниско;4 = високобит 3-тегло 8-активно ниво на изход FA10:0 = ниско;8 = високобитове 4 до 7-тегла 16 до 128-не се използват
Стойността на CV226 се образува, като се съберат стойностите на всички битове, както е описано в предното ми мнение за CV133.



CV за прочитане на стойностите на CV-тата през серийния порт

CVЗаводска
стойност   ОписаниеCV2560При запис в това CV на стойност различна от нула, стойностите на всички CV-та, дефинирани в програмата, се предават по серийния порт

Иван

IvanC:
Няколко коментара по декодера.

Декодерът може да се настройва чрез запис в CV-тата както на работния участък (Programming on the Main или PoM), така и на програмния. Препоръчвам да се настройва на работния участък, защото става по-бързо. При запис в CV на програмния участък, станцията обикновено се опитва и да чете CV-то от декодера. Тъй като този декодер няма как да отговори на станцията, тя изчаква известно време докато и дойде тайм-аута и това води до съществено забавяне.

Описанието на CV-тата може да изглежда много сложно. Донякъде е така, но няма нужда човек да се плаши. Ако няма да използвате ефекти, настройките чрез CV-тата не са толкова много. Едно от нещата, които се възприемат малко трудно от незапознатите с двоичната система и организацията на битовете в байтове е това, което съм описал в някои CV-та като

бит 0 - тегло 1
бит 1 - тегло 2
бит 2 - тегло 4
бит 3 - тегло 8
бит 4 - тегло 16
и т.н.

Вместо тези "тегла" на битовете, гледайте на 8-те бита (от 0 до 7) като на 8 банкноти със стойности 1, 2, 4, 8, 16, 32, 64 и 128. Да вземем CV33 до CV40 - всеки изход е представен със съответната банкнота:

F0f струва 1 (лев, например)
F0r струва 2 (лева)
FA1 струва 4 (лева)
FA2 струва 8 (лева)
FA3 струва 16 (лева)
FA4 струва 32 (лева)
FA5 струва 64 (лева)
FA6 струва 128 (лева)

Защо точно тези стойности? Ами защото системата в компютрите (каквото е декодерът) е двоичната, демек "тука има, тука нема" и 1, 2, 4, 8, 16, 32, 64, и 128 са първите 8 степени на двойката. 8 байта - 8 степени на двойката, от нулевата (1) до седмата (128).

И ако аз примерно искам с бутона F1 да управлявам изходи F0r (който струва 2 лева), FA2 (струва 8 лева) и FA5 (струва 64 лева), ще трябва на съответното CV, което за бутона F1 e CV35, да дам 2 + 8 + 64 (лева) или общо 74 (лева), защото толкова общо струва управлението на тези три изхода с бутона F1. Или да се върнем на другата терминология, в CV35 ще трябва да запишем стойност 74 или за по-кратко го написвам:

CV35 = 74.

И понеже обещах за пример да дам настройките на CV-тата за багажния вагон, ето ги - CV-тата, които се променят са почернени:

От заводските настройки започвам с промяната на това кой бутон кой изход да управлява:

1. Изходи:
1.1. Към FA1 са свързани светлините на двете багажни отделения.
1.2. Към FA2 са свързани светлините в преддверията.
1.3. Към FA3 са свързани светлините в купето на началник-влака, амвона и тоалетната.

2. Бутони за управление:
2.1. Бутон F1 (CV35) управлява светлините на багажните отделения, т.е. FA1 (4):
Тук няма какво да се настройва, защото от заводската стойност на CV35 = 4 това вече е направено.

2.2 Бутон F3 (CV37) управлява светлините в купето, амвона и тоалетната, т.е. FA3 (16):
И тук няма какво да се настройва, защото от заводската стойност на CV37 = 16 това е направено вече.

2.3. Бутон F5 (CV39) управлява светлините в предверията, т.е. FA2 (8 ):
CV39 = 8
и понеже от заводските настройки бутон F2 (CV36) управлява FA2 (8 ), а не искам това:
CV36 = 0 (бутон F2 не управлява изходи)

Ако бях решил с бутон F2 да упрвалявам FA2, нямаше да има нужда от промени в CV-тата. Но главата ми е свикнала с бутона F2 да управлява свирката на локомотива, а и F2 на тротъла е настроен като моментен бутон и не искам да го променям, та реших с F5 да управлявам светлините в предверията.

2.4. И накрая бутон F0 управлява всички светлини независимо от посоката на движение:
CV33 = 28 (FA1 = 4 + FA2 = 8 + FA3 = 16) - бутон F0 в посока напред
и същото за
CV34 = 28 (FA1 = 4 + FA2 = 8 + FA3 = 16) - бутон F0 в посока назад

3. Ефекти не използвам, така че не пипам CV-тата за избор на ефекти, както и CV-тата за задаване на параметрите на ефектите.

4. Осветлението ми се видя слабичко и затова "пипнах" CV-тата на ШИМовете на FA1, FA2 и FA3 - на максимална яркост:
CV211 = 255
CV212 = 255
CV213 = 255

5. И последно смених адреса от заводския 3 на 7986 (последните 4 цифри от DRG-ейския номер на вагона 107 986):
7986 / 256 = 31,195 - вземам цялата част, т.е. 31; 31 + 192 = 223
CV17 = 223
7986 / 256 = 31.195 - пак вземам цялата част, т.е. 31; 7986 - 31 * 256 = 7986 - 7936 = 50
CV18 = 50
и активирам дългия адрес, като към заводската стойност на CV29 = 6 прибавя 32:
CV29 = 38

Това е всичко - промених 10 CV-та.

Ако бях решил да използвам бутона F2 за осветлението на предверията, бях сложил баластни съпротивления с по-малки стойности и използвал къс адрес, променените CV-та щяха да намалеят на само 3 - CV3 за късия адрес и CV33 и CV34 за бутона F0. По-елементарно от това просто няма.


Иван

angel.s:
Браво,но ми се струва сложно и май няма да се спрсвя.  :unsure:

IvanC:

--- Цитат на: angel.s link=topic=5553.msg123170#msg123170 date=1644146748 ---Браво,но ми се струва сложно и май няма да се спрсвя.  :unsure:

--- Край на цитат ---

Кое ти се струва сложно? Когато на мен нещо ми изглежда сложно, разделям го на по-прости части. Изпълнявам всяка част и така изпълнявам цялата задача. Така направих и с написването на програмата. Първо с проби разбрах как се работи с DCC библиотеката, после започнах да чета командите от станцията, след това да обръщам командите в управление на изходи. Последва запомнянето на функциите в CV-та, добавяне на ефекти един по един. Стигнах до ефектите, които зависят от ускорението и спирането и направих елементарното управление на мотор. Накрая захърших ефектите, които зависят от ускорението и забавянето.

CV-тата създавах в процеса на писане на програмата. Когато ми трябваха параметри за дадена част от програмата, избирах в кое CV какви параметри и в какъв формат да запазвам.

Какво точно искаш да направиш? Ако знам това, ще мога да помогна с конкретни обяснения.

Иван

Навигация

[0] Списък на темите

[#] Следваща страница

[*] Предходна страница

Премини на пълна версия