Willkommen 

RE: Arduino Steuerung Sägewerk

#51 von stefan79 , 21.06.2021 16:05

Hallo Matthias,

Wollte das Programm grade hochladen das geht aber leider nicht zeigt mir ein Fehler an.

MoToServo does not name typ

Das war bei meinem Versuch auch .

Gruß Stefan


stefan79  
stefan79
Regionalbahn (RB)
Beiträge: 43
Registriert am: 21.03.2019
Ort: NRW
Spurweite H0
Steuerung PG Z21
Stromart Digital


RE: Arduino Steuerung Sägewerk

#52 von Matthias_h0 , 21.06.2021 16:05

Hallo Stefan
Ich habe es gerade auch mal getestet und bei mir gibt es auch einen Fehler in der Zeile. Das wundert mich jetzt schon, denn die Zeile macht eigentlich nichts anderes als die beiden Zeilen davor. Trotzdem gibt es eine Fehlermeldung bei dieser Zeile, während die beiden Zeilen davor in Ordnung sind. Komisch
Ich werde mir das nachher nochmal genauer ansehen.

Viele Grüße
Matthias


MobaLedLib Wiki


stefan79 hat sich bedankt!
Matthias_h0  
Matthias_h0
InterRegio (IR)
Beiträge: 235
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital


RE: Arduino Steuerung Sägewerk

#53 von e69-fan , 21.06.2021 16:20

Hallo Matthias,

ich habe im g e s a m t e n Programm die Bezeichnung der Servos in myServo1, myServo2, myServo3 geändert und jetzt funktioniert es.

1
2
3
4
5
6
7
8
9
 

 
#include <MobaTools.h>
MoToStepper Step1(4096, HALFSTEP);
MoToServo myServo1;
MoToServo myServo2;
MoToServo myServo3;
 

 



Warum auch immer, vielleicht kann uns das der MicroBahner erklären?

Wolfgang


Grüße aus der Heimat der E69
https://arduino-fan.de/


stefan79 hat sich bedankt!
 
e69-fan
Regionalbahn (RB)
Beiträge: 41
Registriert am: 11.01.2014


RE: Arduino Steuerung Sägewerk

#54 von Matthias_h0 , 21.06.2021 16:30

Hallo Wolfgang
Vielen Dank!
Ich hatte das auch schon probiert, aber ich hatte nur die Bezeichnung von Servo3 geändert, das hat nicht geholfen.
Ich habe keine Ahnung, warum das so ist.
Es wäre schön, wenn Franz-Peter ( @MicroBahner ) dazu etwas sagen könnte.

Viele Grüße,
Matthias


MobaLedLib Wiki


stefan79 hat sich bedankt!
Matthias_h0  
Matthias_h0
InterRegio (IR)
Beiträge: 235
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital


RE: Arduino Steuerung Sägewerk

#55 von MicroBahner , 21.06.2021 22:56

Hallo Matthias,

Zitat von Matthias_h0 im Beitrag #54
Es wäre schön, wenn Franz-Peter ( @MicroBahner ) dazu etwas sagen könnte.

Da habe ich jetzt im Moment auch keine Erklärung. Es reicht, wenn man die Zeile mit Servo3 an den Anfang stellt:

1
2
3
4
 
MoToServo Servo3;
MoToServo Servo1;
MoToServo Servo2;
 
 


Dann compiliert es bei mir.

Du solltest aber dringend mal die Warnungen beim Compiler einschalten. Da wirft der Compiler eine ganze Menge aus, und das sind beileibe nicht alles 'nur' Warnungen. Da sind auch Warnungen dabei, die tatsächlich Fehler sind. Du lässt einen Index weiter laufen, als es der Arraygröße entspricht. Der Fehler kann sehr tückisch sein. Es empfiehlt sich, die Array-Grenzen beim Laufindex nicht einfach fest einzutragen, sondern mit sizeof von der tatsächlichen Arraygröße abhängig zu machen. Das ist sicherer.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der 'Eisberg'


e69-fan und stefan79 haben sich bedankt!
 
