Doel:€250.00
Donaties:€310.00

Per saldo:€60.00

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

Laatst bijgewerkt
op 28-09-2020
Algemeen

De stichting

Recente berichten

"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door St00mboy
Vandaag om 15:14:49
Toon hier je nieuwe (model-) spooraanwinst(en)... door Mark1706
Vandaag om 14:58:38
NS 2400, spoor 0 (print) door Ivo tB
Vandaag om 14:53:48
Nieuw cilinderblok voor DJH/Modelloco NS 3900 door Gerke
Vandaag om 14:50:55
NS 6100 van GM&S door Ivo tB
Vandaag om 14:50:16
Waarde Marklin treinen door NS1220
Vandaag om 14:44:21
[BNLS-actie] Tolhuisje in 0, H0 en N door MOVisser
Vandaag om 14:36:59
TI-9.2.1 ooit geïmplementeerd in DCC? door Klaas Zondervan
Vandaag om 14:35:04
Buitenlust door Huib
Vandaag om 14:29:35
NS 5500 / HSM 700 spoor 0 / 1 door FritsT
Vandaag om 14:20:29
Artitec 2020, Plan E door Forever Rocofan
Vandaag om 14:20:15
DR5000 software komt niet in beeld. door Menno
Vandaag om 14:15:13
DR rijtuigen halberstadt, reko, Y/B 70 door stefan88
Vandaag om 13:56:02
Roßnitz door Basilicum
Vandaag om 13:41:57
Projekt 083-338 door Ronald69
Vandaag om 13:23:16
Raadplaatje door Cc72000
Vandaag om 13:16:41
Depot + vervolg Vlieringen-2 door NS264
Vandaag om 13:11:10
BNLS-module: "Werkspoor-Kathedraal" door VFR
Vandaag om 13:02:37
Onlangs gespot - gefotografeerd, de foto's door Dave.......
Vandaag om 12:28:21
Rheinburgh, TP V/VI door Arjan6511
Vandaag om 12:27:44
SGM; de laatste loodjes. Fotodraadje. door damngrazy
Vandaag om 12:26:43
Beurs in Houten 10 oktober 2020 - GEANNULEERD! door Piet Groot
Vandaag om 12:13:03
The Summer of 69 door iarnrod
Vandaag om 12:06:20
Station Rekerdam door Joran
Vandaag om 10:40:08
NS 5000 Austerity W.D. 2-10-0 (DJH Euro Kit E101) door Gerrit F
Vandaag om 10:35:15
Heen, En en Weer door NS264
Vandaag om 09:21:04
19 Toen door spoorzeven
Vandaag om 09:12:22
Cubana door Valentijn
Vandaag om 09:08:00
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 08:13:45
"Hör das Signal, Berlin!" protesttrein van 100.000kW komt naar Berlijn. door Thom
Vandaag om 01:36:45
  

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

Juroen

  • Offline Offline
  • Berichten: 274
Ik ben bezig een bedieningstableau voor de wissels van mijn baan te maken. De hardware is gelukt, met de elektronica worstel ik; ik krijg het niet werkend. Hierbij vraag ik hulp.

Ik krijg een foutmelding dat de arduino geen contact heeft met de centrale (dcc state 255).

Er zijnop het forum enkele andere draadjes die ook over een bedieningstableau met een arduino gaan. Die heb ik gelezen en helaas vond ik daar geen oplossing. Met het bedieningstableau wil ik de wissels van mijn baan met tuimelschakelaars bedienen. De stand van de tuimelaar geeft de stand van de wissel weer.

Idee is om het bedieningstableau als een DCC-slave te bouwen en met een Xpressnet-kabel als slave aan te sluiten.
Ik stuur de baan met multimaus, met twee roco versterkers, één als hoofdversterker , één als booster. ExpressnetLi van Rosoft als computerinterface. Automatische sturing met koploper, maar soms wil ik gewoon zelf de wissles bedienen.

