BeneluxSpoor.net forum

Vraag en antwoord => Elektronica en analoog => Topic gestart door: 1op160 op 14 maart 2023, 13:12:43

Titel: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 14 maart 2023, 13:12:43
Ik ben opzoek naar een manier om een lus S88 modules uit te lezen met een Arduino of ESP32.
Iemand die hier ervaring mee heeft of mee kan helpen?

Ook wil ik mijn wissels gaan schakelen met servos.
Ik zag al ergens een manier om 16 servos op 1 Arduino Nano aan te sluiten.
Misschien hier al iemand die dit doet?
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 14 maart 2023, 13:52:41
Citaat
Ik ben opzoek naar een manier om een lus S88 modules uit te lezen met een Arduino of ESP32.

Vraag: als je met arduino's S88 bus wilt uitlezen, waarom dan ook niet meteen je s88 ook uitvoeren met een arduino? of nog beter, daadwerkelijk schuifregister ICs zoals de 74hc165. Sommige S88 modules zoals o.a. die van Huib hebben ook echte schuifregister IC's

De S88 'bus' is niks meer dan een reeks schuifregisters. Rudy B heeft een arduino geprogrammeerd om als S88 module te werken. Maar je kan ook S88 vergeten, zelf je modules fabrieken met die 74hc165 chips en dan kan je met de arduino shiftIn() functie al je schuifregister informatie ophalen.

Als je al S88 modules heb ingekocht, kan je ook eerst proberen om met de shiftIn() functie de bits in te klokken. Je hebt kans dat dat al werkt. De timing van de functie komt volgens mij niet overeen met de s88 standaard, maar aangezien je zelf de kloklijn bedient vanuit een arduino, maakt dat in alle waarschijnlijkheid niet eens uit.

En anders kunnen we wat code bedenken waarbij die timing wel klopt  ;).

Behalve klakkeloos inklokken, is het heel misschien ook nog nodig om de ingelezen data te filteren om eventuele spookmeldingen er uit te vissen. Maar first things first. Test shiftIn() en get your bits!!.

Informatie over de daadwerkelijk s88 timing en pinout ed kan je online vinden.


Wat servo's betreft. Een arduino nano of uno kan met de arduino library 12 servo's aansturen. Een mega iets van veel meer dan dat. Je kan ook een PCA9685 breakout board kopen, die kan 16 servo's aansturen met grotere nauwkeurigheid (niet nodig).

