Switch to full style
Post a reply

Re: Arduino kao DCC dekoder za skretnice

28 Oct 2014, 08:19

Stavljam i šemu za ulazni dio DCC dekodera na osnovi Arduina

Što se dekodera tiče, treba ti napon za Arduino + servo motore, ja koristim ispravljače od externih diskova, koji imaju 12V i 5V napajanje, uz to ti ispravljači su dosta jaki za takve stvari.
Običan ispravljač za externi disk ima 3-4A izlaz na 12V i nešto slično na 5V.

Ovako ti otprilike izgleda ulaz DCC signala sa šina
schematic.jpg
schematic.jpg (41.04 KiB) Viewed 9743 times


Ja sam dodao keramičan kondenzator na ulaz zbog smetnji u DCC signalu a dodao sam i LED diodu i otpornik za detekciju DCC signala na ulazu.

Lp,
Sebastjan

Re: Arduino kao DCC dekoder za skretnice

03 Nov 2014, 18:45

Pozdrav,

eto i kratak prikaz kako se programira sam dekoder za servo motore

U programu je poslije prvog uploda potrebno pobrisati // i još jednom uploadati program u Arduino. Originalno izgleda zapis ovako //#define DECODER_LOADED
S tim omogučimo da radi dekoder sa raznim sistemima, a ujedno i postavlja defaultne vrijetnost CV-ova u Arduinu.

Sada smo spremni za samo programiranje CV-ova putem Multimausa ili nekog drugog sistema. Ja sam CV-ove programirao preko Desktop Station programa.

Osnovno objašnjenje default postavku u dekoderu

Funkcija 0

30 Settingi za funkciju: 0=On/Off, 1 =Treperenje LED, 2=kontrola servo motora, 3=Duplo treperenje LED

31 Brzina Treperenje=Brzina treperenja (brže=sporije) , Servo=Brzina pomicanja ručke (brže=sporije)

32 Startna pozicija za funkciju=0 (za servo motore oko 26) - nulta pozicija

33 Krajna Pozicija za funkciju=1 (za servo motore oko 140) - konačna pozicija

34 trenutna pozicija ili vrijednost (za servo motore upotrijebi Startnu poziciju)


Sa tim settingom je korak servo ručke oko 90 stepeni. Vrijednost CV-a za cijelo pomicanje servo motora je 180, što znači da je sredina oko 90. Ja imam na mojim tu vrijednost 85.

Eto i par primjera iz programa
brojevi od 30 - 34 su za Funkciju F0;

{30, 2}, //F0 Config 0=On/Off,1=Blink,2=Servo,3=Double LED Blink

{31, 1}, //F0 Rate Blink=Eate,PWM=Rate,Servo=Rate

{32, 28}, //F0 Start Position F0=0

{33, 140}, //F0 End Position F0=1

{34, 28}, //F0 Current Position

brojevi od 35 do 39 su za Funkciju F1, i prikazuje seetinge za uključivanje i isključivanje LED dioda;

{35, 0}, //F16 Config 0=On/Off,1=Blink,2=Servo,3=Double LED Blink

{36, 1}, // Rate Blink=Eate,PWM=Rate,Servo=Rate

{37, 1}, // Start Position Fx=0

{38, 4}, // End Position Fx=1

{39, 1}, // Current Position

brojevi od 40 do 44 su za Funkciju F2, i prikazuje Duplo treperenje LED dioda

{40, 3}, //F15 Config 0=On/Off,1=Blink,2=Servo,3=Double LED Blink
{41, 1}, // Rate Blink=Eate,PWM=Rate,Servo=Rate
{42, 1}, // Start Position Fx=0

{43, 60}, // End Position Fx=1
{44, 1}, // Current Position


Prikaz upisivanja početne pozicije servo motora na F0.
DCC_decoder_CV1.PNG
DCC_decoder_CV1.PNG (20.88 KiB) Viewed 9729 times


Upisivanje konačne pozicije servo motora na toj istoj Funkciji.
DCC_decoder_CV2.PNG
DCC_decoder_CV2.PNG (23.4 KiB) Viewed 9729 times


Još jedna napomena, dekoder na početku napravi tako zvani self test, ako želite to isključit onda je potrebno u programu izbrisat ovaj dio

for (int i=0; i < numfpins; i++) {
pinMode(fpins[i], OUTPUT);
digitalWrite(fpins[i], 0);
}
for (int i=0; i < numfpins; i++) {
digitalWrite(fpins[i], 1);
delay (tim_delay/10);
}
delay( tim_delay);
for (int i=0; i < numfpins; i++) {
digitalWrite(fpins[i], 0);
delay (tim_delay/10);
}
delay( tim_delay);

To bi bilo to.

Lp,
Sebastjan

