Doel:€250.00
Donaties:€197.50

Per saldo:€-52.50

Steun ons nu!
Actie: steun €2.50 via de Wim Vink kalender 2021!

Laatst bijgewerkt
op 18-09-2020
Algemeen

De stichting

Recente berichten

Zoekplaatje NS 3726 door Dpc Fo
Vandaag om 00:13:49
Een secundair lijntje in de Puy de Dome en de (Haute) Loire anno 1968 door barry1972
Vandaag om 00:07:56
Heuvelland, een tentoonstellingsbaantje in H0 door barry1972
Vandaag om 00:01:15
Piko NS1100, materieelbespreking door barry1972
22 september 2020, 23:52:49
Zonder fouten een Arduino programmeren door Hennik
22 september 2020, 23:44:45
Polarisatie ofwel keerlus schakeling met een sectie en lichtsluis door Klaas Zondervan
22 september 2020, 23:41:16
Wielstel draaiend vastzetten? door Te 2/2
22 september 2020, 23:39:10
Van Biervliet 2552 blijft staan met draaiende motor. door Jeroen Water
22 september 2020, 23:28:16
Zelfbouw rails en wissels H0, waar te beginnen door laurent
22 september 2020, 23:12:13
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door iarnrod
22 september 2020, 23:11:18
Toon hier je nieuwe (model-) spooraanwinst(en)... door barry1972
22 september 2020, 23:07:24
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
22 september 2020, 23:04:05
Tillig DDR DR Bme 2de klasse rijtuig type Y/B 70 H0 door stefan88
22 september 2020, 22:52:24
Draaistelwagens en Wielstelwagens door Freek Jonkers
22 september 2020, 22:50:11
Projekt 083-338 door Falkenberg
22 september 2020, 22:28:08
Welke manier van handbediening op wissels? door Klaas Zondervan
22 september 2020, 22:26:03
Hoch über dem Fluss Albula (Project 0m, iets heel anders: Rhätische Bahn) door arnout
22 september 2020, 22:24:20
Een kleine baan in een grote schaal: Laden en lossen in 1:22.5 door NS1220
22 september 2020, 22:16:05
BNLS-module: "Grasland" door Edsko Hekman
22 september 2020, 22:06:07
Bahnstrecke 5867 door Frank 123
22 september 2020, 21:47:29
Onlangs gespot - gefotografeerd, de foto's door Floris
22 september 2020, 21:33:22
Pimp my Hippel door De eerste Ivo
22 september 2020, 21:06:53
Baanbouw Frycio; eindelijk ruimte door Frycio82
22 september 2020, 21:02:26
Roco Vectron DC voorzien van schijnwerpers en cabineverlichting door MattieGraafschap
22 september 2020, 20:47:24
NS 5500 / HSM 700 spoor 0 / 1 door FritsT
22 september 2020, 20:41:58
Bouwproject Zolderspoorbaan DB epoche III Hoofdstation met zijlijn door Frank 123
22 september 2020, 20:18:13
Zimo sounddecoder, instellen maximum snelheid door VAM65
22 september 2020, 20:06:23
De bouw van een modulebaan met Nederlands Landschap door phdirk
22 september 2020, 19:47:12
Uitlezen decoder met Twin-Center door lokmuis
22 september 2020, 19:41:50
Crafftiq start met de ontwikkeling en productie van modeltreinen door ronald1956
22 september 2020, 19:22:45
  

Auteur Topic: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd  (gelezen 2291 keer)

meino

  • Offline Offline
  • Berichten: 840
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #30 Gepost op: 21 mei 2020, 22:15:12 »
Misschien een gekke vraag. Ik meen me te herinneren dat je op het XpressNet een Master mag hebben en meerdere slaves. Ik weet dat er ook voor de Arduino 2 bibliotheken ion omloop zijn, een voor een Arduino als master en een voor een Arduino als slave. Is het misschien zo, dat zowel Koploper als het paneel zich als master gedragen waardoor ze afzonderlijk werken maar niet beide tegelijkertijd?

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