De basis van mijn tableau vond ik op internet:
https://sam95.fr/blog/2017/02/04/tco-xpressnet-avec-un-arduino/
De ontwerper heeft een filmpje op internet:
https://www.youtube.com/watch?v=rDMbxj29I_c&feature=emb_logo
Software te vinden op:
https://github.com/nzin/xpressnet_arduino

Ter illustratie


Doos met tuimelschakelaars, chinese arduino mega 2560 en een MAX485-module.
Er is geen functioneel verschil tussen de rode en de blauwe schakelaars. Ze zijn allemaal DPDT ON-ON.



De zwarte draden zijn aangesloten op een GND pin.
De geel/rood/blauw gekleurde draden gaan naar input_pullup pins.
Ik heb er twee als test aangesloten. Als ik die bedien dan reageert de arduino.

Gebruikt schema (bron http://www.sam95.fr/wp-content/uploads/2017/01/TCO_bb.jpg)


Xpressnet contactdoos
Van de RJ12 interface heb ik vier draden aangesloten:
+ 12 V
A
B
GND
Ik heb twee poorten parallel: één poort naar de centrale, op de andere poort kan ik een extra multimaus aansluiten.

Bij het foutzoeken heb ik de aansluiting A en B omgewisseld, maar dan raakt de extra multimaus in de war. Ik denk dus dat het nu goed zit.

Dit werkt:
Met de extra multimaus op de parallele poort kan ik wissels en treinen bedienen. Hieruit concludeer ik dat de contactdoos juist is aangesloten.
De voeding van de arduino en het max485 bordje heb ik nagemeten en zijn beide in orde.
Bij het bedienen van de aangesloten tuimelschakelaar krijgt de arduino de juiste input.

Ik twijfel of ik de verbinding tussen arduino en max485 juist heb:
In de Xpressnet library zie ik dat die pin9 gebruikt als communicatie naar het max485 bordje.
De gebruikte sketch definieert pin 3. Kan dat wel?
Overigens: ik heb in de sketch pin3 in pin9 gewijzigd, maar dat leverde niks op.

Op mijn arduino zitten o.a. de volgende pins die alsvolgt aan de max485 zitten:
      Arduino   -   485
-   RX1 18   -   DI
-   TX1 19   -   RO

Hopelijk hebben deskundigen aanknopingsunten om adviezen te geven.
Bij voorbaat dank voor suggesties.

Groet Juroen

« Laatst bewerkt op: 17 mei 2020, 13:41:36 door Bert van Gelder »

meino

  • Offline Offline
  • Berichten: 853
Re: wisselbedieningstableau met arduino mega voor dcc; hulp gevraagd
« Reactie #1 Gepost op: 16 mei 2020, 23:24:57 »
Dag Juroen

moet RX niet aan RO en TX aan DI zitten?

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

Kranenberg
De CanBus komt naar Kranenberg

Juroen

  • Offline Offline
  • Berichten: 274
Re: wisselbedieningstableau met arduino mega voor dcc; hulp gevraagd
« Reactie #2 Gepost op: 16 mei 2020, 23:40:45 »
Meino,

Dank voor je reactie.

Hoewel ik dat niet heb opgeschreven heb ik wel getest of 't werkte als ik de RX met RO verbond en TX aan DI.
Dat kon vrij eenvoudig door de pennenrij om te draaien. Dat hielp helaas niks.

Er is daar wel iets wat ik niet snap. De arduino heeft pinnen voor RX1 en TX1, maar ik las ergens (ik denk dat 't in de xpressnet library was) ook iets over pinnen RX0 en TX0. Die heeft mijn chinese arduino niet, of tenminste, ik heb ze nog niet gevonden.

Verder schrijft de franse meneer, van wie ik de sketch heb gekopieerd:
Pin RO van de module connectée à la pin 19 (RX1) de l’arduino
Pin DI van de module connectée à la pin 18 (TX1) de l’arduino

Echter, bij mijn arduino is RX1 18 (en geen 19) en TX1 19 (en geen18).

De arduino heeft ook een RX- en een TX-led. Bij het geven van een input licht er één op (weet nu even niet welke) de andere doet niets.
Wellicht is dat een aanknopingspunt?


Groet Juroen

meino

  • Offline Offline
  • Berichten: 853
Re: wisselbedieningstableau met arduino mega voor dcc; hulp gevraagd
« Reactie #3 Gepost op: 17 mei 2020, 00:09:18 »
Dag Juroen

ik heb dat uit het volgende artikeltje Arduino Mega met MAX485,
Ik weet dat de Mega meerdere tx en rx pinnen heeft. Standaard tx0 is pin1 en rx0 is pin0. Verder op twee van mijn Mega's is tx1 19, rx1 18, rx2 17, tx2 16, rx3 15 en tx3 14. Maar op een andere is tx1 18 en rx1 19.
Ik heb daar zelf nooit opgelet omdat ik de rx1-3 en tx1-3 zelf niet gebruik, alleen tx0 en rx0 voor de serieele monitor (via de USB poort).
De formele mapping voor de Mega 2560 is rx1 19, tx1 18, rx2 17, tx2 16, rx3 15 en tx3 14.  Ik ben bang dat de opdruk van die chineese kloon niet klopt.
Ik hoop dat je hier wat aanhebt.

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

Kranenberg
De CanBus komt naar Kranenberg

Juroen

  • Offline Offline
  • Berichten: 274
Re: wisselbedieningstableau met arduino mega voor dcc; hulp gevraagd
« Reactie #4 Gepost op: 17 mei 2020, 00:12:02 »
Dank,

Ga ik morgen mee verder!

Remco_Nzo

  • Offline Offline
  • Berichten: 254
Re: wisselbedieningstableau met arduino mega voor dcc; hulp gevraagd
« Reactie #5 Gepost op: 17 mei 2020, 11:14:23 »
Ik heb er recent ook een gemaakt, maar de software van 'nzin' is een beetje achterhaald.
Hij schrijft
Citaat
because xpressnet is a 9bit serial protocol. Standard Arduino SDK don't provide 9bits. But someone reimplement a 9bit Serial library (I put it into the arduinoSdk directory).

Ik heb de bibliotheek van Philipp Gahtow gebruikt.
Deze is nog in actieve ontwikkeling en wordt door veel projecten gebruikt, doet het met de laatste versie van de Arduino programmeer omgeving. Hij kan zowel op de Mega, Uno en Nano gebruikt worden.
En daarom kun je bijvoorbeeld ook met een Nano een "STOP" button langs de baan te maken.

http://pgahtow.de/wiki/index.php?title=XpressNet

Hij had een aparte voor slave als voor master, maar de laatste versie kan beiden aan. Ik heb dat niet gebruikt, die van mij is nog gebaseerd op de laatste 'client-only' library http://sourceforge.net/projects/pgahtow/files/Arduino%20%28v1.0%29%20libaries/XpressNet.zip

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

Remco_Nzo

  • Offline Offline
  • Berichten: 254
Re: wisselbedieningstableau met arduino mega voor dcc; hulp gevraagd
« Reactie #6 Gepost op: 17 mei 2020, 11:45:05 »
Zoals ik schreef heb ik hem ook van de Mega gemaakt


Als schakelaar heb ik touchsensors van Ali gekocht

Die liggen onder de houten triplex plaat
Daar zie je dus niets van na montage



En dan ziet aan de voorkant het er zo uit


Wellicht too much info:
Ik heb in mijn code, naast de normale adressen die door de touch-sensors geschakeld worden,  ook 'virtuele' DCC adressen gemaakt waarmee een straatje geschakeld wordt.
Bijvoorbeeld adres 101 waarmee een DCC 12+13 allebei geschakeld worden.
En dat maakt dan niet uit of je die 101 schakelt met het TCO of met de multimaus.
En daarnaast ook nog een virtuele DCC adressen gemaakt waarmee een wissel 'gelocked' wordt. De TCO bewaakt dan of de wissel wel in de juiste stand (blijft) staan. Als iemand/iets hem omschakelt dan zet de software hem meteen weer terug in de juiste stand.

Als je wilt kun je een kopie van mijn sketch krijgen ter leeiring ende vermaeck
Stuur me dan even je email-adres via PM

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

Juroen

  • Offline Offline
  • Berichten: 274
Re: wisselbedieningstableau met arduino mega voor dcc; hulp gevraagd
« Reactie #7 Gepost op: 17 mei 2020, 13:29:37 »
Heren,

Dank voor de reacties. Waarschijnlijk heb ik het me iets te eenvoudig voorgesteld. Ik zag namelijk in de sketch van nzin een rijtje van pinnen en een rijtje met DCC-adressen, en dacht daarmee voldoende te kunnen instellen:

int Aig[]          = { 0,10,12,20,21,22,23,24,25,30,31,32,33,34};  // Adresse DCC des aiguillages
int Bt[]           = {23,24,25,26,27,28,29,30,31,32,33,34,35,36};  // Bornes de la carte ARDUINO

Vervolgens het aantal tuimelschakelaars opgeven en klaar.
Als dit nu op mijn situatie zou aanpassen, dan dacht ik het werkend te hebben.

Waarschijnlijk speelt ook nog mee dat ik weinig kennis / ervaring met code heb. >:(

Ik had ook geen idee dat de sketch van nzin verouderd zou zijn. Aan de andere kant, als het klopt dan zou ik verwachten dat 't werkt.

Wat heb ik ondertussen geprobeerd:
- aantal verschillende combinaties in aansluitingen tussen de MAX485 (Di en R0) en de arduino (TX0, RX0, TX1, RX1).
- controle van soldeerverbindingen (zijn OK).
- de library "Xpressnet_Lib_Weiche" besturdeerd en daarmee een beetje zitten spelen.

Tot slot
Wat ik nog raar vind: als ik een sketch naar de arduino upload gaat dat goed. Als ik vervolgens een parameter aanpas en opnieuw wil uploaden, dan duurt het uploaden veel langer en lijkt de IDE vast te lopen. Dan trek ik de USB-steker uit de COM-poort, opnieuw IDE starten en uploaden.
-> Zou er iets met de arduino zijn?
-> Zou het helpen als ik een originele arduino koop?

Remco,
Ik ben zeker geïnteresseerd in je sketch, daar kan alleen van leren; zal een PB sturen.
Ik besef dat het schakelen met tuimelschakelaars anders werkt dan met momentschakelars, maar daar is vast iets op te vinden.

Groet Juroen


meino

  • Offline Offline
  • Berichten: 853
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #8 Gepost op: 17 mei 2020, 14:25:09 »
Juroen,

ik denk niet dat het helpt om een originele te kopen, ik heb diverse van die klonen in gebruik en tot nu toe nooit een probleem mee gehad. 
Wel een opmerking, ik zou RX0 en TX0 niet gebruiken. Die worden ook voor de serieele poort over de USB gebruikt. Het zou kunnen dat er nu een conflict in de schets zit als je met de bootloader een nieuwe schets probeert te uploaden, terwijl die pinnen aan iets anders zijn toegewezen. Dus controleer de schets en de bibliotheek daarop. Aangezien er een verschil is met RX1 en TX1 t,o,v de formele pin layout, zou ik eens proberen om de verbinding met de MAX485 via RX@/RX3 en TX2/TX3 te laten lopen. Waarschijnlijk moet je dan wel iets in de bibliotheek/schets aanpassen. Want de gebruikte pinnen moeten ergens aan de bibliotheek verteld worden.

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 #9 Gepost op: 17 mei 2020, 15:33:31 »
Kijk eerst eens of je berichten kunt ontvangen met je huidige hardware-opstelling (kruipen, dan lopen, dan rennen)

Ik stel het volgende voor.
1) probeer een 'blink' sketch te laden (dus ledje aan je Mega) en deze laten knipperen.
2) download de Xpressnet client library v2.1 (zie link hierboven)
en pak deze zipfile uit in je "documenten/Arduino/Libraries/"

3) in "documenten/Arduino/Libraries/XpressNet/examples" zit een sketch "XpresNnet_Sniffer"

Deze sketch gebruikt
Serial0 (=usb) voor het versturen van de info naar je scherm
Serial1 (= 18/19) voor de max485
De sketch toont je via "Hulpmiddelen, Seriele monitor" alle berichten die de Arduino ziet voorbijkomen op de x-bus. (dus met je multimaus schakelen en zien dat het bericht langs gekomen is)
Daarmee kun je zien of de RX1 (=pin 19) + TX1 (= pin 18)  pinnen van de max485 op de juiste pinnen van de Mega zijn aangesloten.
De pin RE/DE heb je nog niet nodig omdat we nu alleen nog aan het luisteren zijn.

Voor de volgende stap (verzenden) kun je aan de library vertellen met
#define XNetSRPin 5 // op welke pin zit de RE/DE aangesloten.
Ik heb daar inmiddels verschillende pinnen voor gebruikt 2,5,9,10,.... (welke je kiest lijk niet kritiesch te zijn, net welke je handig vind)
en dan zou je kun je dus ook een berichtje kunnen verzenden.

Ook daarvoor is een voorbeeld-sketch aanwezig (Xpressnet_Lib_weiche) maar helaas zit daar een kleine 'bug' in (schakelt maar 1 kant op).
Maar je kunt ook deze weer prima gebruiken om te kijken of het ledje braaf omgaat als je hem schakelt met de multimaus - en of je dus het de wissel kan bedienen (ik weet even niet meer of het alleen rechtdoor of alleen afbuigend schakelt).
Dan is dus je hardware-opstelling in orde.

En daarna wordt het software knutselen.
Remco




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

Juroen

  • Offline Offline
  • Berichten: 274
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #10 Gepost op: 17 mei 2020, 15:56:59 »
Dank, voor de hulp, ik ben ermee aan de slag.

Uitgangssituatie
De arduino had een sketch voor het wisseltableau geladen. Tijdens het testen van de schakelaar die ik heb aangesloten zag ik op mijn beeldscherm dat de arduino de input keurig registreerde. Daaruit maak ik op dat ik de arduino netjes aan de juiste COM-poort heb gekoppeld.

Kruipen
Verbinding tussen arduino en Xpressnet losgekoppeld. Blink sketch geopend in de IDE (uit de voorbeeldenmap). Bij het uploaden naar de arduino krijg ik een foutmelding ‘de geselecteerde seriele poort bestaat niet of is niet aangesloten’.
Nou ja, USB eruit, IDE afsluiten. IDE opnieuw gestart, COM-poort aangesloten, Sketch ‘blink’ geladen.

De led knippert. Ik kan ook nog de knipperfrequentie aanpassen. Dit begint op kruipen te lijken.
Nu ga ik met stap 2 van Remco aan de slag. Ik kom erop terug.

 Groet Juroen

Remco_Nzo

  • Offline Offline
  • Berichten: 254
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #11 Gepost op: 17 mei 2020, 16:03:58 »
Nice. Overigens had ik eerst ook tuimelschakelaars (die zonder middenstand).
Maar het nadeel daarvan is dat je met de multimuis (of de pc) de wissel ondertussen in een andere stand gezet kan hebben. Je schakelaar komt dan niet meer overeen met de werkelijkheid. Ging ik me te veel aan ergeren.