Re: Arduino kao DCC dekoder za skretnice

07 Oct 2015, 08:56

Pozdrav,

dok čekam na elemente za detektor zauzeča, sam se odlučio malo poigrati sa programčičem za DCC dekoder servo motora :WR . Sada imam dva rješenja, jedan je da se dekoder postavi kao obična loksa i onda putem F tipki odabiraš kretanje servo motora a drugi da radi kao običan dekoder za skretnice, znači da se servo motori pogone sa tipkama za signale odnosno skretnicama.

Ovaj dekoder imat če mogučnost uključivanja LED dioda, a isto tako može se udružiti više funkcija na jednu F tipku
ili na jednu komandu. Znači, da če se moči upotrijebiti i za ručno upravljanje signala. Udruživanje funkcija je moguče samo u Arduino IDE :digg , prije programiranje dekodera, na žalost :think: .

Testiranje dekodera sa Trix/Marklin Mobile Station 2
DCC_dekoder_01.jpg
DCC_dekoder_01.jpg (108.24 KiB) Viewed 9716 times

DCC_dekoder_02.jpg
DCC_dekoder_02.jpg (104.83 KiB) Viewed 9716 times

DCC_dekoder_03.jpg
DCC_dekoder_03.jpg (103.45 KiB) Viewed 9716 times


Test sa DCC/MM2 Shieldom i Arduinom
DCC_dekoder_05.jpg
DCC_dekoder_05.jpg (114.67 KiB) Viewed 9716 times


Još moram probati sa Roco Multimausem, ako če biti sve ok, onda idemo dalje.

Lp,
Sebastjan

Re: Arduino kao DCC dekoder za skretnice

07 Oct 2015, 10:04

samo da znaš koliko ti zavidim na znanju programiranja ovog sjajnog Arduina
:handgestures-thumbup:

Re: Arduino kao DCC dekoder za skretnice

07 Oct 2015, 10:33

Samo programiranje i nije tako teško.

Najteže je pronači neko rješenje, koje če na kraju raditi na svim sistemima.

Vjeruj mi, da sam do sada uništio par Arduina, kada sam se igrao sa HW rješenjima.

Lp,
Sebastjan

Re: Arduino kao DCC dekoder za skretnice

10 Oct 2015, 16:20

sva ova rijesenja sa arduinom me bas posebno zanimaju :DROOL

reci mi u kojem jeziku programiras to sve cime se arduino sluzi posto sam ja odlucio probat naucit programirat u javi za pocetak
kazem probat jer nisam nikad to radio iako se elektronikom bavim 20 godina a posto kazu covjek uci dok je ziv pa eto

ljepi pozdrav :B

Re: Arduino kao DCC dekoder za skretnice

10 Oct 2015, 19:25

Pozdrav,

programčiče pišem u Arduino IDE

Lp,
Sebastjan

Re: Arduino kao DCC dekoder za skretnice

10 Oct 2015, 19:34

Danas sam napravio i test sa ROCO Multimausem.

Dekoder radi i sa njim, jedino na što se mora paziti je adresa dekodera, odnosno servo motora.
Kod mene je zbog ostalih skretnica bila postavljena adresa dekodera na adresu 5. Sa TRIX, DSmain, ESU radi dekoder na adresi 5 pa dalje, znači prvi servo je na adresi 5, drugi na 6 itd. Kod ROCO MM se ta adresa pomeri za +4, što znači da je prvi servo sada na adresi 9, drugi na adresi 10 itd.

Ako se koristi dekoder samo sa ROCO sistemom, onda se može to popraviti u samom programu, tako da idu adrese od početka.

Eto i jedna slika i kratki video testa.
Roco_MM_servo.jpg
Roco_MM_servo.jpg (100.71 KiB) Viewed 9687 times




Sorry, sve skupa je snimljeno sa mobitelom.

Sada sam dekoder testirao sa TRIX/Marklin, ROCO, ESU i DSmain - DCC/MM2 sistemima i sa svima radi bez problema :dance: .
Još moram rješiti jedan detajl vezan uz samu šemu :WR. Problem su neki servo motori koji zuje kada je uključen DCC signal. To sada rješavam :think: sa blok RC filterima odnosno sa blok kondenzatorima.

Lp,
Sebastjan

Re: Arduino kao DCC dekoder za skretnice

10 Oct 2015, 20:35

:text-bravo:

Re: Arduino kao DCC dekoder za skretnice

11 Oct 2015, 06:57

Eto i razlika u programu

Koda za sve sisteme osim ROCO
normal-address.PNG
normal-address.PNG (9.43 KiB) Viewed 9677 times


I korektura za ROCO
roco-address.PNG
roco-address.PNG (10.86 KiB) Viewed 9677 times


Lp,
Sebastjan
Post a reply