Hans sprinter

  • Offline Offline
  • Berichten: 1495
  • Vriend van vlaflip
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #31 Gepost op: 21 mei 2020, 22:49:33 »
Meino, nee, Arduino noch Koploper zijn master, maar hebben een Xpressnet nummer tussen 1 en 31. In dit geval is de Muis de master...
Ik denk dat je de situatie met een Multimuis door elkaar haalt. Bij de Lenz centrale is deze Master, en kan de Xpressnet bus volgens de oude
specificatie 350mA levereen, terwijl dit voor V3.6 meer lijkt te zijn. Ik voed nu 4 Mega's als TCO en dat geeft bij de MM geen problemen.
Ik heb dus een aardig schakelboxje werken, helaas nog niet alle schakelaars binnen, maar alles werkt al en is getest.
Ik heb eigen printen laten maken in China, en die werkten eerst ook niet, maar daar bleek een foutje in de schema's te zitten,
veroorzaakt door een onduidelijk moeder schema. Fout opgespoort, en alles werkt op de Xpressnet bus voeding en mijn arduino sniffer detecteerd alle commando's
correct. Ik gebruik de basis van https://www.gadis.cz/dcc/tco.htm
Helaas was dat maar tot 256 wissels geschikt en heb uj deze uitgebreid tot 1024. Ook de railstraten werken en ik heb een vrij programmeerbare versie gemaakt.
Leuk spul en werkt erg makkelijk!
Groetjes, Hans

PS: de capaciteit van de ATmel op de Multimuis is erg beperkt, hetgeen zich uit in ophangen. Als je de muis blijft gebruiken zul je inderdaad conflicten blijven ondervinden.
Deze worden met name door koploper veroorzaakt. Wat deze op de bus "flikkert" is ongelooflijk, en het lijkt erop of alle locomotieven uit koploper constant worden aangestuurd,
en die hoeveelheid kan de muis weer niet aan. Helaas zelf moeten ondervinden tijdens het testen. De muis slaat geregeld vast, oorzaak het gekoppelde koploper. Even een arduino sniffer aan je DCC hangen, dan herken je zo wat er gebeurd....

meino

  • Offline Offline
  • Berichten: 840
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #32 Gepost op: 21 mei 2020, 23:53:18 »
Is het niet zo dat de master dan de ExpresNet nummers toewijst? En hoe gebeurd dat, volgorde van de connectoren? Het lijkt er dan op dat de Arduino code van het paneel daar niet goed mee omgaat en op de een of andere wijze het zelfde ExpressNet nr als Koploper aanneemt. Ik ga er van uit dat Koploper hier wel  goed mee overweg kan.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

Remco_Nzo

  • Offline Offline
  • Berichten: 254
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #33 Gepost op: 22 mei 2020, 00:11:44 »
Ik verdenk de 120 ohm weestand op de Ali module.

In de documentatie van Lenz staat
The ends of the XpressNet Network lines A and B should be
connected to the resistor, which is enclosed with the LZV100. The
resistor has a value of 120 Ohm

In het schema http://pgahtow.de/wiki/index.php?title=XpressNet zie je ook dat deze optioneel is.

Ik denk niet dat je meerdere van die 'terminators' tegelijk (dus parallel) tussen A/B moet leggen.
Mijn vermoeden is dat er al 1 zit in de PC interface-module. Dus losse TCO + MM gaat prima, PC module er nog bij -> totale weerstandswaarde te laag.

Remco.
« Laatst bewerkt op: 22 mei 2020, 00:14:11 door Remco_Nzo »
N-spoor in de koelkast gezet - nu heerlijk bezig met LGB op zolder (dcc, multimaus, massoth, mardec, arloco)

Juroen

  • Offline Offline
  • Berichten: 266
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #34 Gepost op: 22 mei 2020, 08:15:14 »
Ik ga met beide suggesties aan de slag:

1) in de code van de arduino een ander Xpresnet-adres instellen
2) eens kijken hoe ik de 120 Ohm weerstand uit mijn Max484 bordje kan halen.

Ik heb nog een derde bedacht:
3) een kijken hoe het met RocRail werkt. Ik heb een deel van mijn baan en enkele loc's in RocRail. Het is niet voldoende om de baan mee te besturen maar kan ik er eens wat mee proberen.

Overigens,
Het MAX485 bordje heeft aan de uitgang naar de arduino vier weerstanden van 10k naar VCC.
Die staan niet op het schema ven pgatow.