MicroBahner
Metropolitan (MET)
Beiträge: 2.686
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart Analog


RE: Arduino Steuerung Sägewerk

#56 von Matthias_h0 , 22.06.2021 15:44

Hallo Franz-Peter,
vielen Dank, das war mir nicht aufgefallen. Ich hatte nachträglich einen Pin für ein zusätzliches Servo aus dem Array rausgenommen und habe natürlich vergessen, das Programm anzupassen.
Ich habe jetzt sizeof verwendet, dann sollte es keine Probleme mehr geben.
Vielen Dank für deine Hilfe!
An dieser Stelle auch vielen Dank für deine tollen MobaTools, ich verwende diese auch zur Steuerung meiner bewegten Figuren und bin begeistert, wie leicht sich die Servos damit langsam bewegen lassen. Ohne deine MobaTools wäre auch dieses Programm so nicht möglich gewesen.

Hier ist das neue Programm:

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
 

 
#include <MobaTools.h>
MoToStepper Step1(4096, HALFSTEP);
MoToServo Servo3;
MoToServo Servo1;
MoToServo Servo2;
 

 
//Anschlusspins
const byte stPn[] = { 7, 9, 8, 10 }; //Anschluss Pins für den Steppermotor
const byte Neonleuchten_Pins[] = {A0, A1, A2, A3, A4, A5}; //Pins für die Neonleuchten
const byte Lichtausgaenge[] = {6, 11, 12, 13};
 
#define DccAdresse1 1 //DCC Addresse für den Steppermotor
#define DccAdresse2 2 //DCC Adresse für die Servos
#define DccAdresse3 3 //DCC Adresse für Neonröhren
#define DccAdresse4 4 //DCC Adresse für Lichtausgänge
#define DccAdresse5 5 //DCC Adresse für zusätzliches Servo
 
#define Stepperspeed 80 //Geschwindigkeit des Steppermotors
 
#define Servo1Pin 3 //Pin für Servo 1
#define Servo1Speed 20 //Geschwindigkeit Servo 1
#define Servo1Pos1 0 //Position 1 für Servo 1
#define Servo1Pos2 180 //Position 2 für Servo 1
 
#define Servo2Pin 4
#define Servo2Speed 20
#define Servo2Pos1 0
#define Servo2Pos2 180
 
#define Servo3Pin 5
#define Servo3Speed 20
#define Servo3Pos1 0
#define Servo3Pos2 180
 

#include <NmraDcc.h>
NmraDcc Dcc;
DCC_MSG Packet ;
const byte isRoco = 4; //Offset für Weichenadressen
 
unsigned long previousmillis = 0;
bool Neonleuchten_State = 0;
bool InputState = 1;
bool InputState2 = 1;
byte flackern = 0;
unsigned long prevflackermillis = 0;
unsigned long RandFlackerTime = 0;
 
void setup() {
Step1.attach( stPn[0], stPn[1], stPn[2], stPn[3] );
Step1.setSpeed(Stepperspeed);
Dcc.pin(0, 2, 1); // Dcc-Signal an Pin2 ( = Int0 );
Dcc.init( MAN_ID_DIY, 15, FLAGS_OUTPUT_ADDRESS_MODE | FLAGS_DCC_ACCESSORY_DECODER, 0 );
Servo1.attach(Servo1Pin, true);
Servo2.attach(Servo2Pin, true);
Servo3.attach(Servo3Pin, true);
Servo1.setSpeed(Servo1Speed);
Servo2.setSpeed(Servo2Speed);
Servo3.setSpeed(Servo3Speed);
for (uint16_t i = 0; i < sizeof(Neonleuchten_Pins); i++) {
pinMode(Neonleuchten_Pins[i], OUTPUT);
}
for (uint16_t i = 0; i < sizeof(Lichtausgaenge); i++) {
pinMode(Lichtausgaenge[i], OUTPUT);
}
}
 

 

