Picture

Nielsmy

Underviser

Indlæg: 14

PB  Blog

Hjemmelavet dekoder til et lokomotiv

Jeg ønsker at fremstille en dekoder til et marklin lokomotiv.

Jeg har anskaffet mig en Arduino UNO!

(Til lokomotivet skal jeg nok anvende Arduino nano)

Jeg har søgt på nettet men har endu ikke fundet noget brugbart.

Jeg kunne også starte med en simpel funktionsdekoder  styret fra  controlpulten

Har nogen forsøgt sig med en hjemmelavet dekoder?

Kan nogen hjælpe mig  

Like 0 kan lide
Top

Picture

DanskBjergbane

Minimalt

Kastrup

Indlæg: 503

PB  Blog

http://www.frederiksson.dk/bbr/bbr21.htm

__________________

Hilsen Jan

Märklin K-skinne, Epoke I/II Syd Bavarisk landskab. Tysk (Bayern, Württemberg, Baden) Epoke I, II & III rullende.

ESU Ecos 2, SwitchPilot II, Viessman, LDT. Philips Hue, TrainController Gold V9.0 med SmartHand+, og lidt hjemmekodet diverse

Like 0 kan lide
Top

Picture

Bent_P

Jyllands hovedstad

Indlæg: 1.650

PB

Ja, jeg har været med til hjemmelavede dekoder. Det blev okay, men tiden er løbet fra den slags, når man kan købe en færdig dekoder for 125 kroner.

__________________

Hilsen Bent P.

Märklin gennem 40 år, M, K og C-skinner

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.215

PB  Blog  Hjemmeside

Jeg er enig med Bent: Økonomisk kan det bestemt ikke betale sig at lave en dekoder selv, og der er også næsten umuligt at lave den lige så lille som en færdigkøbt - med mindre man "snyder" og har adgang til en lang række professionelle værktøjer.

Men hvis du insisterer, bør du nok overveje at se på Microduino projektet: En Arduino Nano kan ikke gøre det alene - du kan ikke trække en motor direkte på Nanoen, så du skal have et ekstra print med motorelektronik, før du er kørende. Microduino fylder mindre, og man kan få et motorprint, der passer til processoren. Jeg venter pt. på, at Microduino bliver klar i 3,3 V udgaven, men vil så bestille nogle hjem til nogle projekter, jeg har gang i.

På software-siden bør du se på Model Railroading With Arduino - her finder man bl.a. OpenDCC projektet i Arduino-udgave.

Endeligt har jeg skrevet en række artikler om Arduino i min blog her på Sporskiftet, og du kan læse lidt om, hvordan jeg har eksperimenteret med en optokobler til at sende DCC signaler ind i Arduinoen i denne tråd.

Arduinoen er spændende og passer fint til en række af mine projekter - men ingen af dem er lokomotivdekodere: Her er det efter min mening bedre og billigere at købe en færdig. Til gengæld er jeg i gang med at forberede min store Artitec coaster til at kunne strømforsynes fra et Li-ion batteri og styres med en Microduino med WiFi interface - på den måde kan jeg lave en model, der kan flyttes rundt i havnen uden ledninger og alligevel fjernstyres.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

DCC

Indlæg: 359

PB

Hej, jeg må give Bent P ret tiden er løbet fra disse projekter. Medmindre man synes det er sjovt selv at strikke sine egne ting sammen. Meen 125 kr for en dekoder der med garanti virker, så gad jeg ikke bøvle.  

__________________

 

/Brian Ottens

----------------------------------------------------------------------------

Traincontroller Gold -Smarthand - Trainprogrammer:  Version 9, 

Lenz LZV200 , Lenz 23150 USB-Interface (Windows10), Lenz tilbagemeldere samt LDT  RS-8 tilbagemeldere
LH101, LH01

Peco Spor kode 75

 

www.mdmjk.dk

www.karensvej7.dk

Like 0 kan lide
Top

Picture

Nielsmy

Underviser

Indlæg: 14

PB  Blog

Tak  Lars

Hvor er det skønt at kunne få hjælp!

Jeg er godt klar over at det aldrig kan betale sig at fremstille en decoder til et lokomotiv.

Men det er jo en hobby og jeg vil så gerne lære at beherske protokollen (NMRA DCC).

Jeg har et inderligt ønske om at kunne fremstille en decoder baseret på min Arduino Uno.

I første omgang kan denne decoder bare være at kunne styre et par simple funktioner fra min centralpult eks lys  eller lyd  i bygninger etc.

Måske har du et program til Arduinoen som kan føre mig videre?

Jeg har fundet softwaren til en DCC-monitor på følgende adresse: http://www.mynabay.com/home

Jeg har bygget hardwaren ,hvor jeg benyttede  dit interface med optokobleren.

Jeg tror nok jeg fik importeret bliblioteket DCC-Monitor

(jeg har lidt problemer med at udpakke filer. Det er nok mig der er dum)

Nu vil jeg afprøve det i morgen.

Tak for din hjælp

 

 

 

Like 0 kan lide
Top

Picture

Nielsmy

Underviser

Indlæg: 14

PB  Blog

Tak for dit svar

Du har ret det kan ikke betale sig.

Du må forstå at det er min hobby og den kan ikke gøres op i penge.

For mig er det tilfredsstillende at fremstille en decoder selv. 

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.215

PB  Blog  Hjemmeside

Da' Niels.

Nielsmy skrev:
Jeg er godt klar over at det aldrig kan betale sig at fremstille en decoder til et lokomotiv.

Men det er jo en hobby og jeg vil så gerne lære at beherske protokollen (NMRA DCC).

Se, det er jo en anden sag - hatten af for det!

Citat:
Måske har du et program til Arduinoen som kan føre mig videre?

Jeg fandt et engelsk forum med en tråd, der hjalp mig meget videre: Jeg har haft koden, der vises her, til at virke på mit udstyr - mere præcist har jeg haft et setup kørende, hvor jeg kunne tænde den normale LED på Arduinoen fra min SPROG og min ECoS. Den virksomme kode er skrevet af Adam Hellier, der også har skrevet om projektet på hans egen blog.

Men det er desværre ved at være lidt lang tid siden, jeg sidst har haft lejlighed til at fyre op under det hele, så min erindring om projektet er en anelse rusten; men jeg har følgende kode liggende, det er nok den, jeg har haft til at køre:

//DCC Decoder
//By Adam Hellier <adam@adamhellier.co.uk>
//Free for personal use, may not be reproduced comercially without consent
 
#include <NmraDcc.h>
 
//Begin Dcc Code
 
NmraDcc  Dcc ;
DCC_MSG  Packet ;
 
struct CVPair
{
  uint16_t  CV;
  uint8_t   Value;
};
 
CVPair FactoryDefaultCVs [] =
{
  {
    CV_ACCESSORY_DECODER_ADDRESS_LSB, 1            }
  ,
  {
    CV_ACCESSORY_DECODER_ADDRESS_MSB, 0            }
  ,
};
 
uint8_t FactoryDefaultCVIndex = 0;
 
void notifyCVResetFactoryDefault()
{
  // Make FactoryDefaultCVIndex non-zero and equal to num CV's to be reset 
  // to flag to the loop() function that a reset to Factory Defaults needs to be done
  FactoryDefaultCVIndex = sizeof(FactoryDefaultCVs)/sizeof(CVPair);
};
 
const int DccAckPin = 2 ;
 
// This function is called by the NmraDcc library when a DCC ACK needs to be sent
// Calling this function should cause an increased 60ma current drain on the power supply for 6ms to ACK a CV Read 
void notifyCVAck(void)
{
  //digitalWrite( DccAckPin, HIGH );
  //delay( 6 );  
  //digitalWrite( DccAckPin, LOW );
}
 
 
 
//Begin the void Setup
void setup()
{
  {
    // Configure the DCC CV Programing ACK pin for an output
    //pinMode( DccAckPin, OUTPUT );
 
    // Setup which External Interrupt, the Pin it's associated with that we're using and enable the Pull-Up 
    Dcc.pin(0, 2, 1);
 
    // Call the main DCC Init function to enable the DCC Receiver
    Dcc.init( MAN_ID_DIY, 10, FLAGS_OUTPUT_ADDRESS_MODE | FLAGS_DCC_ACCESSORY_DECODER, 0 );
  }
 
  pinMode(13, OUTPUT);
}
 
 
 
// This function is called whenever a normal DCC Turnout Packet is received
void notifyDccAccState( uint16_t Addr, uint16_t BoardAddr, uint8_t OutputAddr, uint8_t State)
{
  if (Addr <= 13 && Addr >= 1) { //checks to see if the Adress CV belongs to this decoder
    if ((OutputAddr % 2) == 0) { //checks to see if we have anything left when output addresss is divided by 2
      digitalWrite(13, HIGH);
    } else {
      digitalWrite(13, LOW);
    }
  }
}
 
 
 
void loop()
{
  // You MUST call the NmraDcc.process() method frequently from the Arduino loop() function for correct library operation
  Dcc.process();
 
  if (FactoryDefaultCVIndex && Dcc.isSetCVReady()) {
    FactoryDefaultCVIndex--; // Decrement first as initially it is the size of the array 
    Dcc.setCV( FactoryDefaultCVs[FactoryDefaultCVIndex].CV, FactoryDefaultCVs[FactoryDefaultCVIndex].Value);
  }
}
__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Nielsmy

Underviser

Indlæg: 14

PB  Blog

Endnu engang tak Lars.

Jeg kigger på det.

Niels

Like 0 kan lide
Top

Kommentarvisning

Vælg din foretrukne kommentarvisning og klik på "Gem indstillinger" for at aktivere dit valg.