En daarom heb ik nu dus ook ledjes toegevoegd om de wisselstand weer te geven.
Ik heb de stand van de ledjes nu aan de berichten op de xbus aangesloten (net als het icoontje op de multimaus), maar denk dat ik een keer ga veranderen naar de oplossing waar Klaas het altijd over heeft (op basis van terugmelding = de werkelijke fysieke stand)

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

Juroen

  • Offline Offline
  • Berichten: 274
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #12 Gepost op: 17 mei 2020, 20:28:47 »
Leren luisteren

Ik heb eerst alle verbindingen van de Xpressnet contactdoos losgehaald. Nu heb ik geen parallelle poorten meer, maar alleen vier verbindingen (12 A, B, GND) naar de arduino/Max485.

De draad naast de 12V (volgens mij is dat A) heb ik op A van MAX485 en B op B.
12V en GND gaan naar de arduino. Arduino voedt de Max485 met 5V.

R0 van MAX485 zit nu op TX1 19. DI van MAX485 zit nu op RX1 18.

Ik las in de sniffer library:
Connect MAX485 RE/DE to Pin 9 - or set it fix to "GND" => 'read'
Vervolgens heb ik dus RE/DE op een GND pin aangesloten.

Nu geeft de seriële monitor onderstaande beeld:
XpressNet Sniffer
 AccInfo