Zoveel servo's per unit is meestal volkomen puntloos omdat je servo kabels kort wilt houden en de kans dat je daadwerkelijk 16 servo's op 1 ding wilt hebben is niet groot. Hoewel ik een N-spoor emplacement nog wel wil geloven. (ik raad overigens MG90 servo's aan, die hebben metalen tandwielen. Een SG90 kan zichzelf vernietigen)

In onderstaande link, heb ik een project waarmee je via Xnet zelf een schakelpaneel kan maken. Dat is totaal niet relevant voor deze vraag. Echter in dat filmpje kan je ook een klein DCC printje zien in dezelfde fashion als dat kleine Xnet printje. In de achtergrond kan je ook een 'IO base' voor een arduino nano vinden.
https://forum.beneluxspoor.net/index.php?topic=106496.msg3222378634#msg3222378634 (https://forum.beneluxspoor.net/index.php?topic=106496.msg3222378634#msg3222378634)

De meest goedkope, stom simpele en makkelijke oplossing om servo's met een arduino aan te sturen dmv DCC waarbij je heeeel weing hoeft te solderen, is een zo'n IO base + arduino nano + een van mijn DCC shields. En je hebt ook zelf een 5V voeding toe te voegen. Kan ook een buckconverter zijn.

Dit is zo'n nano IO base. Je kan hier direct servo en mijn DCC print op inpluggen.
(https://hackerstore.nl/Afbeeldingen/553groot.jpg)

Software moet ik nog fixen, maar dat is al voor ~90% klaar (moet eigenlijk alleen nog testen). Ik maak ook gebruik van DCC libraries die je op internet vindt.

Het generale idee van die software is dat je een config knopje heb waarmee je net als bij een digikeijs module een setje adressen kan toekennen. Tevens kan je met loc adres 9999 de servo standen inleren en finetunen met de rijregelknop van een handregelaar/app/computer programma. <- gebruikersvriendelijk

Qua commerciele producten raad ik de esu switchpilot 3 aan. Die kost rond de 65€ en kan 8 servo's aansturen. Het is wel minder leuk dan zelf te kutteren met arduino's natuurlijk  ;)

Ik wil komend weekend een filmpje maken met dat DCC printje en dan maak ik een guide van begin tot eind hoe je van niks naar een werkende arduino dcc servo decoder gaat.

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: meino op 14 maart 2023, 14:03:00
Een stukje code (Arduino schets) dat de bezetmelders op de S88 zet. In principe kunnen meerdere Arduino's in een daisy chain gezet worden, maar dat heb ik hier niet gedaan.

/*
  A program to accept occupancy detector status from the Canbus
  and set the proper bit in the S88 shift register

  Copyright (C) Meino de Graaf, all rights reserved

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation, version 2
  of the License.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  email: meino@innerside.demon.nl
*/
#include <CanBus.h>

#define DEBUG 0

//
//  Pin layout is for the Arduino Uno
//

// Connections for S88 bus:
//
// s88 pin 1 Data - Arduino pin 8 = Data_Out to Oommand Station, or pin 7 (Data in) from the previous Arduino in the chain
// s88 pin 2 GND  - Arduino GND
// s88 pin 3 Clock - Arduino pin 2, interrupt 0
// s88 pin 4 PS - Arduino pin 3, interrupt 1
// S88 pin 5 Reset (not used)
// s88 pin 6 V+ - Arduino 5V (not used)
//

// Connections for S88N (RJ45)
//
// RJ45 pin 1 12V/5V   (not used)
// RJ45 pin 2 Data  - Arduino pin 8 = Data_Out to Oommand Station, or pin 7 (Data in) from the previous Arduino in the chain
// RJ45 pin 3 GND   - Arduino GND
// RJ45 pin 4 Clock - Arduino pin 2, interrupt 0
// RJ45 pin 5 GND   - Arduino GND
// RJ45 pin 6 PS    - Arduino pin 3, interrupt 1
// RJ45 pin 7 Reset    (not used)
// RJ45 pin 8 Raildata (not used)
//


#define S88_DATAOUT_PIN     8
#define S88_DATAIN_PIN      7
#define S88_CLOCK_PIN       2
#define S88_PS_PIN          3

#define S88_CLOCK_INTERRUPT 0
#define S88_PS_INTERRUPT    1

const int nrOfOccDetectors = 6 * 16;

#if (DEBUG)
typedef struct
{
  char  *description;
} CDT;   // Structure describing an attached Current Detector

//
//  We have implemented here 5 banks of S88 occupancy detectors
//
volatile CDT occDetector[nrOfOccDetectors] = {
  {"S4"},                     //  1.01
  {"S6-2"},                   //  1.02
  {"S11-1"},                  //  1.03
  {"S5"},                     //  1.04
  {"S19A (W4+W5)"},           //  1.05
  {"S11-2"},                  //  1.06
  {"S8-1"},                   //  1.07
  {"S6-1"},                   //  1.08
  {"S1"},                     //  1.09
  {"S2-1"},                   //  1.10
  {"S3A"},                    //  1.11
  {"W8+W9"},                  //  1.12
  {"S8"},                     //  1.13
  {"S9-1"},                   //  1.14
  {"S10A-1"},                 //  1.15
  {"S7A"},                    //  1.16
  {"S5-1"},                   //  2.01
  {"S1-1"},                   //  2.02
  {"S12-1 (W6)"},             //  2.03
  {"S12-2 (W7)"},             //  2.04
  {"S19-2"},                  //  2.05
  {"S19-1"},                  //  2.06
  {"S2-1 (W12)"},             //  2.07
  {"S9-2"},                   //  2.08
  {"S4A"},                    //  2.09
  {"S10A-2"},                 //  2.10
  {"S3A-1"},                  //  2.11
  {"S4-1"},                   //  2.12
  {"S7A-1"},                  //  2.13
  {"W1"},                     //  2.14
  {"W2+W3"},                  //  2.15
  {"W10+W11"},                //  2.16
  {"S10B-1"},                 //  3.01
  {"S10B-2"},                 //  3.02
  {"S10C-1"},                 //  3.03
  {"S10C-2"},                 //  3.04
  {"S10D-1"},                 //  3.05
  {"S10D-2"},                 //  3.06
  {"S7B+S7C (LSe)"},          //  3.07
  {"S3B+S3C (LSe)"},          //  3.08
  {"S3B+S3C (LSb)"},          //  3.09
  {"S7B+S7C (LSb)"},          //  3.10
  {"not used"},               //  3.11
  {"not used"},               //  3.12
  {"not used"},               //  3.13
  {"not used"},               //  3.14
  {"not used"},               //  3.15
  {"not used"},               //  3.16
  {"TO-01"},                  //  4.01
  {"TO-02"},                  //  4.02
  {"TO-03"},                  //  4.03
  {"TO-04"},                  //  4.04
  {"TO-05"},                  //  4.05
  {"TO-06"},                  //  4.06
  {"TO-07"},                  //  4.07
  {"TO-08"},                  //  4.08
  {"TO-09"},                  //  4.09
  {"TO-10"},                  //  4.10
  {"TO-11"},                  //  4.11
  {"TO-12"},                  //  4.12
  {"TO-13"},                  //  4.13
  {"TO-14"},                  //  4.14
  {"TO-15"},                  //  4.15
  {"TO-16"},                  //  4.16
  {"TO-17"},                  //  5.01
  {"TO-18"},                  //  5.02
  {"TO-19"},                  //  5.03
  {"TO-20"},                  //  5.04
  {"TO-21"},                  //  5.05
  {"TO-22"},                  //  5.06
  {"TO-23"},                  //  5.07
  {"TO-24"},                  //  5.08
  {"TO-25"},                  //  5.09
  {"TO-26"},                  //  5.10
  {"not used"},               //  5.11
  {"not used"},               //  5.12
  {"not used"},               //  5.13
  {"not used"},               //  5.14
  {"not used"},               //  5.15
  {"not used"},               //  5.16
  {"B-14"},                   //  6.01
  {"B-15"},                   //  6.02
  {"B-16"},                   //  6.03
  {"B-12"},                   //  6.04
  {"W-4"},                    //  6.05
  {"W-5"},                    //  6.06
  {"W-6"},                    //  6.07
  {"W-7"},                    //  6.08
  {"W-8"},                    //  6.09
  {"W-8"},                    //  6.10
  {"not used"},               //  6.11
  {"not used"},               //  6.12
  {"not used"},               //  6.13
  {"not used"},               //  6.14
  {"not used"},               //  6.15
  {"not used"}                //  6.16
};
#endif //DEBUG

volatile byte pendingStates[nrOfOccDetectors];
volatile byte dataRegister[nrOfOccDetectors];
volatile long clockTicks = 0;

CanBus *canBus;

void setup()
{
#if (DEBUG || CANBUS_DEBUG || CANBUS_DEBUG1)
  Serial.begin(115200);
  while (!Serial);
  Serial.println("Starting S88 interface");
  Serial.flush();
#endif //DEBUG

  //
  //  Intialize the dataRegister
  //
  memset(pendingStates,0,nrOfOccDetectors);
  memset(dataRegister,0,nrOfOccDetectors);

#if (DEBUG)
  Serial.println("Setup 1");
  Serial.flush();
#endif

  //
  //  Setup the input/output pins and the interrupts for the S88 communication
  //
  //pinMode(S88_CLOCK_PIN, INPUT_PULLUP);
  //pinMode(S88_PS_PIN, INPUT_PULLUP);
  pinMode(S88_DATAIN_PIN, INPUT_PULLUP);
  pinMode(S88_DATAOUT_PIN, OUTPUT);
  digitalWrite(S88_DATAOUT_PIN, LOW);
  attachInterrupt(S88_CLOCK_INTERRUPT, clock_Int, RISING);
  attachInterrupt(S88_PS_INTERRUPT, PS_Int, RISING);

#if (DEBUG)
  Serial.println("Setup 2");
  Serial.flush();
#endif

  //
  //  Setup and start the CanBus communication
  //
  canBus = new CanBus(S88_INTERFACE_ID, nullptr, new Mcp2515(10)); // Only a receiver
  canBus->setMsgReceiver(OCC_DT, occDtReceiver);
#if (DEBUG)
  Serial.println("Setup 3");
  Serial.flush();
#endif
  canBus->begin();

#if (DEBUG)
  Serial.println("Setup done");
  Serial.flush();
#endif
}

void loop()
{
  //
  //  Are there messages on the CanBus?
  //
  canBus->heartBeat();
}

//
//  A function that executes whenever a message is received from the Canbus
//  It's purpose is to analyze the received event Occupancy detector and
//  update the proper element in the semaphore table or turnout table.
//
void occDtReceiver(unsigned char aMsgLen, OCC_DT_MSG *msgData)
{
  if (msgData->address < nrOfOccDetectors)
  { 
    pendingStates[msgData->address] = msgData->state;
   
#if (DEBUG)
    Serial.print("[occDtReceiver] ");
    Serial.print("occId: ");
    Serial.print(occDetector[msgData->address].description);
    Serial.print(" adress: ");
    Serial.print(msgData->address);
    Serial.print(" bank: ");
    Serial.print(((msgData->address)/16)+1);
    Serial.print(" detector: ");
    Serial.print(((msgData->address)%16)+1);
    Serial.print(", occState: ");
    if (pendingStates[msgData->address] > 0)
      Serial.println("OCCUPIED");
    else
      Serial.println("FREE");
#endif //DEBUG
  }
  else
  {
#if (DEBUG)
    Serial.print("[occDtReceiver] invalid occId: ");
    Serial.println(msgData->address);
#endif   
  }
}

void PS_Int()
{
  //
  //  Load the detector states in the data register
  //
  memcpy(dataRegister,pendingStates,nrOfOccDetectors);

  clockTicks = 0;     //  reset index in the dataRegister
}

//
//  Set the state of the next detector on the output pin
//
void clock_Int()
{
  digitalWrite(S88_DATAOUT_PIN, dataRegister[clockTicks]);
  //
  //  If we are chained to additional detectors, reads a bit from the chain and
  //  store it in the current, just written, position
  //
  //  Delay makes reading output signal from next Arduino in chain more reliable.
  //delayMicroseconds(2);
  //dataRegister[clockTicks]=digitalRead(S88_DATAIN_PIN);
  clockTicks = (clockTicks + 1) % nrOfOccDetectors; // Goto next bit in dataRegister
}

Groet Meino
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 14 maart 2023, 14:04:33
Ik had per toeval nog een plaatje van mijn DCC contraption op mijn werk PC staan. Zeer minimalistisch  (y)

(https://images.beneluxspoor.net/bnls_2023/deleteme-6410707b80b36.png) (https://images.beneluxspoor.net/bnls_2023/deleteme-6410707b80b36.png)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 14 maart 2023, 21:23:12
Wow, Bas en Meino,   :o

Bedankt voor jullie uitgebreide antwoorden.  (y)

Ze overrompelen mij een beetje met termen waarvan ik wel ongeveer begrijp wat er staat en hoe het in theorie in elkaar zit.
Maar (foutje van mijn kant dat ik dat niet vooraf heb verteld) mijn kennis op het gebied van elektronica is "beperkt".
Van beroep ben ik programmeur maar ben eigenlijk nooit bezig met hardware.
Ik programmeer ook niet in java of C. Dus code voor Arduino's is voor mij geen moedertaal.
Al kan ik het prima lezen en aanpassen natuurlijk.

Ik ben er wel van overtuigd dat ik de juiste mensen gevonden heb.  ;D

Misschien moet ik iets meer informatie geven waarom ik deze vraag heb gesteld.

Het lijkt mij mooi om zelf software te maken om de modelbaan mee aan te sturen.
Ja, ik weet dat er al heel veel software is. Maar ieder zijn hobby, het lijkt mij mooi om ook dit deel van de hobby zelf te maken.

Daarnaast ben ik van mening dat wanneer de software slimmer is er ook minder hardware nodig is.
En software en hardware moeten volgens mij ook veel makkelijker kunnen zijn voor gebruikers die niet willen of kunnen nerden.
Er zijn genoeg mensen die niet zelf een Adruino sketch gaan schrijven of zelf in een sketch aanpassingen voor instellingen gaan doen.
 
Misschien is het helemaal niet haalbaar. Maar met wat hulp  ::) lijkt het mij mooi om componentjes te maken die iedereen voor een paar euro kan kopen (of namaken voor de nerds). Daar een standaard Arduino Nano (of iets vergelijkbaars) op kan klikken. En daarna via een simpele wizard kan installeren zonder ingewikkelde stappen. Next, next, next, Finish. Decoder of terugmelder klaar.
En daarna moet de besturingssoftware maar slim genoeg zijn.

Misschien is dit onhaalbaar en dan... (of tot die tijd...) wil ik proberen om met Arduino's te gaan nerden en deze te laten werken als "standaard" decoders.

Bas, dat laatste printje wat je liet zien.
Als ik het goed begrijp komt daar DCC in... en kan daarna de Arduino op de signaal pin de DCC lezen.
De PCA9685 waar je het over had is inderdaad wat ik zelf ook gevonden had om 16 servo's mee te kunnen bedienen.
(goed punt of je dat ook echt moet willen, maar het kan).

Nu lijkt het mij mooi om bijvoorbeeld via PCBWay 1 printje te maken die jouw DCC-in (noem ik het maar even) combineert met de PCA9685.
En dan met insteek headers waar je een Arduino Nano op kan prikken. En mocht dat nodig zijn ook al met buckconverter erop.
Gewoon 1 print waar alleen nog de Nano op hoeft.
Hoe haalbaar denk je dat dit is?

Of heb ik helemaal jouw verhaal niet goed begrepen heb en is dit er al?
 
Iets vergelijkbaars zou ik uiteindelijk ook als bezetmelders willen... maar goed... 1 ding tegelijk.  ;)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Joz op 14 maart 2023, 21:57:27
Gewoon 1 print waar alleen nog de Nano op hoeft.
Hoe haalbaar denk je dat dit is?

