Stránka 1 z 1

Arduino DCC ovladač s časovačem

PříspěvekNapsal: čtv 23 lis, 2023 8:31 pm
od Vlada_O
Ahojte,

mám prosbu snažím se navrhnout ovladač s arduinem využívající knihovnu https://github.com/Digital-MoBa/XpressNet.
Funkce by měla být taková, že lokomotiva se po stisnutí tlačítka rozjede na v programu stanovenou rychlost a po čase dejmetomu 5 minut sama zastaví.

Při prvních pokusech nejsem schopen nastavit příkaz tak aby se lokomotiva rozjela, něco dělám špatně, ale nemůžu přijít na to co.

ukázka příkazu pro jizdu loko. adresa 5, stupnice 14, rychlost 8

if(buttonJizda.onPressed()) {
XpressNet.setLocoDrive( 0, 5, 14, 8 );
}


Děkuji moc za pomoc
Vláďa

Re: Arduino DCC ovladač s časovačem

PříspěvekNapsal: čtv 23 lis, 2023 10:21 pm
od Pater
Opět ukázka nevhodně položeného dotazu. Pokud chceš relevantní odpověď, doplň alespoň základní údaje. Dost by pomohlo, zveřejnit celý program, jinak vystává mnoho otázek:
Máš ve smyčce tento řádek? :
Kód: Vybrat vše
XpressNet.receive();
Které Arduino je použito (Uno/Nano, Mega, ESP)? Máš nastavenu unikátní XpressNet adresu? Jak je zapojen hardware? Jakou adresu jsi použil v lokomotivě (krátkou, rozšířenou)?
Zkus se podívat do kódu k někomu, komu to funguje např. tady

Re: Arduino DCC ovladač s časovačem

PříspěvekNapsal: pát 24 lis, 2023 4:13 pm
od Vlada_O
Tady jsou doplňující informace.

XpressNet adresa 20 , Arduino Mega, co se týká zapojení tam nemám problém protože komunikace funguje mám ověřeno, pomocí funkce zapnutí a vypnutí centrály.
Lokomotiva má krátkou adresu číslo 5.
Nemůžu přijít na to kde dělám chybu.

Zdrojový kód:

#include <RBD_Timer.h>
#include <RBD_Button.h>

#include <XpressNet.h>
XpressNetClass XpressNet;

#define XNetAddress 20
#define XNetSRPin 2

RBD::Button buttonJizda(10);

void setup() {
XpressNet.start(XNetAddress, XNetSRPin);
}

void loop() {
delay(100);
XpressNet.receive();

if(buttonJizda.onPressed()) {
XpressNet.setLocoDrive(0, 5, 14, 8 );
}
}

Re: Arduino DCC ovladač s časovačem

PříspěvekNapsal: pát 24 lis, 2023 9:47 pm
od belgarat
Rozhodne bych z loop() vyhodil ten delay()...

Re: Arduino DCC ovladač s časovačem

PříspěvekNapsal: sob 25 lis, 2023 5:05 am
od Pater
Vlada_O píše:XpressNet.setLocoDrive(0, 5, 14, 8 );

Změň počet kroků na 0,1,2,3, pro 28 kroků 2, pro 128 kroků 3. Pro 14 kroků hodnotu 0. :D
Ve výsledku
Kód: Vybrat vše
XpressNet.setLocoDrive(0, 5, 0, 8 );

Re: Arduino DCC ovladač s časovačem

PříspěvekNapsal: sob 25 lis, 2023 8:56 pm
od Vlada_O
Pater píše:
Vlada_O píše:XpressNet.setLocoDrive(0, 5, 14, 8 );

Změň počet kroků na 0,1,2,3, pro 28 kroků 2, pro 128 kroků 3. Pro 14 kroků hodnotu 0. :D
Ve výsledku
Kód: Vybrat vše
XpressNet.setLocoDrive(0, 5, 0, 8 );



Děkuji moc za radu, už to funguje jak má. Čekal jsem, že to bude nějaká maličkost.