Hopelijk kan k later vandaag weer verslag doen van mijn bevindingen.

Groet, Juroen

Juroen

  • Offline Offline
  • Berichten: 266
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #35 Gepost op: 22 mei 2020, 16:28:26 »
Beste meedenkers,

Hierbij een bericht over de testjes van vandaag.

1) In de code van de arduino een ander Xpresnet-adres ingesteld
Het was adres 15, gewijzigd in 29: geen verandering.

2) Gekeken hoe het met RocRail werkt.
In eerste instantie werkt RocRail goed, na aansluiten van mijn bedieningspaneel geeft RocRail in het veld linksonder allerlei foutmeldingen. Wissels en lokomotieven via RocRail bedienen werkt niet meer. XpressnetLi opnieuw geconfigureerd om een en ander weer werkend te krijgen.

3) De 120 Ohm weerstand uit mijn Max484 bordje gehaald
Ha, ha, dit begint erop te lijken: (y) Koploper actief, en nu blijft alles werken.
Er treden geen foutmeldingen meer op, de XpressnetLi blijft in bedrijf.
Ook kan ik Koploper netjes afsluiten en weer opstarten.

Er is nog één ding wat niet werkt:
Als ik met het bedieningspaneel wissels bedien, dan laat Koploper dit niet zien.
Als ik met een multimaus (master of slave) wissels bedien, dan laat Koploper dit wel zien.

Ik denk dat ik hier voorlopig mee kan leven; het is wel mooi zo.  ;D
Waarschijnlijk gaat het over een tijdje toch kriebelen; dan zal ik eens de Tsjechische site gaan bekijken .

Nogmaals alle meedenkers bedankt.

Groet, Juroen

Remco_Nzo

  • Offline Offline
  • Berichten: 254
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #36 Gepost op: 22 mei 2020, 18:41:24 »
Je schrijft 1 ding nog niet werkt - en mijn vermoeden is dit patroon in de code

Citaat
        sendSwitchCommand(turnout,1,1);
        sendSwitchCommand(turnout,1,0);

Dit is volgens de spec omdat je een opdracht voor het aanzetten van de magneet moet geven, en even later weer een opdracht om de magneet uit te zetten. Er zijn zat decoders die dat met een korreltje zout nemen en zelf wel bepalen hoelang ze de magneet bekrachtigen (en dus dat uitzet bericht gewoon negeren), maaaaaaaaaaar
Ik heb ook gevallen gelezen waarbij er apparaten op de bus het 'negeerden/oversloegen' als de aan/uit te snel achter elkaar kwam.
Het is maar net hoe dat merk de specs geinterpreteerd en geimplementeerd heeft.

Dus je zou die theorie eens kunnen testen door in je ino op alle plekken waar er meteen achter elkaar twee sendSwitchCommands worden aangeroepen daar een korte delay tussen te stoppen. Ik heb in mijn code ontdekt dat een delay van bijvoorbeeld 10ms nog te weinig was in mijn situatie. Ik heb hem (uit mijn hoofd) nu op 100ms staan.

Remco.
N-spoor in de koelkast gezet - nu heerlijk bezig met LGB op zolder (dcc, multimaus, massoth, mardec, arloco)

Juroen

  • Offline Offline
  • Berichten: 266
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #37 Gepost op: 22 mei 2020, 21:13:03 »
Remco,

In de ino van nzin vind ik nergens een tweetal opvolgende instructies.

Wel staan er enkele delays in met verschillende waarden (bv 1, 10, 20) die eenzelfde functie hebben (bij een wissel-instructie). Die heb ik allemaal eens op 150 gezet.

Dat was geen succes, het leidde er toe dat de commando's vertraagd doorkomen.
Irritant. Ook leidde dit niet tot terugmelding in Koploper.

Ik heb ze nu allemaal op 20 ms gezet en het werkt naar wens, maar nog zonder visuele terugmelding in Koploper.
Zoals ik eerder vandaag al schreef, ik kan ermee leven.

Ook met mijn zoon nog even gespeeld; de een bediende de wissels en de ander reed met een trein.
Leuk tweemansbedrijf.

Groet Juroen

meino

  • Offline Offline
  • Berichten: 840
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #38 Gepost op: 22 mei 2020, 22:45:05 »
Juroen

