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 030 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.
Attachment:
DCC_decoder_CV1.PNG [ 20.88 KiB | Viewed 9709 times ]
Upisivanje konačne pozicije servo motora na toj istoj Funkciji.
Attachment:
DCC_decoder_CV2.PNG [ 23.4 KiB | Viewed 9709 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