You are currently viewing Programiranje Arduino DCC servo dekoderja

Programiranje Arduino DCC servo dekoderja

  • Post category:DCC

Pripravil sem kratka navodilo za programiranje DCC servo dekoderja.

V programu je potrebno po prvem nalaganju programa, pobrisati  // in še enkrat naložiti program v Arduino. Zapis v programu pred brisanjem //#define DECODER_LOADED

S tem smo omogočili delovanje dekoderja z različnimi sistemi, predvsem pa smo postavili privzete vrednosti CV v samem dekoderju.

Sedaj lahko programiramo CV-je z Multimausom ali z kakšnim drugim sistemom. Sam uporabljam za programiranje i upravljenja program Desktop Station.

Osnovna razllaga privzetih nastavitev v dekoderju.

Funkcija 0

30  Nastavitve za funkciju: 0=On/Off, 1 =Utripanje LED, 2=kontrola servo motora, 3=Dvojno utripanje LED

31  Hitrost  Utripanje=Hitrost utripanja (hitreje=počasneje) , Servo=Hitrost pomika ročke servo motorja (hitreje=počasneje))

32  Začetna Pozicija za funkcijo=0 (za servo motorje je okoli 26) – začetna pozicija

33  Končna  Pozicija za funkciju=1 (za servo motorje je okoli 140) – končna pozicija

34  Trenutna pozicija ali vrednost (za servo motorje uporabi začetno pozicijo)

S temi nastavitvami je korak ročke servo motorja okoli 90 stopinj. Vrednost CV-ja za celoten pomuk servo motorja je 180, kar pomeni da je sredina na 90, na mojih servo motorjih je ta vrednost 85

Še nekaj primerov iz programa

številke od 30 – 34 so za Funkcijo 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

številke  od 35 do 39 so za Funkcijo F1,  prikazuje nastavitve za vklop/izklop LED diod;

{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

številke od 40 do 44 so za Funkcijo F2, prikazuje Dvojno utripanje LED diod

{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

Vnos začetne pozicije servo motorja na F0.
DCC_decoder_CV1

Vnos končne pozicije servo motorja na isti Funkciji.

Še ena opomba, dekoder na začetku naredi self test.
Če tega ne želite, je potrebno v programu pobrisati spodnje vrstice

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);