Elektrik und Elektronik

RE: Hilfe zu Mobatools Servo ansteuern Dcc

 von mondmann25 , 08.11.2020 09:36

Hallo,
ich habe nun auch mal versucht die Mobatools zu verwenden.
Dazu habe ich ein Servo an einen Arduino UNO und als Zentrale die Roco Z21.
Leider habe ich keinen Erfolg, das Servo bewegt sich einfach nicht.
Einstellung Z21: Weiche Adresse 6 Dcc.
Arduino: Servo hängt an Pin 4.

Ich habe schon versucht auf den Pin 2 über den seriellen Monitor zu schauen.
Die Zahlen die ich erhalte ändern sich aber nicht egal was ich drücke oder ob ich die Spannung komplett abschalte.
Könnte da jemand mal drüber schauen was ich falsch mache. Danke schon mal

Hier der Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 

#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 = 0 ; // wegen unterschiedlicher Weichenadressberechnung bei Roco (sonst = 0)
const byte weichenAdr[] = { 6, }; // DCC-Weichenadressen
const byte servoPins[] = { 4, }; // 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);
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 );
}
Serial.begin(9600);

}
////////////////////////////////////////////////////////////////
void loop() {
Dcc.process(); // Hier werden die empfangenen Telegramme analysiert

Serial.println(MAN_ID_DIY );
Serial.println(FLAGS_OUTPUT_ADDRESS_MODE);
Serial.println(FLAGS_DCC_ACCESSORY_DECODER);
delay(5);

}
//////////////////////////////////////////////////////////////
// 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
}
}
}
 
 

mondmann25
Beiträge: 29
Registriert am: 28.01.2012

Themen Überblick

Betreff Absender Datum
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 08.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 09.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc MoBa_Alfred 10.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc MicroBahner 10.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc MicroBahner 11.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 11.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc MicroBahner 11.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 12.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc MicroBahner 13.11.2020
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 11.01.2021
RE: Hilfe zu Mobatools Servo ansteuern Dcc MicroBahner 11.01.2021
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 12.01.2021
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 12.01.2021
RE: Hilfe zu Mobatools Servo ansteuern Dcc MicroBahner 13.01.2021
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 05.02.2021
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 06.02.2021
RE: Hilfe zu Mobatools Servo ansteuern Dcc MicroBahner 06.02.2021
RE: Hilfe zu Mobatools Servo ansteuern Dcc mondmann25 07.02.2021
 

Xobor Einfach ein eigenes Forum erstellen
Datenschutz