Arduino DCC ovladač s časovačem

Vše pro digitální provoz - dotazy, praxe, návody, postupy, normy, kompatibilita atd.

Moderátoři: Michal Dalecký, Jarda H., Rudolf

Arduino DCC ovladač s časovačem

Příspěvekod Vlada_O » čtv 23 lis, 2023 8:31 pm

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
Vlada_O
 
Příspěvky: 3
Registrován: sob 18 lis, 2023 10:02 am

Re: Arduino DCC ovladač s časovačem

Příspěvekod Pater » čtv 23 lis, 2023 10:21 pm

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
N, DCC, NanoX, Rocrail, Paterweb
Uživatelský avatar
Pater
 
Příspěvky: 471
Registrován: stř 20 črc, 2011 4:52 pm
Bydliště: Karviná

Re: Arduino DCC ovladač s časovačem

Příspěvekod Vlada_O » pát 24 lis, 2023 4:13 pm

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 );
}
}
Vlada_O
 
Příspěvky: 3
Registrován: sob 18 lis, 2023 10:02 am

Re: Arduino DCC ovladač s časovačem

Příspěvekod belgarat » pát 24 lis, 2023 9:47 pm

Rozhodne bych z loop() vyhodil ten delay()...
TT ep. IVa-b; analog + NanoX, DR5000. Pseudoprogramator, pindac nesmyslu
http://modelwiki.klfree.net
belgarat
 
Příspěvky: 2373
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Arduino DCC ovladač s časovačem

Příspěvekod Pater » sob 25 lis, 2023 5:05 am

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 );
N, DCC, NanoX, Rocrail, Paterweb
Uživatelský avatar
Pater
 
Příspěvky: 471
Registrován: stř 20 črc, 2011 4:52 pm
Bydliště: Karviná

Re: Arduino DCC ovladač s časovačem

Příspěvekod Vlada_O » sob 25 lis, 2023 8:56 pm

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.
Vlada_O
 
Příspěvky: 3
Registrován: sob 18 lis, 2023 10:02 am


Zpět na DCC v praxi

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 55 návštevníků