Dat is heel goed haalbaar. Maar zoals eerder gemeld is het het beste om je servo's zo dicht mogelijk bij je decoder te houden. Ik gebruik zelf maximaal 1 verlengkabeltje van zo'n 30cm, en in dat geval heb je genoeg aan zo'n 10 servo's per decoder. Dat kan één Arduino Nano makkelijk aan, zeker als je in je sketch bijvoorbeeld een queue inbouwt waarmee er maar één servo tegelijk om kan gaan en daarna afgeschakeld wordt.
Daarom zou ik die PCA9685 gewoon helemaal vergeten, een extra Nano zal niet duurder zijn?

Mijn oplossing ziet er zo uit: DCC aanluiting, 10 servo-aansluitmogelijkheden, 5V voedingsaansluiting en 3 knopjes waarmee de servo-standen eenmalig ingesteld kunnen worden. Een volgende versie heeft de servo-aansluitingen per 3 en 4 met wat tussenruimte gegroepeerd, omdat 10 servo-stekkertjes strak naast elkaar niet echt fijn is.

(https://images.beneluxspoor.net/bnls_2023/servo-decoder-6410decfa1962.jpg) (https://images.beneluxspoor.net/bnls_2023/servo-decoder-6410decfa1962.jpg)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 14 maart 2023, 23:50:49
Ik heb eerder een ander shield gemaakt waaronder ik een buck converter kon solderen. Zo'n shield prik je dan tussen de base en de nano. Hij was alleen voor Rs485 bestemd. Het is iets minder soldeer werk dan bovenstaande oplossing en je hebt een onboard buckconverter + gelijkrichter. Je kan dan het geheel ook meteen voeden vanuit de DCC bus.

Het grootste voordeel is dat je maar 2 draden hoeft aan te sluiten en je hoeft niet al die headers te solderen daar je gewoon dat IO shield kan blijven gebruiken. Dit is mijn idee van 'minimalisme'.

(https://i.imgur.com/xJkzScH.jpg)
Dan heb je wel zo'n leuk torentje  ;D Dat kleine zwarte ding dat is een 3A buck converter van <1€ en die zit onder dat shield (hoewel ik die 3A niet helemaal geloof, maar wie weet  :P)

Citaat
Al kan ik het prima lezen en aanpassen natuurlijk.
Dit alleen al is  (y)

Citaat
Nu lijkt het mij mooi om bijvoorbeeld via PCBWay 1 printje te maken die jouw DCC-in (noem ik het maar even) combineert met de PCA9685.
En dan met insteek headers waar je een Arduino Nano op kan prikken. En mocht dat nodig zijn ook al met buckconverter erop.
Die buckconverters zijn makkelijk, het zijn 4 soldeer contacten en je soldeert zo'n ding plat tegen een print. Een lineare regulator is veel meer arbeid. Bovendien raken die snel over verhit met servo's. Buck = must have. Ik zou die PCA echt vergeten, echt onnodig. 12 servo's direct op de arduino werkt prima.

Citaat
En daarna via een simpele wizard kan installeren zonder ingewikkelde stappen
Het makkelijkste wat ik in dit opzicht ooit bereikt heb, was een zipje samenstellen waarin o.a. avrdude.exe zit (het programma waarmee je .hex bestanden in een arduino flasht) en een .hex (= programma voor arduino) en een .bat script. De .hex in de arduino krijgen was zo simpel als dubbelklikken op upload.bat.

Ik moest alleen nog iets toevoegen dat je de comport kan selecteren (die was hard-gecodeerd in het .bat script). Maar ik was niet zo goed in de bat-nees taal  :-X

Dit werkt op elke windows PC en je hoeft niks te installeren. Slechts zipje downloaden, arduino in pluggen, klikken op upload.bat en klaar is Kees programmeren.


Wat terugmelders betreft. Je bent misschien wel of niet bekend met okkies, stroom detectie printjes die je op een arduino kan steken. Okkies hebben 1 nadeel, het is veel soldeer werk. Solderen is ruk, alleen doen indien nodig  :police:
(https://www.arcomora.com/wp-content/uploads/2017/09/okkiebestukt-768x536.jpg)

Dit printje is een Mosfet versterker voor spoelwissels. Alweer totaal irrelevant voor deze vraag  :P. Dit printje heb ik laten bestucken door JLCPCB. Mijn punt: een bestuckte okkie-like print, is een erg goed idee en zeer makkelijk uitvoerbaar.
(https://i.imgur.com/NqoMXZI.jpg)

Ik heb zelf ook een 'filosofie' omtrent spoorse zaken. Ik geloof in een 1 bus systeem zoals BiDib of loconet (B) waarbij je schakeldecoders en terugmelders op dezelfde bus kan aansluiten. DCC is dan beperkt tot het spoor en je treintjes. Je kan bijvoorbeeld met Rs485 (waar ik al shields voor heb) ook zoiets maken, maar dat is ietsjes meer werk  ::).

Voor die mosfet print had ik deze loconet controller print gemaakt. Mijn idee was een viertal printen, 1 universele loconet controller, 1 mosfet print, 1 servo print en een stroomdetectie print. Alle drie de printen zouden op dezelfde controller passen. En je kan bijvoorbeeld een weerstandsdeler gebruiken zodat de controller kan herkennen op welk van de drie printen hij aangesloten zit. Dan heb je slechts 1 enkel programma nodig wat spoelen, servo's of terugmelders kan aansturen.
(https://images.beneluxspoor.net/bnls_2022/deleteme-63a22d75ecdbd.png)

Citaat
Daar een standaard Arduino Nano (of iets vergelijkbaars) op kan klikken
Dit idee had ik dus helemaal uitgewerkt, maar je zit met 1 ding en dat is: die headers moeten gesoldeerd worden. Tenzij je dat kan uitbesteden, zou ik hier eigenlijk niet aan beginnen. Het was daarom dat ik die minimalistische printjes heb gemaakt. Als ik alleen al die shield headers voor een Nano moet solderen, heb ik eigenlijk al geen zin meer desonanks het maar 3 minuten werk is.

Ik heb deze week een handcontroller print besteld met: atmega328 + crystal,  Ch340 circuit + micro USB connector en loconet circuit. Dat ding is dus een soort arduino en dan met loconet interface. DCC circuit stelt ook geen ruk voor duzzz

How 'bout een controller met zowel loconet als DCC (voor ieder wat wils) waarmee je dus spoelen, relais, terugmelders, servo's en schakelaars kan aansturen? Ik kan die servo connectors ook laten bestucken met 2x3 SMD headers. Dus alles bestuckt behalve de screw terminals. 1 programma voor alles (minder werk dan het lijkt). Status ledje, config knopje.. USB interface eventueel? Anyways dat zijn mijn gedachtes.

Dus... maar beginnen met een nano shieldje?  :P

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 15 maart 2023, 10:21:02
Mijn oplossing ziet er zo uit: DCC aanluiting, 10 servo-aansluitmogelijkheden, 5V voedingsaansluiting en 3 knopjes waarmee de servo-standen eenmalig ingesteld kunnen worden. Een volgende versie heeft de servo-aansluitingen per 3 en 4 met wat tussenruimte gegroepeerd, omdat 10 servo-stekkertjes strak naast elkaar niet echt fijn is.

Hoi Jozz, dit lijkt wat hardware betreft erg prettig.
Heb je deze print zelf ontworpen? Of is deze ergens te koop?
En heb je daar ook een sketch bij voor?
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 15 maart 2023, 10:40:26
Bas je antwoord is weer op level "eindbaas"...  ::)
In grote lijnen kan ik je volgen.

Die eerste toren die je laat zien is op zich geen gekke oplossing.

Het grootste voordeel is dat je maar 2 draden hoeft aan te sluiten en je hoeft niet al die headers te solderen daar je gewoon dat IO shield kan blijven gebruiken. Dit is mijn idee van 'minimalisme'.
Ik zou uiteindelijk de voorkeur hebben aan iets wat bijvoorbeeld via PCBWay besteld kan worden en al helemaal gesoldeerd is.  ;D  (volgens mij kan je daar prints met componenten gesoldeerd bestellen).

Ik zou die PCA echt vergeten, echt onnodig. 12 servo's direct op de arduino werkt prima.
Ja, 12 is ook meer dan genoeg.

Het makkelijkste wat ik in dit opzicht ooit bereikt heb, was een zipje samenstellen waarin o.a. avrdude.exe zit (het programma waarmee je .hex bestanden in een arduino flasht) en een .hex (= programma voor arduino) en een .bat script. De .hex in de arduino krijgen was zo simpel als dubbelklikken op upload.bat.
Dit zou al een super mooie tussenoplossing zijn om het voor veel mensen makkelijker te maken.
Voor mij zou het niet erg lastig zijn om hier een wizard voor te maken die ook de comport kan vinden en die laatste stappen ook makkelijk maakt.

Ik heb zelf ook een 'filosofie' omtrent spoorse zaken. Ik geloof in een 1 bus systeem zoals BiDib of loconet (B) waarbij je schakeldecoders en terugmelders op dezelfde bus kan aansluiten.
Dit zou geweldig zijn... schakeldecoders en terugmelders, alles hetzelfde... en dan zou mijn voorkeur uitgaan naar het TCP protocol.
Dan werkt elke schakeldecoder en terugmelder als een PC in een LAN netwerk.
Kan ook met netwerkkabels aan elkaar verbonden worden... helemaal makkelijk en in alle lengtes verkrijgbaar.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 15 maart 2023, 11:27:36
Loconet (en tevens BiDib) is praktisch een soort LAN. Alleen zonder het router gedeelte. Elk apparaat kan vrijwillig of gevraagd berichten op de bus zetten. En alle apparaten luisteren naar de berichten en kunnen iets doen als ze een bericht interessant vinden. Er zit ook collision detection/avoiding in gebakken.

(XpressNet werkt dan met RS485 en dat werk op basis van pollen. XpressNet kent echter geen terugmelders en je kan nooit meer aansluiten dan 31 apparaten, deze bus is ook echt ontworpen voor handregelaars en schakelpaneel dingetjes.)

Wat misschien iets makkelijk is, is om CAN bus gebruiken, Je kan namelijk kant en klare can bus shields voor arduino's kopen. Meino heeft dat gedaan voor Kranenberg. Je kan even googelen naar 'canbus komt naar kranenberg'. Of je PB't Meino ::)

Citaat
Kan ook met netwerkkabels aan elkaar verbonden worden... helemaal makkelijk en in alle lengtes verkrijgbaar.
Die zes polige platte telefoon kabels met RJ12 connectoren (XpressNet & Loconet) vind ik zelf makkelijk. Die kan je op maat knippen en connectoren er op krimpen. Dat kan welliswaar ook met die RJ45 dingen, maar die aders goed in die jacks krijgen, is wat lastiger. Nu zijn die Kant en klaar  Rj45 kabels ook niet echt duur ofzo, dus zeker geen slecht idee  ;).
Ik meen dat de CAN bus aansluiting op een Z21 en ook op een ZIMO centrale ook met RJ45 is uitgevoerd. En BiDib en S88n terugmelders zijn ook met RJ45 uitgevoerd.

Citaat
Ik zou uiteindelijk de voorkeur hebben aan iets wat bijvoorbeeld via PCBWay besteld kan worden en al helemaal gesoldeerd is.  ;D  (volgens mij kan je daar prints met componenten gesoldeerd bestellen).
Volgens mij kunnen die dat idd doen. Zelf laat ik dus dingen bij jlcpcb bestucken. Ik heb ook een filmpje hier op BNLS staan hoe je daar een bestuckt ding moet bestellen, maar dan moet je wel met KiCad overweg kunnen....

Alleen niet alles kan ook bestuckt worden, wel veel. Die lange shield headers bijvoorbeeld is volgens mij niet een van die dingen. Volgens mij kan je die bedrijven ook dit handwerk voor je laten doen. Maar als je toch laat bestucken, is het imo dus beter om meteen die atmega328 en crystal ook meteen te bestucken zodat je geen shield toren hoeft te maken.

Je zit ook aan kosten en aantallen gebonden. (Hoewel het nog steeds goedkoper om 5 loconet terugmelders te laten bestucken dan er ook maar 1 te kopen). Een print aan 2 kanten bestucken kost meer, en dat handwerk kost natuurlijk ook meer. En zoals je zelf ook kan bedenken, meer printen -> lagere kosten per print. Bij JLCPCB hebben ze ook basic en extendend componenten. Voor elke niet extended component betaal je per batch 3$ meer. Als je al 5 extended componenten heb, ben je alleen al 15$ aan extra fees kwijt. Voor 5 printen niet echt rendabel (€3,- per print extra), voor 50 printen geen big deal (€0,30 per print)

In de basic stock list zit o.a. de atmega328, bijbehorend crystal en de 6n137 optocoupler (gebruiken we meestal voor DCC interface), 5v/3v3 spanningsregulators en alle condensators (geen elco's!), weerstanden en diodes die je nodig heb. Ze hebben ook een redelijke range aan buck converter ICs (nodig voor servo voeding tenzij je extern wilt voeden) in het basic assortiment.

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Joz op 15 maart 2023, 13:35:59
Heb je deze print zelf ontworpen? Of is deze ergens te koop?
En heb je daar ook een sketch bij voor?
Deze print heb ik zelf ontworpen met EasyEDA (https://easyeda.com/nl Std Edition) Dit werkt erg prettig samen met JLCPCB, zeker als je eventueel ook met componenten wilt laten bestucken, dan is het vrij makkelijk om de componenten uit het "basic" assortiment te kiezen.

Een sketch heb ik ook, maar die is niet geschikt om te delen. Ik ben geen (nette) programmeur. Ik heb gewoon hier en daar wat stukjes code gekopieerd en samengeplakt  :-X

Groeten, Jos
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 15 maart 2023, 14:34:13
Ik heb even gauw een programma uit mijn mouw geschud.

Je kan deze sketch zelf niet compileren omdat je mijn servoSweep library en de Nmra DCC library nodig heb. De laatste kan je ook via de library manager in de arduino IDE installeren.

Die servo sweep library laat servo's geleidelijk 1 graad opschuiven per keer, zo kan je de draaisnelheid regelen. Je kan ook min en max posities opgeven, of je wilt dat de servo afschakelt na draaien (wenselijk voor wissels) en je kan optioneel een punstuk relais gebruiken die halverwege de slag omgaat.

Een zo simpel als mogelijk basis programma ziet er zo uit:
Probeer het eens te lezen, zou ik zeggen (men vertelt me dat ik duidelijke code klop  :-X)

#include "src/servoSweep.h"
#include "src/NmraDCC.h"

NmraDcc  Dcc ; // declare DCC object

const int myAddress = 20 ;
const int nServo    = 4 ;

ServoSweep servo[nServo] =              // declare  servo array with 4 elements
{
    ServoSweep( 3, 45, 135, 1, 10 ) ,// pin, min, max, turn off after turning, 10ms interval between degrees.
    ServoSweep( 4, 45, 135, 1, 10 ) ,
    ServoSweep( 5, 45, 135, 1, 10 ) ,
    ServoSweep( 6, 45, 135, 1, 10 /* relay pin optional*/) ,
} ;

void notifyDccAccTurnoutOutput( uint16_t Addr, uint8_t Direction, uint8_t OutputPower ) // called from DCC library when a turnout is set
{
    if( OutputPower == 0 ) return ;   // often you receive 2 times the same packet, this is ment to control the pulse length for coil drives. We don't use this.

    for( int i = 0 ; i < nServos ; i ++ )
    {
        if( Addr == myAddress + i )        // check if recveived address matches with any of my 4 servo's in this case 20-23
        {
            servo[i].setState( Direction ) ; // set one of the servo's in a direction
        }
    }
}

void setup()
{
    Dcc.pin(0, DCC_PIN, 1);
    Dcc.init( MAN_ID_DIY, 10, CV29_ACCESSORY_DECODER | CV29_OUTPUT_ADDRESS_MODE, 0 );

    for( int i = 0 ; i < nServos ; i ++ )
    {
        servo[i].begin() ;
    }
}

void loop()
{
    Dcc.process();

    for( int i = 0 ; i < nServos ; i ++ )
    {
        servo[i].sweep() ; // keep updating all servo motors
    }
}

Met een klein beetje meer werk, kunnen we dit allemaal configureerbaar maken. Dan kan je adres en servostanden inleren en dat slaan we dan op in EEPROM geheugen zodat de arduino bij uitzetten alles onthoudt. Ik moet thuis even kijken of ik dat programma nog kan vinden.

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 16 maart 2023, 20:10:33
Deze print heb ik zelf ontworpen met EasyEDA (https://easyeda.com/nl Std Edition) Dit werkt erg prettig samen met JLCPCB, zeker als je eventueel ook met componenten wilt laten bestucken, dan is het vrij makkelijk om de componenten uit het "basic" assortiment te kiezen.

Een sketch heb ik ook, maar die is niet geschikt om te delen. Ik ben geen (nette) programmeur. Ik heb gewoon hier en daar wat stukjes code gekopieerd en samengeplakt  :-X

Hoi Jos,

Ik wil uiteindelijk ook is gaan kijken naar het maken van prints.
Bedankt voor je tip.
Ik zocht vandaag naar een adapter van S88 naar RJ45.
Vragen ze gewoon 8 euro voor... Bizar.
Misschien dat ik dat is zelf ga proberen... Is ook niet heel complex.

Als je de sketch niet wilt delen moet je dat ook niet doen hoor.
Maar ik oordeel niet...  ;)  Bij het maken van code voor een Arduino ga ik ook zo te werk als jij omschrijft  ;D

En Bas, ook bedankt voor je sketch...
Is prima leesbaar.
Ik raak hier wel geïnteresseerd door.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: meino op 16 maart 2023, 20:19:47
Dit zou geweldig zijn... schakeldecoders en terugmelders, alles hetzelfde... en dan zou mijn voorkeur uitgaan naar het TCP protocol.
Dan werkt elke schakeldecoder en terugmelder als een PC in een LAN netwerk.
Kan ook met netwerkkabels aan elkaar verbonden worden... helemaal makkelijk en in alle lengtes verkrijgbaar.

Daar heb ik ooit ook aan gedacht, maar ik ben redelijk gepokt en gemazeld in het gebruik van TCP/IP en toen besloten dat er toch wel wat issues mee zijn. Je krijgt met adressering problemen te maken dus moet je ook zaken al DHCP of ARP implementeren. Ik ben bang dat de overhead toch iets te heftig is voor de huidige PIC's of Arduino's. Lees mijn Canbus (https://forum.beneluxspoor.net/index.php?topic=90291.0) draadje.

Groet Meino
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 16 maart 2023, 20:20:39
Misschien een domme noob vraag.
Ik kwam dit printje tegen:
https://www.dccinterface.com/product/arduino-model-railway-dcc-interface/


On one side of the board is a 3 way connector

Pin 1 – + 5v – Connect this to a 5V source ( or the 5v pin on the Arduino )

Pin 2 – – GND – Connect this to the power source GND ( or the GND pin on the Arduino if you are using the Arduino as a power source )

Pin 3 – Ard – Connect this to an Arduino External Interrupt pin – the most commonly used pin is D2 – most libraries will use this pin.

The other 2 pin connector is the DCC input.


Zou ik wanneer pin 1 en 2 op een eigen power source zitten (dus niet op een Arduino)...
Meerdere Arduino's naar het DCC signaal op pin 3 kunnen laten "luisteren" ?
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 16 maart 2023, 20:30:21
Daar heb ik ooit ook aan gedacht, maar ik ben redelijk gepokt en gemazeld in het gebruik van TCP/IP en toen besloten dat er toch wel wat issues mee zijn. Je krijgt met adressering problemen te maken dus moet je ook zaken al DHCP of ARP implementeren. Ik ben bang dat de overhead toch iets te heftig is voor de huidige PIC's of Arduino's. Lees mijn Canbus (https://forum.beneluxspoor.net/index.php?topic=90291.0) draadje.

Hoi Meino,

Ik denk dat je daar wel een punt hebt. Het is niet zo makkelijk als ik zeg. Er zitten best wat haken en ogen aan. Misschien zou een mooie (tussen) oplossing zijn om een centrale te hebben die alles op de baan afhandelt DCC, loconet, S88, etc. Maar ook een netwerk (LAN) interface heeft, via RJ45 of wifi maakt niet uit. Al gaat mijn voorkeur altijd uit naar een draad.

Die centrale zou dan over de netwerkverbinding via websockets en of API alle input en output van de baan beschikbaar kunnen maken. Dan kan je er makkelijk met elk apparaat met een netwerkverbinding tegen praten.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Overet op 16 maart 2023, 20:35:29
Met alle respect voor de kennis en kunde van Meino, Bas en Jozz maak ik hier ook even reclame voor de Arcomora producten van Nico Teering. De door Bas genoemde Okkie bezetmelders maken hier ook deel van uit. Veel van wat je zoekt vind je daar.

Tom
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 16 maart 2023, 20:54:55
Citaat
wifi
Zullen we voor al onze bestwil niet over Wifi praten? Bron van potentiele problemen.

Citaat
Misschien zou een mooie (tussen) oplossing zijn om een centrale te hebben die alles op de baan afhandelt DCC, loconet, S88, etc. Maar ook een netwerk (LAN) interface heeft, via RJ45 of wifi maakt niet uit. Al gaat mijn voorkeur altijd uit naar een draad.

Die centrale zou dan over de netwerkverbinding via websockets en of API alle input en output van de baan beschikbaar kunnen maken. Dan kan je er makkelijk met elk apparaat met een netwerkverbinding tegen praten.
Dit heet een Yamorc DCC centrale, komt binnenkort uit als het goed is. Om deze centrale in te kopen (kost rond de €170,-) en de rest met arduino oplossingen te doen is een solide plan. Dan kan je spelen met S88, loconet, XpressNet en DCC wat je wilt. S88 zou ik wel achterwege laten, maar dat moet je natuurlijk zelf bepalen.

Citaat
https://www.dccinterface.com/product/arduino-model-railway-dcc-interface/
Voor mijne vraag ik ~1/3e van die prijs :P. Ik heb er 8 liggen atm. En ja je kan in theorie dit ding gebruiken voor meerdere arduino's, maar waarom zou je? Als je dat doet dan doe je het nut van het hebben van een bus te niet.

Je kan als eerste projectje zelf dat ding na maken en dan meteen een gelijkrichter en een schakelende voeding oid er op doen. Dan kan je alle arduino's aan de 2 DCC lijntjes verbinden en heb je meteen sap.

Citaat
Vragen ze gewoon 8 euro voor... Bizar.
Dat is de prijs van manual labour. Ik denk dat ze 1 a 1,50 aan materiaal kosten hebben. Ze zetten die wss zelf in elkaar, moeten zelf onderdelen bestellen en dan willen ze er ook iets aan overhouden.

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 17 maart 2023, 08:13:02
Dit heet een Yamorc DCC centrale, komt binnenkort uit als het goed is.
Ik ga is uitkijken naar zo'n Yamorc centrale... kijken of ik informatie kan vinden over mogelijkheden van de netwerkverbinding.
Bedankt voor de tip.

Voor mijne vraag ik ~1/3e van die prijs :P. Ik heb er 8 liggen atm.
Op je website ben ik nog niet tegen gekomen dat je dit verkoopt. Ik zal je een persoonlijk berichtje sturen...
Ik ben begonnen met het lezen van je website... superveel informatie  (y)
(en ik lees niet zo snel  ::) dus ik heb nog wat te doen komende tijd  ;D).
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 17 maart 2023, 12:49:16
Het is ook een beetje DIY service, ik zal mijn site upgraden met een contact formulier.

In de nature of experimentation voor mezelf had ik een vijftal printen besteld in een panel. Dat was goedkoper.

De andere vier 4 printen zijn; Xnet, Lnet, LDR terugmelder en een enkele stroomdetectie print. Als je dat ook interessant vindt, kan ik de hele panel mailen, anders breek ik de DCC print er van af  ;)

Voorzijde
(https://i.imgur.com/JANa7Vb.jpg)

Achterzijde
(https://i.imgur.com/H8yh0qi.jpg)

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: NTeering op 17 maart 2023, 17:33:35
Hallo 1op160

Al eens gekeken naar de  DCCNext of het DCC-shield van Arcomora?
www.arcomora.com (http://www.arcomora.com)

Mvg
Nico
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 03 april 2023, 08:59:55
Hallo Bas,

Ik heb een tijdje terug een DCC interface van je ontvangen.
Nogmaals bedankt daarvoor.

Helaas is het mij nog niet gelukt om het werkend te krijgen.
Misschien/waarschijnlijk doe ik iets fout.
(https://1op160.nl/wp-content/uploads/2023/04/PXL_20230402_101706592.jpg)

De Nano zit (nu) via usb aan een pc.
De paarse en paars-witte draad zijn DCC vanaf de centrale.
Zwart en rood en zijn 5v en gnd.
Deze gaan van de Nano naar de interface en krijgt dus stroom van de usb.
Ik heb dit nagemeten met een multimeter en is overigens 4.64v.
De bruine draad zit op de Nano op d2 en op de interface op sig.

Hopelijk heb ik hier nog geen fout gemaakt?
Dan moet het software zijn.  ::)
Nog even verder zoeken dan maar
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 03 april 2023, 09:29:12
Bedrading lijkt ok, chip zit er goed om in. Voordat we met SW gaan spelen, moeten we zeker weten dat die optocoupler chip werkt.

Als je dit programma probeert, moet je met DCC zowel ON als OFF op de seriele monitor zien verschijnen. Je kan ook DCC vervangen door 5V vanuit de arduino. Dan zie je of OFF of ON, als je de draden dan verwisselt zie je het andere bericht.

void setup()
{
    Serial.begin(115200) ;
    Serial.println("booted") ;

    pinMode( 2, INPUT_PULLUP ) ;
}

void loop()
{
    if( digitalWrite( 2 ) == HIGH ) Serial.println("OFF") ;
    else                            Serial.println(" ON") ;
}

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 03 april 2023, 09:32:28
void setup()
{
    Serial.begin(115200) ;
    Serial.println("booted") ;

    pinMode( 2, INPUT_PULLUP ) ;
}

void loop()
{
    if( digitalWrite( 2 ) == HIGH ) Serial.println("OFF") ;
    else                            Serial.println(" ON") ;
}

too few arguments to function 'void digitalWrite(uint8_t, uint8_t)'
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 03 april 2023, 09:34:13
void setup()
{
    Serial.begin(115200) ;
    Serial.println("booted") ;

    pinMode( 2, INPUT_PULLUP ) ;
}

void loop()
{
    if( digitalRead( 2 ) == HIGH ) Serial.println("OFF") ;
    else                            Serial.println(" ON") ;
}
sry write moest read zijn
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 03 april 2023, 09:38:34
Ik had er dit van gemaakt:
void setup()
{
    Serial.begin(115200) ;
    Serial.println("booted") ;

    pinMode( 2, INPUT_PULLUP ) ;
}

void loop()
{
    if( digitalRead( 2  == HIGH )) Serial.println("OFF") ;
    else                           Serial.println(" ON") ;
}

Maar ik krijg nu alleen maar OFF regels op het scherm.

MAAR mijn fout... ik had haakjes anders gezet... met jouw laatste code krijg ik ON en OFF
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 03 april 2023, 09:43:30
Top, print werkt  (y).

Kan je je ino bestand van je DCC project hier tussen code tags hier plaatsen?
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 03 april 2023, 09:47:23
#include <NmraDcc.h>
NmraDcc  Dcc ; // declare DCC object

#define DCC_PIN
const int dccPIN = 2;
const int myAddress = 20 ;
const int nServos = 4 ;

void notifyDccAccTurnoutOutput( uint16_t Addr, uint8_t Direction, uint8_t OutputPower ) // called from DCC library when a turnout is set
{
  Serial.print("x");
    if( OutputPower == 0 ) return ;   // often you receive 2 times the same packet, this is ment to control the pulse length for coil drives. We don't use this.

    Serial.print("Addr: ");
    Serial.print(Addr);
    Serial.print(" Direction: ");
    Serial.println(Direction);
}

void setup()
{
    Serial.print("y");
 
    Dcc.pin(0, dccPIN, 1);
    Dcc.init( MAN_ID_DIY, 10, CV29_ACCESSORY_DECODER | CV29_OUTPUT_ADDRESS_MODE, 0 );
   
    /*
    for( int i = 0 ; i < nServos ; i ++ )
    {
        servo[i].begin() ;
    }*/
}

void loop()
{
    Dcc.process();
    Serial.print("z");
   
    /*
    for( int i = 0 ; i < nServos ; i ++ )
    {
        //servo[i].sweep() ; // keep updating all servo motors
    }*/
}

die print x y z was voor debug... maar de monitor blijft leeg
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 03 april 2023, 10:01:26
Ik weet niet waarom het niet eerder is gelukt... maar ik zie nu in de monitor welke wissel er omgezet wordt en de richting.

Het is wel zo dat ik alles 2x binnen krijg en dat er 400 wordt opgeteld bij elk adres.
Dus als ik wissel 1 omzet... staat er wissel 401.

#include <NmraDcc.h>
#include "EEPROM.h"

NmraDcc  Dcc ; // declare DCC object

#define DCC_PIN 2

const int myAddress = 20 ;

void notifyDccAccTurnoutOutput( uint16_t Addr, uint8_t Direction, uint8_t OutputPower ) // called from DCC library when a turnout is set
{
    if( OutputPower == 0 ) return ;   // often you receive 2 times the same packet, this is ment to control the pulse length for coil drives. We don't use this.

    Serial.print("Addr: ");
    Serial.print(Addr);
    Serial.print(" Direction: ");
    Serial.println(Direction);
}

void setup()
{
    Serial.begin(115200);             
 
    Dcc.pin(0, DCC_PIN, 1);
    Dcc.init( MAN_ID_DIY, 10, CV29_ACCESSORY_DECODER | CV29_OUTPUT_ADDRESS_MODE, 0 );
}

void loop()
{
    Dcc.process();
}
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 03 april 2023, 10:06:18
Citaat
Het is wel zo dat ik alles 2x binnen krijg en dat er 400 wordt opgeteld bij elk adres.
2x maar? Ik had vaker verwacht. Wissel pakketten worden ook vaak iets van 8~10x herhaald. Dat is omdat sommige loks weleens de DCC pakketten kunnen verstoren.

Die 400 kan ik niet verklaren. Wat voor DCC centrale gebruik je?

Dcc.pin(0, DCC_PIN, 1);Deze regel is volgens mij overbodig. De library maakt standaard gebruik van pin 2 iirc. Als je hier // voor zet, werkt de code dan nog?

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 03 april 2023, 10:11:23
2x maar?
Blijkbaar ligt het eraan hoe lang ik de knop ingedrukt houd.
Als ik op de centrale langer op de knop druk om de wissel om te zetten krijg ik het signaal vaker binnen.
Als ik heel snel ben maar 1x.

Wat voor DCC centrale gebruik je?
Fleischmann Twin-Center

https://forum.arduino.cc/t/nmradcc-utilisation/1026078/5
Ik heb wel gevonden dat ik notifyDccAccTurnoutBoard() moet gebruiken ipv notifyDccAccTurnoutOutput()
Nu is bij mij bij elk adres 100 opgeteld... moest ik even uitzoeken maar blijkt zo ingesteld in mijn centrale
is namelijk een virtueel adres (dus dit klopt helemaal). ik heb de knop 1 (op mijn centrale) doorverwezen naar adres 101.

werkt de code dan nog?

Ja, code werkt nog steeds zonder die regel.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 03 april 2023, 10:49:18
Ik heb zelf wel die eerste callback functie gebruikt zonder dit adressen probleem met de z21 . Er zit iig wel meer in de library dan je nodig heb :-\ Ik heb zelf 1 of 2x met DCC gespeeld, dus het fijne van die library moet ik nog bekijken.

Ik weet eigenlijk niks van de twincenter af :-\ . Kan ije niet vertellen of het in de library of de twincenter ligt.

Ik zie wel in die library dat je 3 verschillende flags kan zetten
    CV29_EXT_ADDRESSING      = 0b00100000, /** bit 5: "0" = one byte addressing, "1" = two byte addressing */
    CV29_OUTPUT_ADDRESS_MODE = 0b01000000, /** bit 6: "0" = Decoder Address Mode "1" = Output Address Mode */
    CV29_ACCESSORY_DECODER   = 0b10000000, /** bit 7: "0" = Multi-Function Decoder Mode "1" = Accessory Decoder Mode */
Die eerste is volgens mij voor DCC extended commando's dat is bedacht voor seinen die meer dan 2 beelden kunnen tonen. Behalve een 0 of een 1, kent die meer standen. Zo hoef je niet meer meerdere adressen voor 1 sein te gebruiken. Deze hebben we sws niet nodig.

Die onderste moet volgens mij sws actief zijn. Het is dan alleen even spelen met die output adres mode en kijken wat er gebeurt. Volgens mij had dat iets te maken met dat er informatie voor 4 wissels in 1 DCC-pakket liggen. Het is alweer een tijdje geleden dat ik me hiermee bezig hield

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 05 april 2023, 08:27:49
Eerst versie van mijn "zelf"-gemaakte decoder is af.
Met dank aan jullie voor alle tips en info, vooral Bas (y) en zijn DCC-interface printje.
https://1op160.nl/arduino-nano-dcc-decoder/

Ik heb er ook een kort filmpje van gemaakt:
https://1op160.nl/video-arduino-nano-dcc-decoder/
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 14 april 2023, 21:06:37
Zoals ik eerder liet weten lukt het om met een Arduino DCC opdrachten te ontvangen en bijvoorbeeld servo's te bewegen.

Nu dit lukt leek mij dit ook handig om te gebruiken voor mijn vitrine die ik wil laten bewegen om zo verschillende treinen te kunnen wisselen.
https://1op160.nl/uitleg-over-mijn-vitrine/
Je zou mijn vitrine versimpeld kunnen zien als een transfer table.
(https://www.walthers.com/media/catalog/product/cache/944635636b347bd2be13fbc42a882726/m/o/motorized_transfer_table_kit_739-66540_big.jpg)

Dit soort dingen en trouwens ook een draaischijf zijn ook via DCC bestuurbaar.
Maar kan iemand uitleggen hoe dat werkt?

Voor een wissel heb je een adres en een stand 0 of 1.
Maar hier zou je op een adres meerdere standen moeten kunnen ontvangen.
Of meerdere adressen hebben die stand 0 of 1 kunnen zijn en dan bepalen welke combinatie welke stand is.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 14 april 2023, 22:01:28
Het is net wat je wilt hebben. Volgens mij kan kan adres 1 gebogen voor een stand gebruiken en adres 1 recht voor een andere stand. Als je dan 10 posities heb, zou je het met 5 adressen afkunnen. Maar misschien wil je een adres per stand waarbij het dan niet uitmaakt of je het adres naar recht of gebogen stuurt.

Een andere mogelijkheid is dat je gebruik maakt van het DCC extended protocol. Behalve een stand 0 en stand 1 kan je tot 31 verschillende standen per adres gebruiken. Dit is ooit bedacht voor seinen met meer dan 2 seinbeelden. Je centrale moet DCC extendend dan natuurlijk ook kunnen ondersteunen.

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Joz op 14 april 2023, 22:05:25
In de handleiding van de Digikeijs wijlen DR5052 DIGITURN decoder, bijlage 7, stonden de Märklin en Fleischmann protocollen adresseringsmethoden opgesomd.
Weliswaar voor een draischijf, maar wellicht kun je er wat mee.

Adr. func  Functie Märklin® Protocol
225  rood  Einde programmering
     groen Begin met programmeren
226  rood  Clear 180°
     groen Turn
227  rood  Rechtsom stap
     groen linkse stap
228  rood  Draai met de klok mee
     groen Tegen de klok in draaien
229  rood  spoorwegverbinding 1
     groen spoorwegverbinding 2
230  rood  spoorwegverbinding 3
     groen spoorwegverbinding 4
231  rood  spoorwegverbinding 5
     groen spoorwegverbinding 6
232  rood  spoorwegverbinding 7
     groen spoorwegverbinding 8
233  rood  spoorwegverbinding 9
     groen spoorwegverbinding 10
...
240  rood  spoorwegverbinding 23
     groen spoorwegverbinding 24

Adr. func  Functie Fleischmann® Protocol
200  rood  180° met de klok mee draaien
     groen 180° tegen de wijzers van de klok in draaien
201  rood  spoorwegverbinding 1 met brughuisje bij de aansluiting
     groen spoorwegverbinding 1 zonder brughuisje bij de aansluiting
202  rood  spoorwegverbinding 2 met brughuisje bij de aansluiting
     groen spoorwegverbinding 2 zonder brughuisje bij de aansluiting
203  rood  spoorwegverbinding 3 met brughuisje bij de aansluiting
     groen spoorwegverbinding 3 zonder brughuisje bij de aansluiting
204  rood  spoorwegverbinding 4 met brughuisje bij de aansluiting
     groen spoorwegverbinding 4 zonder brughuisje bij de aansluiting
...
248  rood  spoorwegverbinding 47 met brughuisje bij de aansluiting
     groen spoorwegverbinding 47 zonder brughuisje bij de aansluiting
249  rood  spoorwegverbinding 48 met brughuisje bij de aansluiting
     groen spoorwegverbinding 48 zonder brughuisje bij de aansluiting
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 14 april 2023, 22:35:29
..., maar wellicht kun je er wat mee.

Bedankt Jozz, het lijkt erop dat er dus inderdaad meerdere adressen zijn met stand 0 of 1.
(in deze beschrijving rood of groen)
Waarbij elk adres een functie heeft.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 19 april 2023, 20:46:55
Net een korte video online gezet van het testen van mijn eerste wissel.  ;D

https://1op160.nl/zelfbouw-servo-wisselaandrijving/
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 19 april 2023, 21:23:31
Ziet er goed uit  ;). Heb je nu niet het probleem dat de as te veel op en neer beweegt? Dat had ik aanvankelijk wel een beetje. Sindsdien doe ik het ijzerdraadje star op de vleugel monteren.

Mvg,

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 22 april 2023, 15:47:18
Ziet er goed uit  ;). Heb je nu niet het probleem dat de as te veel op en neer beweegt?
Volgens mij gaat het bij mij goed... kan natuurlijk ook puur toeval zijn.
Ik heb niet het idee dat er iets op en neer beweegt.

Sindsdien doe ik het ijzerdraadje star op de vleugel monteren.
Hoe bedoel je dit precies? Ik snap het niet helemaal  ??? ::)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 29 november 2023, 11:45:16
Het is al even geleden... maar ik ben een heel eind met het maken van mijn wisseldecoder.
Ik ben nog bezig met het maken van een behuizing. Die ga ik binnenkort printen met de 3D printer.
Hier is mijn eerste wisseldecoder te zien: https://1op160.nl/dcc-wisseldecoder/ (https://1op160.nl/dcc-wisseldecoder/).
Bas nogmaals dank voor jouw bijdrage hieraan.
Ik ben ook S88 kabels aan het maken: https://1op160.nl/zelf-s88-kabels-maken/ (https://1op160.nl/zelf-s88-kabels-maken/).
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 29 november 2023, 12:22:36
ziet er goed uit (y) Wat voor voeding gebruik je voor je servo's?

Bas
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 29 november 2023, 12:34:20
Wat voor voeding gebruik je voor je servo's?

Een "Mean Well LRS-150F-5" netvoeding.
Output 5VDC @ 22A
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 29 november 2023, 12:53:17
22A moet wel 'toereikend' zijn voor een paar servo's  ::)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 29 november 2023, 12:55:54
22A moet wel 'toereikend' zijn voor een paar servo's  ::)

Dat verwacht ik ook wel  ;D
Er komen wel meerdere van dit soort decoders aan (op termijn).
Maar dan nog moet dit geen probleem zijn.
Misschien was deze voeding wat overdreven...
Maar ik heb liever vermogen over dan dat alles op de limieten werkt.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Karst Drenth op 29 november 2023, 13:16:25
Citaat van: 1op160
Een "Mean Well LRS-150F-5" netvoeding.
Output 5VDC @ 22A

Heb je een goede brandverzekering ?  ( hoewel die schade door dergelijke voedingen ook niet zal dekken  :o :'( )

Grtzz,
Karst, die geen idee heeft waarom mensen EU voorschriften gewoonweg aan hun laars lappen....  ::)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 29 november 2023, 13:25:45
Heb je een goede brandverzekering ?

Hallo Karst, hopelijk heb je persoonlijk geen slechte ervaringen met dit soort voedingen.
Zou je je reactie misschien wat willen onderbouwen?
Ik had het idee dat ik een goede voeding gekocht had.
Een aantal punten die mij erg aanspraken waren:
- De gesloten case
- Beschermd tegen kortsluiting, overbelasting en overspanning
- En Conform EN 60335-1 (PD3), EN 61558-1, -2, -16.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Jeroen Vreeken op 29 november 2023, 13:54:48
Ten eerste is het de bedoeling dat dit soort voedingen nog ergens ingebouwd worden.
Het is zeker geen 'consumenten' product. (Je kunt het wel gebruiken om een consumenten product mee te maken, maar het is het zelf niet)

Dan is 22A ook nog eens behoorlijk overgedimensioneerd voor wat servos. Met 22A kun je al aardig lassen.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Karst Drenth op 29 november 2023, 14:05:33
22 Amp bij 5V  is 110 Watt, ruim meer dan een gemiddelde soldeerbout.

En heb je je bedrading niet aangepast aan dat enorme vermogen, kan die bedrading die 22 Amp niet "vervoeren" en gaat warm worden, heel warm !! ( denk wat een soldeerbout doet als je die op plastic, papier of hout legt.... )

bij 22 Amp en 5 Volt mag de maximale weerstand van je bedrading 5/22 = 0.23 Ohm zijn. Anders spreekt noch kortsluitbeveiliging noch overbelastingsbeveiliging aan...

Maar veel erger is wanneer er maar een deel van die max. 22 Amp loopt. b.v. de helft. Dan heb je nog steeds 55 Watt aan warmte in je bedrading te verstoken. Gegarandeerd, dat de "modelbouw-draadjes" dan heel snel van hun isolatie ontdaan worden.

Als veilig ( met een heel grote marge !! ) wordt in de installatie techniek 2.5mm2 gehanteerd voor 32 Amp, 16 Amp bij 1.5mm2 en 6 Amp bij 0.75mm2. Zo kun je doorrekenen tot je ongeveer bij de 0.14 of 0.25 mm2 bent. ( die aan servo's zitten b.v. ) Maar je kunt op je klompen al aanvoelen, dat dat je dan naar minder dan 1 Amp gaat bij 0.14mm2.


Groet,
Karst

P.S. Ik doe dit even uit m'n hoofd, ik denk dat Klaas Zondervan wel de exacte waarden heeft/weet. ;)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Klaas Zondervan op 29 november 2023, 14:21:37
Ook even uit mijn hoofd: voedingen voor deze toepassing mogen maximaal 24V, 20A en 200VA zijn.

Als je 24V vermenigvuldigt met 20A, dan kom je ruim boven 200VA. dat betekent dat deze maxima niet tegelijk mogen optreden.

Wat de spanning betreft zit het met 5V wel goed. Het vermogen van 110VA is ook wel ok. maar die 22A is net boven de grens.
Overigens vind ik 22A ook fors overbemeten. 10A zou ruim genoeg zijn.

Wat het brandrisico betreft, hou het voor gewoonte om nooit bij je spoorbaan weg te lopen als die nog aan staat.

En papier bij een soldeerbout, iemand wel eens geprobeerd? Ik wel. Een velletje A4 printerpapier op de soldeerbout gelegd en gewacht tot het papier in de brand zou vliegen. Na een half uur de proef gestaakt. Het papier was bruin geworden, maar wilde niet gaan branden.
Vraag je je af waarom iemand zo'n proef doet? Nou, als er beweerd wordt dat je met een soldeerbout papier in de brand kunt steken, dan wil ik weten of dat wel waar is.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Karst Drenth op 29 november 2023, 14:34:24
Citaat van: Klaas Zondervan
Vraag je je af waarom iemand zo'n proef doet? Nou, als er beweerd wordt dat je met een soldeerbout papier in de brand kunt steken, dan wil ik weten of dat wel waar is.

Ik stak er vroeger shaggies mee aan ;)  ;D  ( is wel erg dun papier natuurlijk :P en gemaakt om te branden )
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 29 november 2023, 14:37:33
Misschien praat ik nu ongelooflijk veel onzin... en begrijp ik het niet goed.
(ik moet bekennen dat dit niet mijn kennisgebied is).

Maar veel erger is wanneer er maar een deel van die max. 22 Amp loopt. b.v. de helft. Dan heb je nog steeds 55 Watt aan warmte in je bedrading te verstoken.
Maar het maximaal vermogen van een voeding wordt niet constant als output gegeven toch?
Als de vraag laag is zal de output toch ook laag zijn?
Het lijkt mij ook sterk dat het restant aan vermogen wat niet wordt gebruikt dan dus in warmte wordt omgezet.
Dat zou betekenen dat als ik de voeding op het net aansluit zonder er verder iets op aan te sluiten dat de voeding enorm heet zou worden.  ::)

Zo kun je doorrekenen tot je ongeveer bij de 0.14 of 0.25 mm2 bent. ( die aan servo's zitten b.v. )
Ik snap dat het belangrijk is om de juiste bedrading te gebruiken... dus als ringleiding een dikke draad.
Maar vanaf een punt waarna je weet dat er bijvoorbeeld alleen een ledje op zit... kan je met een dunne draad verder. Toch ?
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Klaas Zondervan op 29 november 2023, 14:47:02
Het probleem hier is dat bij te dunne bedrading de weerstand te groot kan worden. Het gevolg is dan dat er bij een kortsluiting op een punt ver van de voeding niet genoeg stroom loopt om de beveiliging te laten aanspreken.
Dan kan het dus zijn dat die stroom van 22A blijft lopen. Een draad van 2,5mm2 kan dat langdurig verdragen, maar een draadje van 0,14 mm2 niet.

Bedenk ook dat de beveiliging van jouw voeding niet precies bij 22A ingrijpt, dat punt ligt bij Meanwells ongeveer 10% hoger, dus tussen 24 en 25A.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 29 november 2023, 14:51:36
Klaas bedankt voor je uitleg.

Is er misschien een manier hoe ik direct achter deze voeding iets kan plaatsen zodat de output terug gaat naar (2 groepen van) bijvoorbeeld 10A ?
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Bert55 op 29 november 2023, 15:11:37
Ik ben het eens met de andere schrijvers dat je een flink risico loopt.
Suggestie: zekering van bijvoorbeeld 1-2A, desnoods 5A (wat ik al veel vind( direct bij de voeding. Of een voeding met die waarde
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: bask185 op 29 november 2023, 15:12:47
Zolang je geen kortsluiting maakt, is er ook niks aan het handje. Ik vind dit verhaal zelf alleen belangrijk bij ontsporende, korstluiting makende treinen.

Op de club hebben we van die marklin boosters voor een H0 baan. Maar de mensen hadden destijds voor de te zware voeding gekozen van 5A ofzo. We hebben installatie draad voor de ringleiding dus die is dik genoeg. De aftakkingen zijn natuurlijk van dunner draad, maar die draden zijn te lang. Op sommige plaatsen kan het dus voorkomen dat een trein ontspoort, kortsluiting maakt en waarbij de booster niet afschakelt. Aan een kant is dat wel handig omdat je het geluid kan volgen naar de sluiting, maar eigenlijk is dit lichtelijk brandgevaarlijk.

Desondanks dat de booster niet afschakelt, zie je wel de andere treinen inkakken. Daarom heb ik voor mijn booster ontwerp een setje zener diodes toegpast over de uitgang met een optocoupler om spanningsdippen te registreren.

En dan moet je nagaan dat sommigen met 10A edits boosters rond rijden. De kans dat het echt mis gaat is erg klein.... Maar als het misgaat, kan dat grote gevolgen hebben.

Citaat
Maar het maximaal vermogen van een voeding wordt niet constant als output gegeven toch?
Als de vraag laag is zal de output toch ook laag zijn?
Ja en ja, de voeding levert dat wat gevraagd wordt.
Citaat
Maar vanaf een punt waarna je weet dat er bijvoorbeeld alleen een ledje op zit... kan je met een dunne draad verder. Toch ?
Ja maar mits die niet te lang zijn.

Citaat
Is er misschien een manier hoe ik direct achter deze voeding iets kan plaatsen zodat de output terug gaat naar (2 groepen van) bijvoorbeeld 10A ?
In dit specifieke geval kan je zelfs nog wel smelt zekeringen of automatische zekeringen gebruiken.

Ik heb er zelf ook een contraption voor, maar die moet ik nog bestellen. Het is een elektronische zekering die tot 4A (instelbaar) doorlaat en bij overbelasting schakelt hij de uitgang af voordat de booster afschakelt. Het idee was om er meerderen achter boosters te plaatsen om zo meerdere, zelf afschakelende/herstellendende secties te maken. Een sluiting in 1 zone kan dan niet meer de rest van de baan beinvloeden. Maar goed daar heb je nu niks aan.  ::)

Mvg,

Bas

P.S.
Citaat
Nou, als er beweerd wordt dat je met een soldeerbout papier in de brand kunt steken, dan wil ik weten of dat wel waar is.
Ik heb dat ooit geprobeerd, was niet gelukt. Het verschroeide wel goed, maar vlam vatten zat er niet in  :'(. Ik zou voor dit doeleind eerder zelf een taser bouwen.. omdat is leuk te doen  ::)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 29 november 2023, 15:25:15
In dit specifieke geval kan je zelfs nog wel smelt zekeringen of automatische zekeringen gebruiken.
Een smelt zekeringen zou een idee zijn.
Al klinkt een automatische zekeringen prettiger.
Heb je misschien een voorbeeld? (een linkje of naam)
Zou dit bijvoorbeeld een optie zijn: https://elektronica-online.nl/product/automatische-zekering-5a-15602 (https://elektronica-online.nl/product/automatische-zekering-5a-15602)

Het is een elektronische zekering die tot 4A (instelbaar) ...
Misschien kan ik dan 4 of 5 groepen maken van 4A a 5A.
Elk met een eigen automatische zekeringen.
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 02 december 2023, 10:49:18
Ik heb een behuizing gemaakt voor mijn zelfbouw DCC decoder.
https://1op160.nl/behuizing-voor-decoder/ (https://1op160.nl/behuizing-voor-decoder/)

Ik wil nog een bovenkant ontwerpen.
Maar zo kan ik in elk geval alles alvast netjes monteren.

(https://1op160.nl/wp-content/uploads/2023/11/PXL_20231129_150652756-1024x771.webp)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: PieterB op 22 januari 2024, 11:17:17
Een smelt zekeringen zou een idee zijn.
Al klinkt een automatische zekeringen prettiger.
Heb je misschien een voorbeeld? (een linkje of naam)
De simpelste automatische zekering dat je kunt nemen is een PTC zekering/polyfuse/polyswitch:

https://www.aliexpress.com/item/1005002580589880.html?spm=a2g0o.order_list.order_list_main.288.14481802zz8PJJ

Let wel dat je ze voor voldoende hoge spanning neemt (de link hierboven is max 60V maar in het bijzonder SMD modellen kunnen vaak maar tegen een te lage spanning).
Deze zekeringen zijn ook niet heel nauwkeurig ofsnel: de gewaarborgde uitschakelstroom is 2x de nominale stroom: bv een 2A PTC aan kamertemperatuur zal nooit uitschakelen als er minder dan 2A doorgaat , en zal zeker uitschakelen binnen enkele seconden als er 4A of meer doorgaat (sneller bij hogere stroom), maar om draden te beveiligen is dat niet zo erg. Je kunt de zekeringen wel best niet te zwaar nemen en er wat meer gebruiken, ze kosten toch ni t veel...

Verder de algemene regel van zekeringen niet vergeten: overal waar je van een grote diameter draad naar kleiner gaat moet er een zekering tussenzitten (behalve als de stroom in de dikke draad als voldoende klein/beperkt/beveiligd is voor de kleine draad).
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 08 februari 2024, 09:58:09
Ik ben nog niet helemaal klaar.
Maar dit geeft wel een aardig beeld van wat ik aan het maken ben.
Hier meer berichtjes over met idee: https://1op160.nl/tag/stroomvoorziening/ (https://1op160.nl/tag/stroomvoorziening/)
Ben best blij met het resultaat al zeg ik het zelf  ::)

(https://1op160.nl/wp-content/uploads/2024/01/PXL_20240129_1237066382-1024x771.webp)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 28 februari 2024, 11:57:30
Nog een kleine update:
https://1op160.nl/stroomvoorziening-is-klaar/ (https://1op160.nl/stroomvoorziening-is-klaar/)
https://1op160.nl/programmeerspoor/ (https://1op160.nl/programmeerspoor/)

(https://1op160.nl/wp-content/uploads/2024/02/PXL_20240219_083512566-1024x771.webp) (https://1op160.nl/wp-content/uploads/2024/02/PXL_20240225_152534796-1024x771.webp)
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: Eric v C op 28 februari 2024, 12:23:44
Michel?,

Ik volg je al een tijdje en kijk zo nu en dan ook op je eigen website.
Daar is ook veel te vinden en te bewonderen heb ik gezien.
Je levert doordacht vakwerk.  (y)

Hier liggen al ruim 1,5 jaar dezelfde wip-led-schakelaars en stroom/spanning meters in de kast voor het aansluitpaneel.
Jij hebt het al gemaakt, mooi werk en inspiratie voor mij waarvoor dank.
ik neem aan dat je er ook zekeringen tussen gezet hebt?

En ook een Fleischmann Twin Center voor het klassieke programmeerwerk zie ik  (y)

Eric
Titel: Re: S88 en DCC wisseldecoders met Arduino
Bericht door: 1op160 op 28 februari 2024, 19:14:20
Michel?,

Ja...  ;D

Ik volg je al een tijdje en kijk zo nu en dan ook op je eigen website.
Daar is ook veel te vinden en te bewonderen heb ik gezien.
Je levert doordacht vakwerk.  (y)

Bedankt voor het compliment.
Leuk dat je ook af en toe op mijn website kijkt.  (y)

Hier liggen al ruim 1,5 jaar dezelfde wip-led-schakelaars en stroom/spanning meters in de kast voor het aansluitpaneel.
Jij hebt het al gemaakt, mooi werk en inspiratie voor mij waarvoor dank.
ik neem aan dat je er ook zekeringen tussen gezet hebt?

Leuk om te lezen dat het een inspiratiebron is voor mensen.
Dat helpt mij om ermee door te gaan.
Ja, naast elke display zit een knopje.
Dit is de zekering. Ik heb de 3 voedingen opgedeeld over 10 zekeringen.
8 met 5 volt en 2 met 12 volt.

En ook een Fleischmann Twin Center voor het klassieke programmeerwerk zie ik  (y)

Ja, deze centrale had ik nog van mijn eerste modelbaan.
En voldoet ook nog prima.  ;)