void loop() {
Dcc.process();
unsigned long currentmillis = millis();
if (InputState2 == LOW) {
for (uint16_t i = 0; i < sizeof(Lichtausgaenge); i++) {
digitalWrite(Lichtausgaenge[i], HIGH);
}
}
else {
for (uint16_t i = 0; i < sizeof(Lichtausgaenge); i++) {
digitalWrite(Lichtausgaenge[i], LOW);
}
}
if (InputState == LOW && Neonleuchten_State == LOW) {
if (currentmillis - prevflackermillis > RandFlackerTime) {
if (flackern < 100) {
flackern++;
RandFlackerTime = random(5, 10);
if (random(0, 3) < 2) {
digitalWrite(Neonleuchten_Pins[random(0, 6)], HIGH);
}
else {
digitalWrite(Neonleuchten_Pins[random(0, 6)], LOW);
}
}
else {
Neonleuchten_State = HIGH;
for (uint16_t i = 0; i < sizeof(Neonleuchten_Pins); i++) {
digitalWrite(Neonleuchten_Pins[i], HIGH);
}
flackern = 0;
}
prevflackermillis = currentmillis;
}
}
if (InputState == HIGH) {
Neonleuchten_State = LOW;
for (uint16_t i = 0; i < sizeof(Neonleuchten_Pins); i++) {
digitalWrite(Neonleuchten_Pins[i], LOW);
}
}
 

 
}
 
void notifyDccAccState( uint16_t Addr, uint16_t BoardAddr, uint8_t OutputAddr, uint8_t State ) {
word wAddr = Addr + isRoco; //Offset für Roco wird eingerechnet, da Roco die Weichenadressen anders zählt
if ( wAddr == DccAdresse1) {
if ( OutputAddr & 0x1 ) {
Step1.rotate(1);
} else {
Step1.stop();
}
}
if ( wAddr == DccAdresse2) {
if ( OutputAddr & 0x1 ) {
Servo1.write(Servo1Pos1);
Servo2.write(Servo2Pos1);
} else {
Servo1.write(Servo1Pos2);
Servo2.write(Servo2Pos2);
}
}
if ( wAddr == DccAdresse3) {
if ( OutputAddr & 0x1 ) {
InputState = LOW;
} else {
InputState = HIGH;
}
}
if ( wAddr == DccAdresse4) {
if ( OutputAddr & 0x1 ) {
InputState2 = LOW;
} else {
InputState2 = HIGH;
}
}
if ( wAddr == DccAdresse5) {
if ( OutputAddr & 0x1 ) {
Servo3.write(Servo3Pos1);
} else {
Servo3.write(Servo3Pos2);
}
}
 

}
 
 



Jetzt kommen beim Kompilieren keine solchen Warnungen mehr.

Viele Grüße
Matthias


MobaLedLib Wiki


stefan79 hat sich bedankt!
Matthias_h0  
Matthias_h0
InterRegio (IR)
Beiträge: 235
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital


RE: Arduino Steuerung Sägewerk

#57 von e69-fan , 22.06.2021 16:10

Hallo Matthias,

bei mir wird noch folgende Fehlermeldung beim compilern ausgegeben:

Anmerkung: Ich habe den Sketch ohne DCC-Zentrale getestet - vielleicht darum ???