een vraagje, Als Koploper een wissel omzet, krijgt de Arduino dat via een XpresNet cpmmando te horen. Maar als jij via een drukknop de Arduino een wissel laat omzetten, meld de Arduino dat dan ook d.m.v een XpressNet commando aan de Centrale?
Mijn ervaring is dat als de Centrale dat weet, dat Koploper dat dan ook weet. Ik heb de indruk dat de centrale niet geinformeerd wordt.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

Remco_Nzo

  • Offline Offline
  • Berichten: 254
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #39 Gepost op: 23 mei 2020, 00:45:26 »
@Meino,

het programma in de arduino is een xpressnet-slave, net als de multimaus. Hij stuurt dus geen DCC opdrachten naar de wissels, maar X-BUS pakketjes naar de centrale -> en die maakt daar DCC opdrachten van voor de wisseldecoder.
Lang antwoord voor : ja (maar begrijp nog steeds niet waarom het uitmaakt)

@Juroen,
ALs je in de toekomst toch eens het verder wilt gaan onderzoeken : ke zou met een tweede arduino de 'xpressnet-monitor' sketch kunnen laden en dan 'opnemen' wat de x-bus precies ziet als je de wissel omzet met de multimaus en wat hij ziet met het omzetten door TCO. Je zou daar (als het goed is) geen verschil in de logging mogen zien.

Maar leuk dat het gelukt is. Veel plezier met spelen toegewenst
Remco.
N-spoor in de koelkast gezet - nu heerlijk bezig met LGB op zolder (dcc, multimaus, massoth, mardec, arloco)

Juroen

  • Offline Offline
  • Berichten: 266
Eind goed, al goed?

Ik kon het nog niet loslaten. Vooral de opmerking van Remco:

Je schrijft 1 ding nog niet werkt - en mijn vermoeden is dit patroon in de code

Dit is volgens de spec omdat je een opdracht voor het aanzetten van de magneet moet geven, en even later weer een opdracht om de magneet uit te zetten.

Vervolgens ben ik op een Frans forum eens gaan neuzen en kwam ik uit op onderstaande draadje:

http://forum.locoduino.org/index.php?topic=266.15

Daar constateert iemand dat er in de code die ik gebruik een stukje ontbreekt. Ik heb dat toegevoegd zoals ik denk dat het het bedoeling is. Et voila:
1) de wissels kan ik bedienen met multimaus, Koploper en mijn TCO;
2) als ik met mijn TCO de wissels bedien zie ik dat terug op multimaus en Koploper;
3) ik kan Koploper netjes afsluiten en weer opnieuw opstarten.
 (y)

Wat heb ik veranderd?

Oude code:

  // --- Commande pour Boutons à levier --------------------------------------------
  for (int i = NbrePoussoirs*2 +1; i < NbrePoussoirs*2 + NbreLevier +1; i++)
    {
    if (BtEtat != BtEtatAncien)
      {
        Serial.print("Aiguillage ayant l'adresse DCC "); Serial.print(Aig);
        Serial.print(" (Arduino "); Serial.print(Bt);
        BtEtatAncien = BtEtat ;
        XpressNet.setTrntPos (0x0, Aig-1, BtEtat );
        delay (20);
      }
    }

Nieuwe code (in vet de wijziging (een -8 en een regel):

  // --- Commande pour Boutons à levier --------------------------------------------
  for (int i = NbrePoussoirs*2 +1; i < NbrePoussoirs*2 + NbreLevier +1; i++)
    {
    if (BtEtat != BtEtatAncien)
      {
        Serial.print("Aiguillage ayant l'adresse DCC "); Serial.print(Aig);
        Serial.print(" (Arduino "); Serial.print(Bt);
        BtEtatAncien = BtEtat ;
        XpressNet.setTrntPos (0x0, Aig-1, BtEtat-8 );
        delay (20);
        XpressNet.setTrntPos (0x0, Aig-1, BtEtat );
        delay (20);

      }
    }

Groet Juroen

Remco_Nzo

  • Offline Offline
  • Berichten: 254
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #41 Gepost op: 23 mei 2020, 18:47:04 »
 (y)
Remco.
N-spoor in de koelkast gezet - nu heerlijk bezig met LGB op zolder (dcc, multimaus, massoth, mardec, arloco)