Hallo zusammen,
habe seit kurzem die Servosteuerung der Weichen ( Märklin C Gleis ) ausprobiert und muss sagen es läuft wirklich ganz gut.
Auf dem "geschmack" gekommen wollte ich jetzt mehrere Weichen umbauen doch leider habe ich ein Problem.
Die Weiche an Pin. 9 lässt sich schalten die beiden anderen machen keinen Mux …?
Anbei mein Code
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
// Die Taster müssen so angeschlossen sein, dass der Eingang bei gedrücktem
// Taster auf LOW (=0) geht.
const int tasterPin1 = 2; //Taster1 Pin 2
const int tasterPin2 = 3; //Taster2 Pin 3
const int servoPin22 = 9; // Anschluß für den Servo1
const int tasterPin3 = 4; //Taster3 Pin 4
const int tasterPin4 = 5; //Taster4 Pin 5
const int servoPin23 = 8; // Anschluß für den Servo2
const int tasterPin5 = 6; //Taster5 Pin 6
const int tasterPin6 = 7; //Taster6 Pin 7
const int servoPin24 = 10; // Anschluß für den Servo3
// bei Werten, die sich im Programm nie verändern, sollte immer 'const' vorangestellt
// werden
int tasterStatus1, tasterStatus2, tasterStatus3, tasterStatus4, tasterStatus5, tasterStatus6;
MoToServo meinServo1, meinServo2, meinServo3;
void setup() {
pinMode(tasterPin1, INPUT_PULLUP); // so ist kein externer pullup Widerstand am
pinMode(tasterPin2, INPUT_PULLUP); // Taster erforderlich
pinMode(tasterPin3, INPUT_PULLUP); // so ist kein externer pullup Widerstand am
pinMode(tasterPin4, INPUT_PULLUP); // Taster erforderlich
pinMode(tasterPin5, INPUT_PULLUP); // so ist kein externer pullup Widerstand am
pinMode(tasterPin6, INPUT_PULLUP); // Taster erforderlich
meinServo1.attach(servoPin22); //Servo an Pin 9
meinServo1.setSpeed( 48 ); // Verfahrgeschwindigkeit einstellen
meinServo2.attach(servoPin23); //Servo an Pin 8
meinServo2.setSpeed( 48 ); // Verfahrgeschwindigkeit einstellen
meinServo3.attach(servoPin24); //Servo an Pin 10
meinServo3.setSpeed( 48 ); // Verfahrgeschwindigkeit einstellen
}
void loop() {
tasterStatus1 = digitalRead(tasterPin1);
tasterStatus2 = digitalRead(tasterPin2);
tasterStatus3 = digitalRead(tasterPin3);
tasterStatus4 = digitalRead(tasterPin4);
tasterStatus5 = digitalRead(tasterPin5);
tasterStatus6 = digitalRead(tasterPin6);
if (tasterStatus1 == LOW && meinServo1.moving() == 0 ) {
meinServo1.write(50); //wird langsam drehen
delay(100);
}
if (tasterStatus2 == LOW && meinServo1.moving() == 0) {
meinServo1.write(112); //wird langsam drehen
delay(100);
}
if (tasterStatus3 == LOW && meinServo2.moving() == 0 ) {
meinServo2.write(50); //wird langsam drehen
delay(100);
}
if (tasterStatus4 == LOW && meinServo2.moving() == 0 ) {
meinServo2.write(50); //wird langsam drehen
delay(100);
}
if (tasterStatus5 == LOW && meinServo3.moving() == 0 ) {
meinServo3.write(50); //wird langsam drehen
delay(100);
}
if (tasterStatus6 == LOW && meinServo3.moving() == 0 ) {
meinServo3.write(50); //wird langsam drehen
delay(100);
}
delay(20);
}
Entweder übersehe ich was oder liege damit total Falsch.
Wie gesagt komisch ist, dass der am Pin9 geht.
Alle Taster sind ebenso gleich verschaltet.
Bin mir sicher, dass Ihr mir weitehelfen könnt.
Noch eine Frage am Rande …. in der Beschreibung der einzelnen Beispiele wird darauf hingewiesen, dass der Sketch Servo_01 und Servo_02 unterschiedlich sind …. Woran unterscheiden die sich ? Für mich sehen beide gleich aus.
Vielen Dank vorab .
SG
Chris