I-3 Slot: 0x1C3 0x42 0x00 0x81 0xC3 AccInfo
D-3 Slot: 0x163 0x42 0x00 0x15 0x57 AccInfo
I-2 Slot: 0x142 0x42 0x01 0x80 0xC3 AccInfo
D-2 Slot: 0x1E2 0x42 0x01 0x05 0x46 AccInfo
I-3 Slot: 0x1C3 0x42 0x00 0x81 0xC3 AccInfo
D-3 Slot: 0x163 0x42 0x00 0x15 0x57 AccInfo
I-2 Slot: 0x142 0x42 0x01 0x80 0xC3 AccInfo
D-2 Slot: 0x1E2 0x42 0x01 0x05 0x46 AccInfo
Enz, enz

Als ik de RE/DE pinnen verbind met pin 9 van de arduino blijft de seriële monitor ‘lopen’.

Volgens mij begin ik te luisteren.  ;) Nu de adviezen terug lezen voor de vervolgstap.

Groet Juroen

Remco_Nzo

  • Offline Offline
  • Berichten: 254
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #13 Gepost op: 17 mei 2020, 21:03:43 »
Prima. Je kunt terwijl de sniffer loopt ook nog met de multimaus een wissel omzetten - dat krijg je dan ook te zien (of een loc bedienen)
Remco.
N-spoor in de koelkast gezet - nu heerlijk bezig met LGB op zolder (dcc, multimaus, massoth, mardec, arloco)

Juroen

  • Offline Offline
  • Berichten: 274
Re: Wisselbedieningstableau met Arduino mega voor DCC; hulp gevraagd
« Reactie #14 Gepost op: 17 mei 2020, 21:37:36 »
Klein beetje lopen

Ondertussen heb ik de sketch van nzin terug op de arduino geladen.

Hiermee kan ik nu al enkele wissels bedienen. Ook de noodknop werkt; tenminste ik kan met de noodknop de spanning van de baan halen. Bij een tweede keer indrukken gebeurt er niks. Dat moet dan met een multimaus.

Ik kan dus nog niet rennen ;)

Ik vermoed dat er twee fouten waren:

1 de doorverbinding op de parallele Xpressnet-contactdoos was onjuist
2) De pinnen TX1 en RX1 op mijn chinese arduino waren onjuist aangesloten.

Ik denk dat ik met de sketch van nzin de zaak verder ga aansturen. Ik snap welke parameters ik moet ingeven.

@ Remco,
Als het niet al te veel werk is ben ik nog wel benieuwd naar jouw software!

Nogmaals dank aan de deskundigen voor het meedenken.

Groet Juroen