1
2
3
4
5
6
7
8
9
10
11
 

 
C:\Users\Internet\Documents\Arduino\sketch_jun22a_2\sketch_jun22a_2.ino: In function 'void notifyDccAccState(uint16_t, uint16_t, uint8_t, uint8_t)':
C:\Users\Internet\Documents\Arduino\sketch_jun22a_2\sketch_jun22a_2.ino:119:49: warning: unused parameter 'BoardAddr' [-Wunused-parameter]
void notifyDccAccState( uint16_t Addr, uint16_t BoardAddr, uint8_t OutputAddr, uint8_t State ) {
^~~~~~~~~
C:\Users\Internet\Documents\Arduino\sketch_jun22a_2\sketch_jun22a_2.ino:119:88: warning: unused parameter 'State' [-Wunused-parameter]
void notifyDccAccState( uint16_t Addr, uint16_t BoardAddr, uint8_t OutputAddr, uint8_t State ) {
^~~~~
 

 



Servus - Wolfgang


Grüße aus der Heimat der E69
https://arduino-fan.de/


 
e69-fan
Regionalbahn (RB)
Beiträge: 41
Registriert am: 11.01.2014


RE: Arduino Steuerung Sägewerk

#58 von MicroBahner , 22.06.2021 16:37

Hallo Wolfgang,

Zitat von e69-fan im Beitrag #57
bei mir wird noch folgende Fehlermeldung beim compilern ausgegeben:

Das sind jetzt allerdings in der Tat 'nur' Warnungen, da nicht alle von der NMRA-Lib übergebenen Parameter/Daten verwendet werden. Das kann ja durchaus ok sein.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der 'Eisberg'


e69-fan hat sich bedankt!
 
MicroBahner
Metropolitan (MET)
Beiträge: 2.686
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart Analog

zuletzt bearbeitet 22.06.2021 | Top

RE: Arduino Steuerung Sägewerk

#59 von MicroBahner , 22.06.2021 16:50

Hallo Matthias,

Zitat von Matthias_h0 im Beitrag #56
Ich habe jetzt sizeof verwendet, dann sollte es keine Probleme mehr geben.

Noch ein kleienr Hinweis zu sizeof - vielleicht ist es dir klar, aber dann auch als Hinweis für die anderen.
sizeof() gibt immer die Arraygröße in byte zurück, nicht die Zahl der Elemente. Nur wenn die einzelnen Elemente auch als byte deklariert sind, entspricht das auch der Anzahl der Elemente im Array. Wenn man das jetzt so direkt einsetzt, wie Du das gemacht hast, muss man da schon drauf achten, sonst kann auch das schnell 'in die Hose' gehen - z.B. wenn man den Elementtyp nachträglich von byte auf int ändern muss.
Um den Zusammenhang zu bewahren, habe ich mir deshalb angewöhnt, direkt bei der Definition des Arrays mit sizeof eine Konstante zu definieren, die die Anzahl der Elemente des Arrays beinhalt. Zum einen hat man da noch den direkten Zusammenhang, ob das Array auch als byte definiert ist, oder man kann es dann direkt in der Art

1
 
myArrayElements = sizeof(myArray) / sizeof(myArray[0]);
 

berücksichtigen.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der 'Eisberg'


e69-fan, Matthias_h0 und Hardi haben sich bedankt!
 
MicroBahner
Metropolitan (MET)
Beiträge: 2.686
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart Analog

zuletzt bearbeitet 22.06.2021 | Top

RE: Arduino Steuerung Sägewerk

#60 von Matthias_h0 , 22.06.2021 20:28

Hallo Franz-Peter
Das wusste ich, ich habe hier aber darauf verzichtet, weil man den Variablentyp für die Pins ja wohl kaum ändern wird.

Viele Grüße,
Matthias


MobaLedLib Wiki


Matthias_h0  
Matthias_h0
InterRegio (IR)
Beiträge: 235
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital


RE: Arduino Steuerung Sägewerk

#61 von stefan79 , 02.07.2021 07:10

Hallo Matthias

Kannst du mir wenn du Zeit hast das Sägewerk Programm ändern das ich den stepper separat schalten kann über eine dcc Adresse.

Danke
Gruß Stefan


stefan79  
stefan79
Regionalbahn (RB)
Beiträge: 43
Registriert am: 21.03.2019
Ort: NRW
Spurweite H0
Steuerung PG Z21
Stromart Digital


RE: Arduino Steuerung Sägewerk

#62 von stefan79 , 02.07.2021 13:02

Hallo Matthias,

ich hab es hin bekommen es läuft zumindest

könntest aber vielleicht mal drauf gucken ob das so richtig ist was ich gemacht habe.

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
 
#include <MobaTools.h>
MoToStepper Step1(4096, HALFSTEP);

//Anschlusspins
const byte stPn[] = { 7, 8, 9, 10 }; //Anschluss Pins für den Steppermotor
const byte Neonleuchten_Pins[] = {A0, A1, A2, A3, A4}; //Pins für die Neonleuchten

#define Gaslampe1 11 //Pin für die Gaslampe
#define Gaslampe2 3
#define Gaslampe3 5
#define Gaslampe4 6

 
#define DccAdresse1 100 //DCC Addresse
#define DccAdresse2 109 //DCC Addresse für den Steppermotor

#define Stepperspeed 100 //Geschwindigkeit des Steppermotors

#include <NmraDcc.h>
NmraDcc Dcc;
DCC_MSG Packet ;
const byte isRoco = 4; //Offset für Weichenadressen

 
unsigned long previousmillis = 0;
bool Neonleuchten_State = 0;
bool Stepperstate = 0;
int RandStepperTime = 0;
bool InputState = 1;
bool OldStepperState = 0;
byte flackern = 0;
unsigned long prevflackermillis = 0;
unsigned long RandFlackerTime = 0;

byte Gaslampe1State = 0;
unsigned long prevGaslampe1Millis =0;
byte Gaslampe1Helligkeit = 0;
byte Gaslampe2State = 0;
unsigned long prevGaslampe2Millis = 0;
byte Gaslampe2Helligkeit = 0;
byte Gaslampe3State = 0;
unsigned long prevGaslampe3Millis = 0;
byte Gaslampe3Helligkeit = 0;
byte Gaslampe4State = 0;
unsigned long prevGaslampe4Millis = 0;
byte Gaslampe4Helligkeit = 0;
 

void setup() {
Step1.attach( stPn[0], stPn[1], stPn[2], stPn[3] );
Step1.setSpeed(Stepperspeed);
for (int i = 0; i < 5; i++) {
pinMode(Neonleuchten_Pins[i], OUTPUT);
}
pinMode(Gaslampe1, OUTPUT);
pinMode(Gaslampe2, OUTPUT);
pinMode(Gaslampe3, OUTPUT);
pinMode(Gaslampe4, OUTPUT);
randomSeed(millis());
Dcc.pin(0, 2, 1); // Dcc-Signal an Pin2 ( = Int0 );
Dcc.init( MAN_ID_DIY, 15, FLAGS_OUTPUT_ADDRESS_MODE | FLAGS_DCC_ACCESSORY_DECODER, 0 );

}

 

void loop() {
Dcc.process();
unsigned long currentmillis = millis();
if (InputState == LOW) {
 
}
if (InputState == LOW && Neonleuchten_State == LOW) {
if (currentmillis - prevflackermillis > RandFlackerTime) {
if (flackern < 100) {
flackern++;
RandFlackerTime = random(30, 10);
if (random(0, 3) < 2) {
digitalWrite(Neonleuchten_Pins[random(0, 5)], HIGH);
}
else {
digitalWrite(Neonleuchten_Pins[random(0, 5)], LOW);
}

}
else {
Neonleuchten_State = HIGH;
for (int i = 0; i < 5; i++) {
digitalWrite(Neonleuchten_Pins[i], HIGH);
}
Gaslampe1State = 1;
analogWrite(Gaslampe1, 100);
flackern = 0;
}
prevflackermillis = currentmillis;
}


}
if (Gaslampe1State == 1) {
if (currentmillis - prevGaslampe1Millis > 30) {
analogWrite(Gaslampe1, 255);
Gaslampe1State = 2;
prevGaslampe1Millis = currentmillis;
}
}
if (Gaslampe1State == 2) {
if (currentmillis - prevGaslampe1Millis > 10) {
if(Gaslampe1Helligkeit<255){
Gaslampe1Helligkeit++;
analogWrite(Gaslampe1, Gaslampe1Helligkeit);
}
else{
Gaslampe1State = 0;
Gaslampe1Helligkeit = 0;
Gaslampe2State = 1;
Gaslampe2Helligkeit = 0;
}

prevGaslampe1Millis = currentmillis;
}
}

if (Gaslampe2State == 1) {
if (currentmillis - prevGaslampe2Millis > 30) {
analogWrite(Gaslampe2, 255);
Gaslampe2State = 2;
prevGaslampe2Millis = currentmillis;
}
}
if (Gaslampe2State == 2) {
if (currentmillis - prevGaslampe2Millis > 10) {
if(Gaslampe2Helligkeit<255){
Gaslampe2Helligkeit++;
analogWrite(Gaslampe2, Gaslampe2Helligkeit);
}
else{
Gaslampe2State = 0;
Gaslampe2Helligkeit = 0;
Gaslampe3State = 1;
Gaslampe3Helligkeit = 0;
}

prevGaslampe2Millis = currentmillis;
}
}

if (Gaslampe3State == 1) {
if (currentmillis - prevGaslampe3Millis > 30) {
analogWrite(Gaslampe3, 255);
Gaslampe3State = 2;
prevGaslampe3Millis = currentmillis;
}
}
if (Gaslampe3State == 2) {
if (currentmillis - prevGaslampe3Millis > 10) {
if(Gaslampe3Helligkeit<255){
Gaslampe3Helligkeit++;
analogWrite(Gaslampe3, Gaslampe3Helligkeit);
}
else{
Gaslampe3State = 0;
Gaslampe3Helligkeit = 0;
Gaslampe4State = 1;
Gaslampe4Helligkeit = 0;
}

prevGaslampe3Millis = currentmillis;
}
}

if (Gaslampe4State == 1) {
if (currentmillis - prevGaslampe4Millis > 30) {
analogWrite(Gaslampe4, 255);
Gaslampe4State = 2;
prevGaslampe4Millis = currentmillis;
}
}
if (Gaslampe4State == 2) {
if (currentmillis - prevGaslampe4Millis > 10) {
if(Gaslampe4Helligkeit<255){
Gaslampe4Helligkeit++;
analogWrite(Gaslampe4, Gaslampe4Helligkeit);
}
else{
Gaslampe4State = 0;
Gaslampe4Helligkeit = 0;
}

prevGaslampe4Millis = currentmillis;
}
}


if (InputState == HIGH) {
Neonleuchten_State = LOW;
for (int i = 0; i < 5; i++) {
digitalWrite(Neonleuchten_Pins[i], LOW);
}

digitalWrite(Gaslampe1, LOW);
digitalWrite(Gaslampe2, LOW);
digitalWrite(Gaslampe3, LOW);
digitalWrite(Gaslampe4, LOW);
}

 

}

void notifyDccAccState( uint16_t Addr, uint16_t BoardAddr, uint8_t OutputAddr, uint8_t State ) {
word wAddr = Addr + isRoco; //Offset für Roco wird eingerechnet, da Roco die Weichenadressen anders zählt
if ( wAddr == DccAdresse1) {
if ( OutputAddr & 0x1 ) {
InputState = LOW;
} else {
InputState = HIGH;
}
}
if ( wAddr == DccAdresse2) {
if ( OutputAddr & 0x1 ) {
Step1.rotate(1);
} else {
Step1.stop();
}
}
}
 





Gruß Stefan


stefan79  
stefan79
Regionalbahn (RB)
Beiträge: 43
Registriert am: 21.03.2019
Ort: NRW
Spurweite H0
Steuerung PG Z21
Stromart Digital

zuletzt bearbeitet 02.07.2021 | Top

RE: Arduino Steuerung Sägewerk

#63 von Matthias_h0 , 02.07.2021 13:38

Hallo Stefan
Schön, dass es jetzt läuft. Das sieht auch so aus, als wäre alles richtig.
Nur dieser Codeteil am Anfang des Loops ist unnötig, da dort jetzt nichts mehr passiert:

1
2
3
 
if(InputState == LOW){
 
}
 


Den Teil kannst du entfernen. Es geht aber auch so.

Ich bin leider gestern nicht mehr dazu gekommen, dir auf deine PN zu antworten, aber das hat sich ja jetzt erledigt.

Viele Grüße,
Matthias


MobaLedLib Wiki


stefan79 und e69-fan haben sich bedankt!
Matthias_h0  
Matthias_h0
InterRegio (IR)
Beiträge: 235
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital


   

welchen Durchmesser hat kleinste LED ?
Sichere Verkabelung

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
disconnected Foren-Chat Mitglieder Online 146
Xobor Einfach ein eigenes Forum erstellen
Datenschutz