Hallo Franz-Peter,
ich habe keinen Drehencoder dran und das define auskommentiert siehe Code.
Oder braucht man unbedingt einen Encoder?
Welche Encoder verwendest Du?
Die Encoder (KY-040 360 Degrees Dreh-Encoder) die ich habe haben keinen Taster dran.
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
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
//#define ENCODER_DOUBLE // Eigenschaften des Drehencoders (Impulse per Raststellung)
// vom Anwender änderbare Parameter um den Zubehördecoder an die verwendete HW anzupassen
// Beispiel für Variante mit Licht-Ausfahrsignal mit Vorsignal, mit Betriebsmode Led an Pin 13 (interne Led)
// für Arduino Nano
//----------------------------------------------------------------
// Hardwareabhängige Konstante ( nicht per CV änderbar)
//----------------------------------------------------------------
// Eingänge analog: ( Bei Nano und Mini - Versionen kann hier auch A7 und A6 verwendet werden, um mehr
// digital nutzbare Ports freizubekommen.
// beim UNO sind A7+A6 nicht vorhanden! )
//#define FIXMODE NORMALMODE // Ist dieses define aktiv, wird der Betriebsmode fest gesetzt, betrModeP wird dann
// nicht gelesen und ignoriert. Mögliche Werte:
// NORMALMODE, POMMODE, INIMODE, ADDRMODE
const byte betrModeP = A5; // Analogeingang zur Bestimmung des Betriebsmodus. Wird nur beim
// Programmstart eingelesen!
const byte resModeP = A4; // Rücksetzen CV-Werte + Mittelstellung Servos
// Eingänge digital (die Ports A0-A5 lassen sich auch digital verwenden): ---------
// Drehencoder zur Servojustierung ...........
//#define ENCODER_AKTIV // Wird diese Zeile auskommentiert, wird der Encoder nicht verwendet.
// Die Encoder-Ports werden dann ignoriert, und können anderweitig
// verwendet werden.
const byte encode1P = A3; // Eingang Drehencoder zur Justierung.
const byte encode2P = A2;
// ............................................
//-------------------------------------------------------------------------------------------------------
// Betriebswerte ( per CV änderbar ) Diese Daten werden nur im Initiierungsmodus in die CV's geschrieben.
// Der Initiierungsmodus lässt sich per Mode-Eingang aktivieren oder er ist automatisch aktiv, wenn keine
// sinnvollen Werte im CV47 stehen.
//-------------------------------------------------------------------------------------------------------
const int DccAddr = 6; // DCC-Decoderadresse
const byte iniMode = 0x50 | AUTOADDR /*| ROCOADDR*/; // default-Betriebsmodus ( CV47 )
const int PomAddr = 50; // Adresse für die Pom-Programmierung ( CV48/49 )
// mit LocoNet-Schnittstelle ist dies die LocoNetId
#define NOACK // Diese Zeile aktivieren, wenn keine HW zum CV auslesen vorhanden ist
// ( kein Ack-Pin ) Der in Interfac.h definierte Pin wird dann zwar als OUTPUT
// gesetzt, kann aber für beliebige Funktionen in der Tabelle unten genutzt werden
// Ausgänge: mit NC gekennzeichnete Ausgänge werden keinem Port zugeordnet. Damit können Ports gespart werden,
// z.B. wenn bei einem Servo kein Polarisierungsrelais benötigt wird
const byte modePin = 13; // Anzeige Betriebszustand (Normal/Programmierung) (Led)
#define STATICRISE (250/50 << 4) // Softled riseTime = 250
#define COILMOD NOPOSCHK|CAUTOOFF
#define SERVOMOD SAUTOOFF|NOPOSCHK|SDIRECT
#define STATICMOD CAUTOOFF|BLKSOFT|BLKSTRT|STATICRISE // Wechselblinker mit beiden Leds an beim Start
const byte iniTyp[] = { FSERVO, FSERVO, FSERVO };
const byte out1Pins[] = { 3, 4, 5 }; // output-pins der Funktionen
const byte out2Pins[] = { NC, NC, /*gn*/NC };
const byte out3Pins[] = { NC, NC, /*ge*/ NC };
const byte iniFmode[] = {SERVOMOD, SERVOMOD, SERVOMOD };
const byte iniPar1[] = { 30, 30, 30 }; //Endlage Servo
const byte iniPar2[] = { 150, 150, 150 };// Endlage Servo
const byte iniPar3[] = { 8, 8, }; //Geschwindigkeit bei Servos
const byte iniPar4[] = { 0, 0, 0 }; // nur für Lichtsignale!