Detsimbo:
das habe ich hinbekommen aber ich möchte das ganze ja über die Digitalzentrale steuern 
Das geht ja mit dem Beispiel, aus dem die Zeile von agmue ist.
Hier das ganze Beispiel:
#include <NmraDcc.h>
#include <MobaTools.h>
// Demo: ein ganz einfacher Dcc-Servodecoder //
//------------------------------------------ //
// die NmraDcc - Library gibt es unter https://github.com/mrrwa/NmraDcc/archive/master.zip
// anzupassende Konstante:
const byte isROCO = 4 ; // wegen unterschiedlicher Weichenadressberechnung bei Roco (sonst = 0)
const byte weichenAdr[] = { 6, 7, 3, 123, 8, 34, 77, 88}; // DCC-Weichenadressen
const byte servoPins[] = { 3, 4, 5, 6, 7, 8, 9, 10}; // output-pin der Servos
const int geradePulse[] = {1200,1200,1200,1200,1200,1200,1200,1200}; // Pulslänge geradeaus
const int abzweigPulse[]= {1800,1800,1800,1800,1800,1800,1800,1800}; // Pulslänge abzweigend
const int speed = 8;
const byte autoOff = 1;
const byte ServoZahl = sizeof(weichenAdr);
static word StackPointer;
Servo8 weicheS[ServoZahl];
NmraDcc Dcc;
///////////////////////////////////////////////////////////////
void setup() {
Dcc.init( MAN_ID_DIY, 15, FLAGS_OUTPUT_ADDRESS_MODE | FLAGS_DCC_ACCESSORY_DECODER, 0 );
Dcc.pin(0, 2, 1); // Dcc-Signal an Pin2 ( = Int0 );
for ( byte i=0; i<ServoZahl; i++ ) {
// Weichenservos initiieren
weicheS[i].attach( servoPins[i], autoOff );
weicheS[i].setSpeed( speed );
}
}
////////////////////////////////////////////////////////////////
void loop() {
Dcc.process(); // Hier werden die empfangenen Telegramme analysiert
}
//////////////////////////////////////////////////////////////
// Unterprogramme, die von der DCC Library aufgerufen werden:
// Die folgende Funktion wird von Dcc.process() aufgerufen, wenn ein Weichentelegramm empfangen wurde
void notifyDccAccState( uint16_t Addr, uint16_t BoardAddr, uint8_t OutputAddr, uint8_t State ){
// Weichenadresse berechnen
word wAddr = Addr+isROCO; // Roco zählt ab 0, alle anderen lassen die ersten 4 Weichenadressen frei
// Testen ob eigene Weichenadresse
for ( byte i = 0; i < ServoZahl; i++ ) {
if ( wAddr == weichenAdr[i] ) {
// ist eigene Adresse, Servo ansteuern
if ( OutputAddr & 0x1 ) {
weicheS[i].write( geradePulse[i] );
} else {
weicheS[i].write( abzweigPulse[i] );
}
break; // Schleifendurchlauf abbrechen, es kann nur eine Weiche sein
}
}
}
Detsimbo:
sparen klingt gut, was genau?
2 Widerstände und den Kondensator:
