Servos durch Eingabe von Werten leichter machen

Hallo an Alle.
Wir sind neu hier. Als Jugendgruppe beschäftigen wir uns mit der Modelleisenbahn.
Den Arduino nutzen wir zur Steuerung der Weichen mit Servos.
Das Programm, das wir dabei nutzen,ist:

#include <Servo.h>

Servo Weiche1;
Servo Weiche2;
Servo Weiche3;
Servo Weiche4;

int T_W = 53;
int T_O = 52;
int T_G1 = 51;
int T_G2 = 50;
int T_G3 = 49;
int Grad;

//___________________VOID SETUP______________
void setup() {
 pinMode(T_W, INPUT);
 pinMode(T_O, INPUT);
 pinMode(T_G1, INPUT);
 pinMode(T_G2, INPUT);
 pinMode(T_G3, INPUT);
}
//___________FUNKTION "schalten"________________
void schalten (Servo Weiche, int PIN, int Winkel) {
 Weiche.attach(PIN);
 Weiche.write(Winkel);
 delay(300);
 Weiche.detach();
}
//___________FUNKTION "W1"___________________
void W1(int Stellung) {               //0=gerade - 1=abbiegen
 if(Stellung == 0) {                 //Stellung gerade aus
   Grad = 0;                         //Position in Grad       
 }
 if(Stellung == 1) {                 //Stellung abbiegend
   Grad = 20;                        //Position in Grad
 }
 schalten(Weiche1, 2, Grad);         //(Servo, Anschlusspin, Position)
}
//___________FUNKTION "W2"___________________
void W2(int Stellung) {               //0=gerade - 1=abbiegen
 if(Stellung == 0) {                 //Stellung gerade aus
   Grad = 0;                         //Position in Grad       
 }
 if(Stellung == 1) {                 //Stellung abbiegend
   Grad = 20;                        //Position in Grad
 }
 schalten(Weiche2, 3, Grad);         //(Servo, Anschlusspin, Position)
}
//___________FUNKTION "W3"___________________
void W3(int Stellung) {               //0=gerade - 1=abbiegen
 if(Stellung == 0) {                 //Stellung gerade aus
   Grad = 0;                         //Position in Grad       
 }
 if(Stellung == 1) {                 //Stellung abbiegend
   Grad = 20;                        //Position in Grad
 }
 schalten(Weiche3, 4, Grad);         //(Servo, Anschlusspin, Position)
}
//___________FUNKTION "W4"___________________
void W4(int Stellung) {               //0=gerade - 1=abbiegen
 if(Stellung == 0) {                 //Stellung gerade aus
   Grad = 0;                         //Position in Grad       
 }
 if(Stellung == 1) {                 //Stellung abbiegend
   Grad = 20;                        //Position in Grad
 }
 schalten(Weiche4, 5, Grad);         //(Servo, Anschlusspin, Position)
}
//_____________VOID LOOP______________________
void loop() {
 while(digitalRead(T_W) == HIGH) {       //Start Ein-Ausfahrt West
   while(digitalRead(T_G1) == HIGH) {       //Ziel Gleis1
     W1(1);
   }
   while(digitalRead(T_G2) == HIGH) {       //Ziel Gleis2
     W1(0);
     W2(0);
   }
   while(digitalRead(T_G3) == HIGH) {       //Ziel Gleis3
     W1(0);
     W2(1);
   }
 }
 while(digitalRead(T_O) == HIGH) {       //Start Ein-Ausfahrt Ost
   while(digitalRead(T_G1) == HIGH) {       //Ziel Gleis1
     W4(0);
     W3(1);
   }
   while(digitalRead(T_G2) == HIGH) {       //Ziel Gleis2
     W4(0);
     W3(0);
   }
   while(digitalRead(T_G3) == HIGH) {       //Ziel Gleis3
     W4(1);
   }
 }
 while(digitalRead(T_G1) == HIGH) {      //Start Gleis1
   while(digitalRead(T_W) == HIGH) {        //Ziel Ein-Ausfahrt West
     W1(1);
   }
   while(digitalRead(T_O) == HIGH) {        //Ziel Ein-Ausfahrt Ost
     W3(1);
     W4(0);
   }
 }
 while(digitalRead(T_G2) == HIGH) {      //Start Gleis2
   while(digitalRead(T_W) == HIGH) {        //Ziel Ein-Ausfahrt West
     W2(0);
     W1(0);
   }
   while(digitalRead(T_O) == HIGH) {        //Ziel Ein-Ausfahrt Ost
     W3(0);
     W4(0);
   }
 }
 while(digitalRead(T_G3) == HIGH) {      //Start Gleis3
   while(digitalRead(T_W) == HIGH) {        //Ziel Ein-Ausfahrt West
     W2(1);
     W1(0);
   }
   while(digitalRead(T_O) == HIGH) {        //Ziel Ein-Ausfahrt Ost
     W4(1);
   }
 }
}

Wir wollen nun für ein neues Diorama ein mechanisches Stellwerk nachbauen. Das funktioniert mit Drahtseilen zu den Weichen und Signalen.
Unser Problem ist, das wir jedes Mal das Programm ändern müssen, um die Servos an die weiche oder Signal anpassen zu müssen.
Winkel gerade und abzweigend

// nach dem Einbau müssen die Werte angepasst werden. Wir bauen die Servos ein. Dann werden die Servos soo gestellt, dass die Weichenzungen anliegen dann zurückgestellt bis sie eben anliegen, aber nicht aufgefahren werden können.
Gut wäre es wenn wir das beim Einbau machen können und die werte im Arduino speichern für jedes Servo
Auch wenn der Arduino billig ist, man braucht ihn auf anderen Modulen wenn mal was passiert.

Das andere Problem ist, wie wir das mechanische Stellwerk nachbauen.
Das funktionirt so:
Jede Weiche wird für die Fahrstrasse eingestellt. Hebel oben bedeutet Durchfahrt, auch wenn Abzweig der Weiche eingestellt sein sollte. Hebel unten bedeutet gestellt.

Dann wird der Fahrstrassenhebel umgelegt.Dabei muss überprüft werden, ob alle Weichen gestellt wurden. dabei werden alle Fahrstrassen gesperrt die den Weg berühren
Erst dann legt man das betreffende Signal um. Auch die anderen gefährlichen Signale werden gesperrt.
Vorher muss bei nächsten Stellwerk angefragt werden ob der Zug angenommen wird. Gelbe LED anfrage, grüne LED Zustimmung, rote LED Geblockt. Wenn rotled , dann kann die Fahrstrasse nicht angelegt werden. Dann muss alles rüchwärts zurückgestelltwerden, erst dann darf eine neue Fahrstrasse eingestellt werden. Auch erst bei einer Zustimmung von anderen Stellwerk,Block frei etc.

was wir noch machen möchten, ist den Stellwerker in den Atduino zu bringen.
wenn der Hebel gezogen wird, ist es erst mal langsamer bis zur Hälfte dann bis unten schneller beim runterdrücken.
und die Signale wippen ein bisschen nach

Leider können wir die älteren nicht fragen, wegen Corona.
Deshalb wäre es schön, wenn uns hier einer etwas helfen könnte.
Aber bitte einfach und erklärt es. wir hatten noch computer unterricht sondern haben nur beim bauen den Arduino coden gelernt.
Ein anderes Problem ist, könntet ihr uns auch sagen wo man im Internet auch die befehle für den ARDUINO IN DEUTSCH FINDEN KANN.
vielen Dank
Die Feelltbaanschneggen

feelltbaanschneggen:
Ein anderes Problem ist, könntet ihr uns auch sagen wo man im Internet auch die befehle für den ARDUINO IN DEUTSCH FINDEN KANN.

Das geht schnell: Hier.
Den Rest muss ich erst noch verdauen :wink:

Setzt Euren Code bitte in Codetags (</>-Button oben links im Forumseditor oder

[code] davor und [/code]

dahinter oder gehe in der IDE auf Bearbeiten - Für Forum kopieren und füge es hier ein.
Dann ist er auch auf mobilen Geräten besser lesbar.
Das könnt Ihr auch noch nachträglich ändern.

Deutsche Arduino-Referenz

Gruß Tommy

Hallo und erstmal zum Titel.
Ich verstehe nicht was es mit dem "Eingabe von Werten leichter machen" bedeuten soll.

Ein Computerprogramm folgt zum Beispiel diesem Ablauf

Eingabe
Verarbeitung
Ausgabe

Ausgabe ist klar, ihr wollte irgendwelche Servos steuern

Aber was verwendet ihr als Eingabe?
Was hängt da an euren 5 Pins?

Und welche Relevanz haben die 6 Hebel? Sind die Teil des Computerprogramms? Wenn ja womit?

Kurz gesagt, eure Beschreibung ist komplett umbrauchbar. Konzentriert euch zunächst auf ein Problem.
Also entweder die obigen Fragen beantworten oder beschreiben wo es am meisten drückt.

edit:
immer noch keine Antworten.
Ich bin raus.

feelltbaanschneggen:
Hallo an Alle.
Wir sind neu hier. Als Jugendgruppe beschäftigen wir uns mit der Modelleisenbahn.
Den Arduino nutzen wir zur Steuerung der Weichen mit Servos.
Das Programm, das wir dabei nutzen,ist:

#include <Servo.h>

Servo Weiche1;
Servo Weiche2;
Servo Weiche3;
Servo Weiche4;

int T_W = 53;
int T_O = 52;
int T_G1 = 51;
int T_G2 = 50;
int T_G3 = 49;
int Grad;

//VOID SETUP
void setup() {
 pinMode(T_W, INPUT);
 pinMode(T_O, INPUT);
 pinMode(T_G1, INPUT);
 pinMode(T_G2, INPUT);
 pinMode(T_G3, INPUT);
}
//FUNKTION "schalten"

void schalten (Servo Weiche, int PIN, int Winkel) {
 Weiche.attach(PIN);
 Weiche.write(Winkel);
 delay(300);
 Weiche.detach();
}
//FUNKTION "W1"________
void W1(int Stellung) {               //0=gerade - 1=abbiegen
 if(Stellung == 0) {                 //Stellung gerade aus
   Grad = 0;                         //Position in Grad      
 }
 if(Stellung == 1) {                 //Stellung abbiegend
   Grad = 20;                        //Position in Grad
 }
 schalten(Weiche1, 2, Grad);         //(Servo, Anschlusspin, Position)
}
//FUNKTION "W2"________
void W2(int Stellung) {               //0=gerade - 1=abbiegen
 if(Stellung == 0) {                 //Stellung gerade aus
   Grad = 0;                         //Position in Grad      
 }
 if(Stellung == 1) {                 //Stellung abbiegend
   Grad = 20;                        //Position in Grad
 }
 schalten(Weiche2, 3, Grad);         //(Servo, Anschlusspin, Position)
}
//FUNKTION "W3"________
void W3(int Stellung) {               //0=gerade - 1=abbiegen
 if(Stellung == 0) {                 //Stellung gerade aus
   Grad = 0;                         //Position in Grad      
 }
 if(Stellung == 1) {                 //Stellung abbiegend
   Grad = 20;                        //Position in Grad
 }
 schalten(Weiche3, 4, Grad);         //(Servo, Anschlusspin, Position)
}
//FUNKTION "W4"________
void W4(int Stellung) {               //0=gerade - 1=abbiegen
 if(Stellung == 0) {                 //Stellung gerade aus
   Grad = 0;                         //Position in Grad      
 }
 if(Stellung == 1) {                 //Stellung abbiegend
   Grad = 20;                        //Position in Grad
 }
 schalten(Weiche4, 5, Grad);         //(Servo, Anschlusspin, Position)
}
//VOID LOOP_________
void loop() {
 while(digitalRead(T_W) == HIGH) {       //Start Ein-Ausfahrt West
   while(digitalRead(T_G1) == HIGH) {       //Ziel Gleis1
     W1(1);
   }
   while(digitalRead(T_G2) == HIGH) {       //Ziel Gleis2
     W1(0);
     W2(0);
   }
   while(digitalRead(T_G3) == HIGH) {       //Ziel Gleis3
     W1(0);
     W2(1);
   }
 }
 while(digitalRead(T_O) == HIGH) {       //Start Ein-Ausfahrt Ost
   while(digitalRead(T_G1) == HIGH) {       //Ziel Gleis1
     W4(0);
     W3(1);
   }
   while(digitalRead(T_G2) == HIGH) {       //Ziel Gleis2
     W4(0);
     W3(0);
   }
   while(digitalRead(T_G3) == HIGH) {       //Ziel Gleis3
     W4(1);
   }
 }
 while(digitalRead(T_G1) == HIGH) {      //Start Gleis1
   while(digitalRead(T_W) == HIGH) {        //Ziel Ein-Ausfahrt West
     W1(1);
   }
   while(digitalRead(T_O) == HIGH) {        //Ziel Ein-Ausfahrt Ost
     W3(1);
     W4(0);
   }
 }
 while(digitalRead(T_G2) == HIGH) {      //Start Gleis2
   while(digitalRead(T_W) == HIGH) {        //Ziel Ein-Ausfahrt West
     W2(0);
     W1(0);
   }
   while(digitalRead(T_O) == HIGH) {        //Ziel Ein-Ausfahrt Ost
     W3(0);
     W4(0);
   }
 }
 while(digitalRead(T_G3) == HIGH) {      //Start Gleis3
   while(digitalRead(T_W) == HIGH) {        //Ziel Ein-Ausfahrt West
     W2(1);
     W1(0);
   }
   while(digitalRead(T_O) == HIGH) {        //Ziel Ein-Ausfahrt Ost
     W4(1);
   }
 }
}




Wir wollen nun für ein neues Diorama ein mechanisches Stellwerk nachbauen. Das funktioniert mit Drahtseilen zu den Weichen und Signalen.
Unser Problem ist, das wir jedes Mal das Programm ändern müssen, um die Servos an die weiche oder Signal anpassen zu müssen.
Winkel gerade und abzweigend 

// nach dem Einbau müssen die Werte angepasst werden. Wir bauen die Servos ein. Dann werden die Servos soo gestellt, dass die Weichenzungen anliegen dann zurückgestellt bis sie eben anliegen, aber nicht aufgefahren werden können.
Gut wäre es wenn wir das beim Einbau machen können und die werte im Arduino speichern für jedes Servo
Auch wenn der Arduino billig ist, man braucht ihn auf anderen Modulen wenn mal was passiert.


Das andere Problem ist, wie wir das mechanische Stellwerk nachbauen.
Das funktionirt so:
Jede Weiche wird für die Fahrstrasse eingestellt. Hebel oben bedeutet Durchfahrt, auch wenn Abzweig der Weiche eingestellt sein sollte. Hebel unten bedeutet gestellt.



Dann wird der Fahrstrassenhebel umgelegt.Dabei muss überprüft werden, ob alle Weichen gestellt wurden. dabei werden alle Fahrstrassen gesperrt die den Weg berühren
Erst dann legt man das betreffende Signal um. Auch die anderen gefährlichen Signale werden gesperrt.
Vorher muss bei nächsten Stellwerk angefragt werden ob der Zug angenommen wird. Gelbe LED anfrage, grüne LED Zustimmung, rote LED Geblockt. Wenn rotled , dann kann die Fahrstrasse nicht angelegt werden. Dann muss alles rüchwärts zurückgestelltwerden, erst dann darf eine neue Fahrstrasse eingestellt werden. Auch erst bei einer Zustimmung von anderen Stellwerk,Block frei etc.





was wir noch machen möchten, ist den Stellwerker in den Atduino zu bringen.
wenn der Hebel gezogen wird, ist es erst mal langsamer bis zur Hälfte dann bis unten schneller beim runterdrücken.
und die Signale wippen ein bisschen nach

Leider können wir die älteren nicht fragen, wegen Corona.
Deshalb wäre es schön, wenn uns hier einer etwas helfen könnte.
Aber bitte einfach und erklärt es. wir hatten noch computer unterricht sondern haben nur beim bauen den Arduino coden gelernt.
Ein anderes Problem ist, könntet ihr uns auch sagen wo man im Internet auch die befehle für den ARDUINO IN DEUTSCH FINDEN KANN.
vielen Dank
Die Feelltbaanschneggen




![Umbau (1).jpg|1064x600](upload://nTpWT4A258NBpQcdS6tXF6nhWMJ.jpeg)

![Bild 4 mit Namen.png|2548x1366](upload://r7wHQYM5ecwQ7UWLK9ophwUMYQ.png)

Hallo,

ich hab jetzt nicht ganz verstanden was Ihr wollt, aber Werte im Arduino speicher geht mit der EPROM lib. Eine SD ginge auch noch.

Ihr könntet doch den Monitor nutzen um ein die Winkel für die Weichen einzugeben. w1,5 oder w1,84 für die beiden Sollwertpositionen. Das macht Ihr für alle Weichen und mit einem Taster dann ab ins Eprom. Dann werden wenn nicht neues eingegeben wird immer die Werte benutzt.

Heinz

Und warum postet ihr den Post nochmal ?
Bitte einfach nur Fragen beantworten.

Hallo
leider müssen wir noch üben, wie wir richtig posten.
Die verbesserung ist anscheined auch falsch gelaufen.

Aber vielen Dank für die schnelle Hilfe
wno158.
HotSystems die Werte für Grad gerade und Abzweig muss nach dem Einbau neu für jede Weiche und Signal geändert werden. das Programm wird gelöscht die Werte geändert im Programm und dann das programm wieder aufgespielt.

Es muss doch möglich sein, die Werte Grad nach dem Einbau der weiche mit dem Arduino einzustellen und den wert im Arduino speichern . als beispiel w1 grad abzweig 25 und gerade grad 5 .
Jetzt müssen wir das Programm auf dem Computer öffnen w1 suchen und die werte ändern und wieder aufspielen.
eigentlich könnte man doch im Programm es doch so machen, ich stelle über das programm die weiche richtig ein und übernehme dann die werte und speichere sie im programm.

vielen dank
die Feelltbaanschneggen

.

Klar, kann man alles lernen.

Dann ändere bitte den Titel, so, dass auch jeder versteht, was gemeint ist und setze den Sketch oben in Code-Tags. Dir wurde doch schon geschrieben, wie das geht. Das kannst du noch nachträglich im Eingangspost machen.

Servos und Weichen sind doch eine Einheit, oder ?

Da würde ich das so definieren:

const byte PinW1=2;  // Servo Pin für Weiche 1
...

void setup() {
 Weiche1.attach(PinW1);  
...
}

Dann wird die Funktion

void schalten(Servo& w, int grad) {
 w.write(grad);
}

so trivial, dass man sie (fast) genausogut weglassen könnte, bzw. statt Funktionen wie
void W1(int stellung) gleich
void schalte(Servo& w, bool richtung) definieren kann.

Fraglich ist für mich, ob tatsächlich jede Servo/Weiche - Kombi handermittelte Grad-Zahlen braucht?
Und wie oft diese nachjustiert werden müssen?
Sicherer wäre, wenn das die Mechanik selbst macht.
Aber ich bin kein Modellbahner...

Könnte mir vorstellen, dass es zwar eigentlich nur binär GERADE / ABZWEIG gibt, der Übergang aber bewusst langsam dargestellt werden soll. (Das ist auch mit Servo möglich). Aber das wäre was für "später". Zunächst sollte der Thread-Titel überarbeitet werden.

Wenn ihr denkt, genau das (Parametrieren von Objekten im laufenden Betrieb) wäre euer Problem,
lest euch erstmal in Datenstrukturen oder besser gleich in objektorientiertes Programmieren ein.
Wie das dann im EEPROM gespeichert wird und über die Serielle Schnittstelle ohne neuen Sketch aufzuspielen geändert wird, kriegen wir später...

Hallo ihr Feldbahnschnecken :wink:
Ihr könnte euch mal meine MobaTools Lib anschauen. Da sind viel Funktionen drin, die man bei der Moba gut brauchen kann. Auch die Abfrage und das Entprellen von Tastern/Schaltern und das langsame drehen von Servos ( für die Weichensteuerung ). Installieren kann man die Lib direkt über den Bibliotheksmanager in der IDE ( 'mobatools' im Suchfeld eingeben ).
Wie wollt ihr die Weichen den stellen? Soll das direkt am Arduino mit angeschlossenen Schaltern sein, oder digital über DCC?

Was das Justieren der Weichen angeht, da gibt es mehrere Methoden. Einmal ganz komfortabel über einen Drehencoder, den man zu Justierung an den Arduino anschließt, oder mit Tastern für rechts/links. Über die serielle Schnittstelle geht es sicher auch, dass ist aber nicht so komfortabel, und man braucht immer einen PC dazu. Gesichert werden die Werte dann - wie schon geschrieben - im EEPROM.

Hallo,

Rentner
danke für den Hinweis. also uns ist klar include <eeprom.h>.
Aber was bedeutet w1,5 znd w1,85?

Die Fahrstrassenhebel und weichen- und Signalhebel werden umgelegt und betätigen dann Taster.
Also zuerst werden die Weichenhebel umgelegt für die Fahrstrasse zb w1 g w2a dann der Fahrstrassenhebel F2. Dann muss der Arduino überprüfen ob die richtigen weichen umgelegt wurden. das ist für uns wichtig als sicherung des Fahrwegs.
im mechanischen Stellwerk macht dies der Stellwerker. zur vorstellung bei den stellwerk, das wir kennen stand am Fahrstrassen hebel die Fahrstrasse F2 und die weichen w1 und w2 und das Signal P3 darauf.

vom Ablauf zuerst die zustimmung vom nächsten Stellwerk im Bahnhof oder dem nächsten Bahnhof holen hier Taster ledgelb (Bei uns Block vor frei oder besetzt oder tatsächlich nächster Bahnhof oder Schattenbahnhof)
wenn frei dann Rückgabe Ledgrün als Zustimmung wenn besetzt Bahnhof/Block dann Ledrot zur abfahrt vorblocken Taste Vorblock

im Stellwerk wurde dort das nächste Stellwerk angerufen. Zug 4711 ja? dann Zug 4711 ja oder nein. Das musste dann eingetragen werden. dann wurde der Fahrweg geprüft, also der Stellerker guckte raus ob alles frei ist und kein waggon im weg steht dann wurden die weichen gestellt, der Fahrstrassenhebel gezogen und die Fahrstrasse verriegelt und alle bösen weichen und Signal blockiert. Dann muss geprüft werden ob der zug den Fahrweg von Abfahrtsgleis bis zur Strecke verlassen hat. dann wird alles auf anfang gesetzt. also die Weichen müssen müssen wieder hochgesetzt werden ebenso die Signale oder Bahnübergänge die Fahrstrasse aufgehoben werden. und bei der Abfahrt muss noch vorgeblockt werden.

Wenn das Ausfahrsignal gezogen wurde vorgeblockt und das nächste Stellwerk mit Zug 4711 13Uhr 55 ab gemeldet. das musste wieder aufgeschrieben werden bei beiden Stellwerken.
Also die zuordnung der weichen gerade oder abzweig zur fahrstrasse und signal müssten dannauch im eeprom gespeichert werden?
so wie wir das jetzt verstehen zuordnung der weiche + taster:
W(nr); g;(grad) und ab(Grad) Lage Durchfaht ( G oder A);

dann Fahrstrasse nr; w(nr) ; G oder A
w(nr); G oder A
Signal P(nr) SignStellung rot;grün ;grüngelb;

Wir haben vergessen zu erzählen weshalb wir das Bauen wollen.
Das Programm oben ist ein einfaches Drucktastenstellwerk. mit einem einfachen Bahnhof als Beispiel.
Bei der Besichtigung des mechanischen Stellwerk waren auch Eisenbahnstudenten dabei. beim Besuch unserer Anlage haben sie gemeint wir könnten kein mechanisches Stellwerk als programm nachbilden.
Das wäre nicht möglich. Das wollen wir nicht auf uns sitzen lassen. Auch wenn die Studenten vielleicht meinten, das wir das nicht mechanisch nachbauen können, aber das hatten Sie nicht gesagt. auch die Kritik, unser Programm wäre zu umständlich bei Änderungen beim Nächsten Mal auch nicht gesagt werden können.

Bei den Modulen verwenden wir das obige Programm in längerer Form, aber unser Bahnhof auf dem Modul ist als mechanisches Stellwerk ausgeführt. als elektromechanisches sozusagen wegen Servos und mit µC .

Wir haben die Hebelbank mal zur Anschauung gebaut, für solche Studenten, die sowas nicht kennen.
Also wir wollen die kleiner nachbauen ( der Nachbau war 1/5).
Hebel unten gelegt, betätigt dabei einen Taster der hinten oder unten Versteckt eingebaut wird.
Signalhebel ebenso, alles in 3D-Druck oder gefräst.
der Fahrstrassenhebel kann man sogar wie beim Vorbild als drehschalter einbauen, der Vorblocktaster als Pilztaster.

Aber wir haben die ältereen schüler nicht mehr wegen Corona.
Darum unser >Hilferuf.
Aber wir sind ganz neu mit dem Arduino, also meist keine Ahnung wenn etwas vorgeschlagen wird.
Ihr dürft bitte ausführlicher Antworten, das wir es auch richtig verstehen.
wir wollen ja richtig mit dem Arduino arbeiten können.
Denkt bitte mal daran wie ihr vielleicht mal mit dem Arduino angefangen habt.

An alle wenn etwas vorgeschlagen wird, bitte den Befehl mit einem Programmschnipsel erklären.

soweit vielen Dank
Feelltbaanschneggen

An alle wenn etwas vorgeschlagen wird, bitte den Befehl mit einem Programmschnipsel erklären.

Muss ich euch auch den Begriff "Ignoranz" erklären ?

@feelltbaanschneggen:
Ihr habt doch mehrere Problemfelder zu beackern - wenn ich das richtig sehe.
Glaubt es mir und den Kollegen hier (die meisten sind alt genug): Das geht nur eins nach dem anderen.

#1: Beim Einbau die Servowege für jede Weiche einrichten und speichern.
#2: Die Blockfreigabe mit Tastern und LEDs nachbilden
#3: Die Fahrstraßenerkennung mit den Tastern an den Hebeln
#4: Zur Fahrstraße passende Weichensteuerung

Alles alles auf 0 und bei #1 anfangen - dazu braucht man das EEPROM (wie auch für #4).

Euer Sketch im Eröffnungspost ist übrigens immer noch nicht in [code]...[/code] eingeschlossen.

Hallo an Alle
vielen Dank an
wno158
Tommy56
HotSystems
Rentner
michael_x
MicroBahner der erste der es auf Anhieb versteht Respekt!
für ihre Hilfe.

michael_x
Also das problem mit der Nacharbeit ist, das nicht jedes Servo unterflur direkt unter der Weiche sitzt oder beim Einbau nicht sorgfätig eingebaut wurde. und was bei zehn Weichen passt, passt dann bei der eften nicht.
Ekw und Dkw (Kreuzungweichen) sind ein Problem. und Signale auch Also Formsignale mit Flügel.

Also wir sind in der 4 und 5. Klasse. noch kein Informatikunterricht

ich habe deinen Code den anderen geschickt, aber keiner hat verstanden was du uns damit sagen willst.
Kannst du uns erklären, was der Vorteil es so zu machen und warum so?

Also unser erstes Problem ist, wir bauen eigentlich einen fertigprogrammietrten Arduino ein hier waren es uno.
wird was geänderrt oder passtes nicht müssen den Arduino wiederausbauen und das Programm ändern flashen wiedr einbauen. Wir haben einen µC. also Weichen signale Fahrstrassen und verriegelung und alles andere was wir vielleicht noch brauchen müsste auch im µC geändert werden können.

das Programm sollte am Anfang ohne Zuordnung der Weichen der Taster der Signale und Vorsignale sein.
Wir sind nur fünf, die sich für Programmierung interessieren. Die anderen nutzen auch den µC aber wir machen das mit Programm ändern und so.

Wir suchen nach einer Möglichkeit, DAS EINFACHER ZU MACHEN.

Unsere Vorstellung ist. wir bauen den Arduino ein. Verbinden alle Servos und Taster am besten egal ob etwas vorher festgelegt wird also T1 nict unbedingt an pin 53 sondern an pin 59 als Beispiel

Also wir legen am Anfang nichts fest, sondern fragen ob etwas geändert werden .

Nur fest müssten die Ports als Ausgang und die Ports als Eingang sein.
Dann müsste der Arduino fragen ob was geändert werden sollte.
Also so was wwie die Ports abfragen ob was daran angeschlossen ist?
Ist dies möglich?

soweit erstmal
vielen Dank
Feelltbaanschneggen

Hallo
wno158
Danke
Aber das mit dem Ändern hat nicht so geklappt.
wir haben das mit Code geändert. wir haben das mit spitzen Klammern nicht so verstanden am Anfang.
Wir sind in unseren Post haben das geändert und dann auf post gedrückt.
Das war wohl wieder >Falsch weil es nur wieder ein neuer Post wurde.
wie bearbeitet man den den einen Post nach dem er gepostet wurde?

vielen Dank

Unter dem Posting auf Quick Edit oder auf More -> Modify

Gruß Tommy

Haben wir auch jetzt gefunden, Danke
Aber es war kompliziert. unter Quick edit fehlen die Winkel
die haben wir dannbei modify gefunden. aber wenn wir das ändern wollten konnte man das mit code einfügen machen aber dann wenn wieder gesaved wurde, war es nur wieder iwe vorher.
Also haben wir über Quick eidit den Code gelöscht und dann über modify die Änderung eingefügt, also es hat geklappt. nur wie können wir den zweiten Post löschen?
Danke

Lasst ihn drin.

Gruß Tommy