Seite 1 von 2 • 1, 2
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Arduino-, ESP-Programmierung und Co
Sa 12 Nov 2022, 16:00
Hallo zusammen,
wie von Hans vorgeschlagen eröffne ich hier einen Thread für Arduino-, ESP-Programmierung und Co.
Hier können die entsprechende Sketche/Codes gepostet, Fragen gestellt und Erfahrungsaustausch gesammelt werden.
Wenn ich dem einen oder anderen dabei helfen kann unterstütze ich sehr gerne.
Viele Grüße
Peter
Nachtrag (17.11.2022, 23:20 von HansK) zur Übersichtlichkeit:
Bücherempfehlungen sind hier und hier eine als Einstieg (Link zu einer einfachen Einführung in Mikrocontroller für Schülerinnen und Schüler).
wie von Hans vorgeschlagen eröffne ich hier einen Thread für Arduino-, ESP-Programmierung und Co.
Hier können die entsprechende Sketche/Codes gepostet, Fragen gestellt und Erfahrungsaustausch gesammelt werden.
Wenn ich dem einen oder anderen dabei helfen kann unterstütze ich sehr gerne.
Viele Grüße
Peter
Nachtrag (17.11.2022, 23:20 von HansK) zur Übersichtlichkeit:
Bücherempfehlungen sind hier und hier eine als Einstieg (Link zu einer einfachen Einführung in Mikrocontroller für Schülerinnen und Schüler).
Re: Arduino-, ESP-Programmierung und Co
So 13 Nov 2022, 00:07
Hallo zusammen,
prima, dass Peter schon den Anfang gemacht hat.
Ich finde, dass hier es hier auch richtig konkret und technisch werden darf. Also bitte keine Scheu davor hier auch vollständigen Code von Euren Projekten, z.B. BÜ-Steuerung, zu veröffentlichen.
Ich bin als Laie auf dem Gebiet um das es hoer geht schon über die Begriffe gestolpert. Was ein Arduino ist, das wußte ich schon. Aber was ist unter "ESP" in diesem Zusammenhang zu verstehen.
Die Suche im WWW hat micht dann schlauer gemacht. ESP ist so etwas ähnliches wie Arduino.
Genaueres findet Ihr in der Wikipedia:
ESP32 – Wikipedia
Der Wikipedia-Artikel war aber nur mein zweiter Treffer, nach dem ich die Suche konkretisiert hatte. Mein erster Treffer bei der 1. Suche war dieser:
ESP32-Programmierung - allererste Schritte - Unsinnsbasis
Beim Lesen von diesen ersten Schritten wurde mir klar, dass das für mich viel zu Hardware nah ist. (ich bleibe lieber bei Software)
Aber mit Interesse werden ich den Thread verfolgen und hoffe, dass Ihr uns hier Euren Code zeigt. Die Mini-Schnipsel auf der Erste-Schritte-Seite waren schon mal ein ganz netter Einstieg.
Gruß aus dem Westerwald
Hans
prima, dass Peter schon den Anfang gemacht hat.
Ich finde, dass hier es hier auch richtig konkret und technisch werden darf. Also bitte keine Scheu davor hier auch vollständigen Code von Euren Projekten, z.B. BÜ-Steuerung, zu veröffentlichen.
Ich bin als Laie auf dem Gebiet um das es hoer geht schon über die Begriffe gestolpert. Was ein Arduino ist, das wußte ich schon. Aber was ist unter "ESP" in diesem Zusammenhang zu verstehen.
Die Suche im WWW hat micht dann schlauer gemacht. ESP ist so etwas ähnliches wie Arduino.
Genaueres findet Ihr in der Wikipedia:
ESP32 – Wikipedia
Der Wikipedia-Artikel war aber nur mein zweiter Treffer, nach dem ich die Suche konkretisiert hatte. Mein erster Treffer bei der 1. Suche war dieser:
ESP32-Programmierung - allererste Schritte - Unsinnsbasis
Beim Lesen von diesen ersten Schritten wurde mir klar, dass das für mich viel zu Hardware nah ist. (ich bleibe lieber bei Software)
Aber mit Interesse werden ich den Thread verfolgen und hoffe, dass Ihr uns hier Euren Code zeigt. Die Mini-Schnipsel auf der Erste-Schritte-Seite waren schon mal ein ganz netter Einstieg.
Gruß aus dem Westerwald
Hans
Re: Arduino-, ESP-Programmierung und Co
So 13 Nov 2022, 14:40
Hallo Peter,
klasse, daß Du gleich die Initiative ergriffen hast.
Da will ich auch gleich zu meinem gestern erwähnten Problem kommen.
Es geht eigentlich nur um eine simple Bahnschrankensteuerung.
Zur Auslösung sind Lichtschranken vorgesehen.
Allerdings sind für deren Platzierung nur recht kurze Abstände zum Bahnübergang möglich.
Mehr als eine Sekunde Vorblinkzeit und richtig vorbildgerechte Absenkdauer der Schranken scheiden aus.
Außerdem sollen zu Beginn und Ende des Schließvorgangs Impulse zur Steuerung der Car-System Stopstellen verfügbar sein.
Funktion sollte in etwa so sein:
- Schienenfahrzeug nähert sich aus beliebiger Richtung, bzw. auf beliebigem Gleis und beeinflusst Lichtschranke(n) vor Bü
- Car-System Stopstellen werden per Impuls angesteuert und Andreaskreuz-LED fangen an zu blinken
- Schranken schließen (deren Geschwindigkeit und Nachschwingen sind ein Kapitel für sich)
- Fahrzeug passiert Bü und Lichtschranke nach Bü.
(Alle Lichtschranken steuern den selben Arduino-Eingang.
Die erforderliche Signaldauer zwischen den Lichtschranken wird einfach durch einen Kondensator an diesem
Eingang mit t=x überbrückt.
Soll heißen, der jeweilige Impuls wird in einem gewissen Umfang soweit gestreckt bis der nächste kommt.
Ok, das ist nicht sehr elegant und wenn beispielsweise ein einzelnes, kurzes Fahrzeug auf dem Bü anhält und somit gerade keine Lichtschranke
betätigt, dann geht nach t=x halt die Bahnschranke auf.
Fast wie im richtigen Leben. Auf unserem Dorf-Bü habe ich das schon so ähnlich in Echt erlebt. )
- Schranken öffnen, LED's hören auf zu blinken und Car-System Stopstellen werden per Impuls freigegeben.
(Übrigens, es handelt sich nicht um die Faller-Stopstellen, sondern um eine Eigenentwicklung impulsgesteuerter Stopstellen
mit Servo und Permanentmagnet.)
Mit meinen Minimalst-Kenntnissen und einem Sketch aus dem Netz machte ich da Gehversuche.
Was heißt Gehversuche, es ist eher ein Rumstolpern auf Krücken.
Wie auch immer, es gelang wenigstens den zeitlichen Ablauf soweit anzupassen.
Was ich noch immer nicht auf die Reihe kriege, ist den Impuls am Ende des Ablaufs zu erzeugen.
Hier der verbastelte Sketch:
#include
int ledPin = 2;
int servoPin = 8;
int switch1Pin = 10;
int myState = 0;
Servo servoc;
int servoPositionOffen = 35;
int servoPositionGeschlossen = 120;
int servoPosition;
int servoGeschwindigkeit = 1;
int blinkZeit = 10;
long timer = 0;
void setup() {
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
servoc.attach(servoPin);
pinMode(ledPin, OUTPUT);
pinMode(switch1Pin, INPUT);
servoPosition = servoPositionOffen;
servoc.write(servoPosition);
delay(1000);
}
void blinkLED() {
if (millis() % 2000 > 1000) digitalWrite(ledPin, HIGH);
else digitalWrite(ledPin, LOW);
// put your setup code here, to run once:
}
void loop() {
switch (myState) {
case 0:
digitalWrite(ledPin, LOW);
if (digitalRead(switch1Pin) == HIGH) {
myState++;
timer = millis();
digitalWrite(11, HIGH);
delay(1000);
digitalWrite(11, LOW);
}
break;
case 1:
if (timer + blinkZeit < millis()) myState++;
blinkLED();
break;
case 2:
if (servoPosition <= servoPositionGeschlossen) servoPosition = servoPosition + servoGeschwindigkeit;
if (digitalRead(switch1Pin) == LOW)
myState++;
blinkLED();
break;
case 3:
if (servoPosition <= servoPositionOffen) myState = 0;
else servoPosition = servoPosition - servoGeschwindigkeit;
blinkLED();
break;
}
servoc.write(servoPosition);
delay(20);
// put your main code here, to run repeatedly
}
Der vorläufige Schaltplan:
Zu meinen Fragen:
1. Den Einschaltimpuls für die Car-System Stopstellen (Pin 11) zu erzeugen war ja noch recht einfach, aber wie
bekomme ich einen Ausschaltimpuls auf Pin 12 ?
Ich habe da alles Mögliche ausprobiert, nur noch nicht das Richtige.
2. Wie reduziere ich die Stellgeschwindigkeit noch weiter ?
"int servoGeschwindigkeit = 1;" ist das Langsamste was auf diese Art geht.
Zur reinen Servosteuerung habe ich einen Sketch geschrieben mit dem sich Geschwindigkeit und Nachschwingen beeinflussen lassen,
aber keine Ahnung wie ich den integriert bekomme.
3. Wie bringt man den LED's bei, daß sie auf- und abblenden ?
Gruß,
Robert
klasse, daß Du gleich die Initiative ergriffen hast.
Da will ich auch gleich zu meinem gestern erwähnten Problem kommen.
Es geht eigentlich nur um eine simple Bahnschrankensteuerung.
Zur Auslösung sind Lichtschranken vorgesehen.
Allerdings sind für deren Platzierung nur recht kurze Abstände zum Bahnübergang möglich.
Mehr als eine Sekunde Vorblinkzeit und richtig vorbildgerechte Absenkdauer der Schranken scheiden aus.
Außerdem sollen zu Beginn und Ende des Schließvorgangs Impulse zur Steuerung der Car-System Stopstellen verfügbar sein.
Funktion sollte in etwa so sein:
- Schienenfahrzeug nähert sich aus beliebiger Richtung, bzw. auf beliebigem Gleis und beeinflusst Lichtschranke(n) vor Bü
- Car-System Stopstellen werden per Impuls angesteuert und Andreaskreuz-LED fangen an zu blinken
- Schranken schließen (deren Geschwindigkeit und Nachschwingen sind ein Kapitel für sich)
- Fahrzeug passiert Bü und Lichtschranke nach Bü.
(Alle Lichtschranken steuern den selben Arduino-Eingang.
Die erforderliche Signaldauer zwischen den Lichtschranken wird einfach durch einen Kondensator an diesem
Eingang mit t=x überbrückt.
Soll heißen, der jeweilige Impuls wird in einem gewissen Umfang soweit gestreckt bis der nächste kommt.
Ok, das ist nicht sehr elegant und wenn beispielsweise ein einzelnes, kurzes Fahrzeug auf dem Bü anhält und somit gerade keine Lichtschranke
betätigt, dann geht nach t=x halt die Bahnschranke auf.
Fast wie im richtigen Leben. Auf unserem Dorf-Bü habe ich das schon so ähnlich in Echt erlebt. )
- Schranken öffnen, LED's hören auf zu blinken und Car-System Stopstellen werden per Impuls freigegeben.
(Übrigens, es handelt sich nicht um die Faller-Stopstellen, sondern um eine Eigenentwicklung impulsgesteuerter Stopstellen
mit Servo und Permanentmagnet.)
Mit meinen Minimalst-Kenntnissen und einem Sketch aus dem Netz machte ich da Gehversuche.
Was heißt Gehversuche, es ist eher ein Rumstolpern auf Krücken.
Wie auch immer, es gelang wenigstens den zeitlichen Ablauf soweit anzupassen.
Was ich noch immer nicht auf die Reihe kriege, ist den Impuls am Ende des Ablaufs zu erzeugen.
Hier der verbastelte Sketch:
#include
int ledPin = 2;
int servoPin = 8;
int switch1Pin = 10;
int myState = 0;
Servo servoc;
int servoPositionOffen = 35;
int servoPositionGeschlossen = 120;
int servoPosition;
int servoGeschwindigkeit = 1;
int blinkZeit = 10;
long timer = 0;
void setup() {
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
servoc.attach(servoPin);
pinMode(ledPin, OUTPUT);
pinMode(switch1Pin, INPUT);
servoPosition = servoPositionOffen;
servoc.write(servoPosition);
delay(1000);
}
void blinkLED() {
if (millis() % 2000 > 1000) digitalWrite(ledPin, HIGH);
else digitalWrite(ledPin, LOW);
// put your setup code here, to run once:
}
void loop() {
switch (myState) {
case 0:
digitalWrite(ledPin, LOW);
if (digitalRead(switch1Pin) == HIGH) {
myState++;
timer = millis();
digitalWrite(11, HIGH);
delay(1000);
digitalWrite(11, LOW);
}
break;
case 1:
if (timer + blinkZeit < millis()) myState++;
blinkLED();
break;
case 2:
if (servoPosition <= servoPositionGeschlossen) servoPosition = servoPosition + servoGeschwindigkeit;
if (digitalRead(switch1Pin) == LOW)
myState++;
blinkLED();
break;
case 3:
if (servoPosition <= servoPositionOffen) myState = 0;
else servoPosition = servoPosition - servoGeschwindigkeit;
blinkLED();
break;
}
servoc.write(servoPosition);
delay(20);
// put your main code here, to run repeatedly
}
Der vorläufige Schaltplan:
Zu meinen Fragen:
1. Den Einschaltimpuls für die Car-System Stopstellen (Pin 11) zu erzeugen war ja noch recht einfach, aber wie
bekomme ich einen Ausschaltimpuls auf Pin 12 ?
Ich habe da alles Mögliche ausprobiert, nur noch nicht das Richtige.
2. Wie reduziere ich die Stellgeschwindigkeit noch weiter ?
"int servoGeschwindigkeit = 1;" ist das Langsamste was auf diese Art geht.
Zur reinen Servosteuerung habe ich einen Sketch geschrieben mit dem sich Geschwindigkeit und Nachschwingen beeinflussen lassen,
aber keine Ahnung wie ich den integriert bekomme.
3. Wie bringt man den LED's bei, daß sie auf- und abblenden ?
Gruß,
Robert
HansK, HNullmosel und 610ViaMala mögen diesen Beitrag
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Re: Arduino-, ESP-Programmierung und Co
So 13 Nov 2022, 16:17
Hallo zusammen,
Ich bin bis einschließlich Mittwoch bei den Kindern im Westerwald.
Daher werde ich erst am Donnerstag hier weiter posten bzw antworten können.
Werde dann die Programmieroberflächen und Bücher zum Lernen vorstellen.
Auch werde ich dann auf Fragen und Codes antworten.
Viele Grüße
Peter
Ich bin bis einschließlich Mittwoch bei den Kindern im Westerwald.
Daher werde ich erst am Donnerstag hier weiter posten bzw antworten können.
Werde dann die Programmieroberflächen und Bücher zum Lernen vorstellen.
Auch werde ich dann auf Fragen und Codes antworten.
Viele Grüße
Peter
Re: Arduino-, ESP-Programmierung und Co
Mo 14 Nov 2022, 16:56
Hallo Robert,
wenn die blöde Zeile nicht mit "int" los ginge, hätte ich vorgeschlagen es einfach mal mit servoGeschwindigkeit = 0.1; zu versuchen. Aaabber leider ....
Einen Versuch wäre es wert: Lass das blöde "int" weg. Und setz dann die Variable auf 0.1
Mal sehen was passiert.
Gruß aus dem Westerwald
Hans
wenn die blöde Zeile nicht mit "int" los ginge, hätte ich vorgeschlagen es einfach mal mit servoGeschwindigkeit = 0.1; zu versuchen. Aaabber leider ....
Einen Versuch wäre es wert: Lass das blöde "int" weg. Und setz dann die Variable auf 0.1
Mal sehen was passiert.
Gruß aus dem Westerwald
Hans
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Re: Arduino-, ESP-Programmierung und Co
Mo 14 Nov 2022, 17:54
Das funktioniert so nicht
Da muss ne for Schleife rein
Kannst mal nach Servo und for Schleife googlen
Mehr Donnerstag
N
Da muss ne for Schleife rein
Kannst mal nach Servo und for Schleife googlen
Mehr Donnerstag
N
Re: Arduino-, ESP-Programmierung und Co
Di 15 Nov 2022, 21:33
Hallo zusammen,
@Hans, funktioniert beides nicht.
@Peter, das sind für mich noch spanische Dörfer, aber ich versuche mich darin zurechtzufinden.
Was anderes,
in dem oben gezeigten Sketch soll die erste Zeile
"#include kleiner-als-Zeichen (<) Servo.h größer-als-Zeichen(>) " lauten.
tatsächlich steht da aber nur "#include".
Weil ich dachte, da vielleicht schlampig kopiert zu haben, ging ich nochmals auf "Bearbeiten"
und siehe da, dort steht der Text wieder vollständig.
Spaßeshalber habe ich hier einen Text zwischen kleiner-als- und größer-als-Zeichen eingefügt.
Der erscheint zwar noch in "Antwort schreiben"", aber nicht mehr in der "Vorschau".
< >, für sich allein dargestellt, werden akzeptiert.
aber nicht wenn was dazwischen steht.
Ist das was Grundsätzliches, oder nur eine Macke der Forum-Software ?
Gruß,
Robert
@Hans, funktioniert beides nicht.
@Peter, das sind für mich noch spanische Dörfer, aber ich versuche mich darin zurechtzufinden.
Was anderes,
in dem oben gezeigten Sketch soll die erste Zeile
"#include kleiner-als-Zeichen (<) Servo.h größer-als-Zeichen(>) " lauten.
tatsächlich steht da aber nur "#include".
Weil ich dachte, da vielleicht schlampig kopiert zu haben, ging ich nochmals auf "Bearbeiten"
und siehe da, dort steht der Text wieder vollständig.
Spaßeshalber habe ich hier einen Text zwischen kleiner-als- und größer-als-Zeichen eingefügt.
Der erscheint zwar noch in "Antwort schreiben"", aber nicht mehr in der "Vorschau".
< >, für sich allein dargestellt, werden akzeptiert.
aber nicht wenn was dazwischen steht.
Ist das was Grundsätzliches, oder nur eine Macke der Forum-Software ?
Gruß,
Robert
Re: Arduino-, ESP-Programmierung und Co
Mi 16 Nov 2022, 00:18
Hallo zusammen,
Mit dem Button bzw. Icon "Code" (links neben dem "Zitieren"-Icon) klappt's prima:
Erst den Code schreiben (tippen), dann den Bereich mit dem Code markieren und dann als letztes auf den Button "Code" klicken. So ähnlich wie beim zitieren.
Gruß aus dem Westerwald
Hans
Gute Frage. Ich weiß aber leider keine Antwort drauf.Robert schrieb:Ist das was Grundsätzliches, oder nur eine Macke der Forum-Software ?
Mit dem Button bzw. Icon "Code" (links neben dem "Zitieren"-Icon) klappt's prima:
- Code:
#include <Servo.h>
Erst den Code schreiben (tippen), dann den Bereich mit dem Code markieren und dann als letztes auf den Button "Code" klicken. So ähnlich wie beim zitieren.
Gruß aus dem Westerwald
Hans
BvL mag diesen Beitrag
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Beispiel Code für Bahnübergang
Do 17 Nov 2022, 11:08
Hallo Robert,
anbei ein Beispiel Code für einen Bahnübergang den ich selbst geschrieben habe:
Hoffe den kannst Du passend zu Deinem gestalten.
Ich steuere meinen Bahnübergang mit Infrarot Sensoren:
Sensor
Fragen natürlich gerne
Viele Grüße
Peter
anbei ein Beispiel Code für einen Bahnübergang den ich selbst geschrieben habe:
- Code:
#include <Arduino.h>
#include <Servo.h>
Servo servo_left;
Servo servo_right;
// constants won't change. Used here to set a pin number:
int ledPin1 = 4;// the number of the LED pin
int ledPin2 = 5;// the number of the LED pin
// Digital sensor input Left and Right
#define SENSOR_L 7
#define SENSOR_R 6
// Variables will change:
int ledState1 = LOW; // ledState used to set the LED
int ledState2 = LOW; // ledState used to set the LED
// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis1 = 0; // will store last time LED was updated
unsigned long previousMillis2 = 0; // will store last time LED was updated
// constants won't change:
const long interval = 500; // interval at which to blink (milliseconds)
void LED1(){
// here is where you'd put code that needs to be running all the time.
// check to see if it's time to blink the LED; that is, if the difference
// between the current time and last time you blinked the LED is bigger than
// the interval at which you want to blink the LED.
unsigned long currentMillis1 = millis();
if (currentMillis1 - previousMillis1 >= interval) {
// save the last time you blinked the LED
previousMillis1 = currentMillis1;
// if the LED is off turn it on and vice-versa:
if (ledState1 == LOW) {
ledState1 = HIGH;
} else {
ledState1 = LOW;
}
// set the LED with the ledState of the variable:
digitalWrite(ledPin1, ledState1);
}
}
void LED2(){
// here is where you'd put code that needs to be running all the time.
// check to see if it's time to blink the LED; that is, if the difference
// between the current time and last time you blinked the LED is bigger than
// the interval at which you want to blink the LED.
unsigned long currentMillis2 = millis();
if (currentMillis2 - previousMillis2 >= interval) {
// save the last time you blinked the LED
previousMillis2 = currentMillis2;
// if the LED is off turn it on and vice-versa:
if (ledState2 == LOW) {
ledState2 = HIGH;
} else {
ledState2 = LOW;
}
// set the LED with the ledState of the variable:
digitalWrite(ledPin2, ledState2);
}
}
void cabinets_above_right(){
for (int j = 170; j > 70; j--)
{
servo_right.write(j);
delay(10);
}
}
void cabinets_below_right(){
for (int j = 70; j < 170; j++)
{
servo_right.write(j);
delay(10);
}
}
void cabinets_above_left(){
for (int i = 53; i < 155; i++)
{
servo_left.write(i);
delay(10);
}
}
void cabinets_below_left(){
for (int i = 155; i > 53; i--)
{
servo_left.write(i);
delay(10);
}
}
void setup() {
Serial.begin(115200);
// set the digital pin as output:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
//Sensor Input
pinMode(SENSOR_L, INPUT_PULLUP);
pinMode(SENSOR_R, INPUT_PULLUP);
// set pin for servo
servo_right.attach(9);
servo_right.write(70);
servo_left.attach(8);
servo_left.write(155);
//servo_left.write(0);
}
void loop() {
if (digitalRead(SENSOR_L) == LOW)
{
//Sensor Left was activated, cabinets start below
//cabinets_below();
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
delay(3000);
cabinets_below_right();
cabinets_below_left();
//waiting for signal sensor Right
while (digitalRead(SENSOR_R) == HIGH)
{
//cabinets_below();
LED1();
LED2();
}//cabinets start above
cabinets_above_left();
cabinets_above_right();
delay(3000);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
}
}
Hoffe den kannst Du passend zu Deinem gestalten.
Ich steuere meinen Bahnübergang mit Infrarot Sensoren:
Sensor
Fragen natürlich gerne
Viele Grüße
Peter
HansK mag diesen Beitrag
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Bücherempfehlung und Code Editor
Do 17 Nov 2022, 12:29
Hallo zusammen,
anbei wie versprochen la ein paar Buchempfehlungen für den Arduino und ESP32:
Einstieg in C
Mikrocontroller ESP32
Arduino
Natürlich können die Bücher auch wo anders bestellt werden, Z. BSp bei Buecher.de
Codeeditor - IDE
Arduino
Visual Studio Code
Ich benutze nur Visual Studio Code.
Allerdings sollte man hier ein paar Windows-Installations - und Programmiererfahrungen haben.
Fragen zu den Themen natürlich sehr gerne.
Viel Spaß und viele Grüße
Peter
anbei wie versprochen la ein paar Buchempfehlungen für den Arduino und ESP32:
Einstieg in C
Mikrocontroller ESP32
Arduino
Natürlich können die Bücher auch wo anders bestellt werden, Z. BSp bei Buecher.de
Codeeditor - IDE
Arduino
Visual Studio Code
Ich benutze nur Visual Studio Code.
Allerdings sollte man hier ein paar Windows-Installations - und Programmiererfahrungen haben.
Fragen zu den Themen natürlich sehr gerne.
Viel Spaß und viele Grüße
Peter
HansK mag diesen Beitrag
Re: Arduino-, ESP-Programmierung und Co
Do 17 Nov 2022, 21:34
Hallo Peter,
danke für den Sketch!
Auf dieser Basis habe ich's immerhin geschafft auch die benötigten Impulse für meine Stopstellen zu erzeugen,
die LED's zum wechselseitigen Blinken zu bringen und das Ganze mit nur einem Steuersignal zu bedienen.
Mit dem Nachschwingen der Schranken und dem Dimmen der LED's will ich mich befassen, wenn ich mal mehr Ahnung haben sollte.
Die Literaturtipps sind gut, aber auch für Fortgeschrittene.
Für Fußgänger wie mich ist auch schon sowas hilfreich.
Selbst dabei möchte ich oft den Finger strecken: "Herr Lehrer, ich hab do mol ä Frooch....."
Präsenzunterricht ist halt schwer zu ersetzen.
Gruß,
Robert
danke für den Sketch!
Auf dieser Basis habe ich's immerhin geschafft auch die benötigten Impulse für meine Stopstellen zu erzeugen,
die LED's zum wechselseitigen Blinken zu bringen und das Ganze mit nur einem Steuersignal zu bedienen.
Mit dem Nachschwingen der Schranken und dem Dimmen der LED's will ich mich befassen, wenn ich mal mehr Ahnung haben sollte.
Die Literaturtipps sind gut, aber auch für Fortgeschrittene.
Für Fußgänger wie mich ist auch schon sowas hilfreich.
Selbst dabei möchte ich oft den Finger strecken: "Herr Lehrer, ich hab do mol ä Frooch....."
Präsenzunterricht ist halt schwer zu ersetzen.
Gruß,
Robert
HansK mag diesen Beitrag
Re: Arduino-, ESP-Programmierung und Co
Mo 21 Nov 2022, 18:55
Hallo zusammen,
Das Paper war sehr hilfreich für mich. Jetzt habe ich die Sache mit dem Arduino endlich verstanden.
Wenn ich das 10 Jahre (oder mehr Jahre) früher gehabt hätte und es den Arduino damals auch schon gegeben hätte, dann wären uns bei der alten Anlage bei meinen Eltern im Keller einige durchgebrannte Weichenantriebe erspart geblieben!
Mit einem Arduino und 2 Besetzt-Melde-Abschnitten und dem passenden Programm hätte man wunderbar den Dauer-Kontakt eines Besetzt-Melders zu einem kurzen Schalt-Impuls, wie er vom Schaltgleis kommt (wenn es denn funktioniert und nicht fest hängt) kommt, umwandeln können.
Die Logik bzw. das Programm dazu wäre (für mich) das geringste Problem gewesen. Die Sprache C kenne ich noch von früher (die Programme für meine Diplom-Arbeit waren alle in C).
Aber jetzt ist es zu spät, es lohnt nicht mehr. Das Ende der alten Anlage bei meinen Eltern im Keller ist absehbar ....
Gruß aus dem Westerwald
Hans
stimmt!!!Robert schrieb:Für Fußgänger wie mich ist auch schon sowas hilfreich
Das Paper war sehr hilfreich für mich. Jetzt habe ich die Sache mit dem Arduino endlich verstanden.
Wenn ich das 10 Jahre (oder mehr Jahre) früher gehabt hätte und es den Arduino damals auch schon gegeben hätte, dann wären uns bei der alten Anlage bei meinen Eltern im Keller einige durchgebrannte Weichenantriebe erspart geblieben!
Mit einem Arduino und 2 Besetzt-Melde-Abschnitten und dem passenden Programm hätte man wunderbar den Dauer-Kontakt eines Besetzt-Melders zu einem kurzen Schalt-Impuls, wie er vom Schaltgleis kommt (wenn es denn funktioniert und nicht fest hängt) kommt, umwandeln können.
Die Logik bzw. das Programm dazu wäre (für mich) das geringste Problem gewesen. Die Sprache C kenne ich noch von früher (die Programme für meine Diplom-Arbeit waren alle in C).
Aber jetzt ist es zu spät, es lohnt nicht mehr. Das Ende der alten Anlage bei meinen Eltern im Keller ist absehbar ....
Vielleicht kann ich statt dem Herrn Lehrer helfen? Ich habe das Paper komplett durch und bei mir ist soweit alles klar.Robert schrieb:Selbst dabei möchte ich oft den Finger strecken: "Herr Lehrer, ich hab do mol ä Frooch....."
Gruß aus dem Westerwald
Hans
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Re: Arduino-, ESP-Programmierung und Co
Mo 21 Nov 2022, 18:58
Hallo Hans,
perfekt.
Dann hat sich der Beitrag doch gelohnt.
Vielleicht kommen ja noch mehr Forumsmitglieder auf den Geschmack.
Viele Grüße
noch aus Franken
perfekt.
Dann hat sich der Beitrag doch gelohnt.
Vielleicht kommen ja noch mehr Forumsmitglieder auf den Geschmack.
Viele Grüße
noch aus Franken
Re: Arduino-, ESP-Programmierung und Co
Di 22 Nov 2022, 21:26
Hallo Hans und Peter,
in der Zeit hätte ich die Steuerung zehnmal mit diskreten Bauelementen verwirklicht.
Diese Programmiererei ist einfach nicht meine Welt.
Aber jetzt habe ich damit angefangen, jetzt will ich auch zu einem Ergebnis kommen.
Damit's ja nicht zu einfach wird möchte ich nun drei Bü-Steuerungen da rein packen.
Nicht wegen der acht Euro für weitere Arduinos, sondern wegen dem Platz im Stellpult.
Von der Lichtschrankenvariante bin ich abgekommen.
Bei der Steuerimpulssuche hatte ich den Wald vor lauter Bäumen nicht gesehen.
Zwei der Bü's liegen an Märklin-K-Gleis, also ist ja die Kontaktgleisvariante naheliegend.
Ein Bü liegt an der 2L-Schmalspurstrecke, da soll das ein Gleisbesetztmelder übernehmen.
Zum besseren Verständnis hier der neue vorläufige Schaltplan:
Das Funktionsdiagramm dazu:
Um die notwendigen Ports frei zu bekommen habe ich alles Verzichtbare rausgenommen.
Die abgespeckte Variante von Peter's Sketch sieht damit so aus:
#include
#include
Servo servo_A;
Servo servo_B;
// Digital sensor input
#define SENSOR_A 7
#define SENSOR_B 6
#define SENSOR_C 3
void cabinets_above_B(){
for (int j = 130; j > 40; j--)
{
servo_B.write(j);
delay(10);
}
}
void cabinets_below_B(){
for (int j = 40; j < 130; j++)
{
servo_B.write(j);
delay(10);
}
}
void cabinets_above_A(){
for (int i = 40; i < 130; i++)
{
servo_A.write(i);
delay(10);
}
}
void cabinets_below_A(){
for (int i = 130; i > 40; i--)
{
servo_A.write(i);
delay(10);
}
}
void setup() {
Serial.begin(115200);
//Sensor Input
pinMode(SENSOR_A, INPUT);
pinMode(SENSOR_B, INPUT);
pinMode(SENSOR_C, INPUT);
// set pin for servo
servo_B.attach(9);
servo_B.write(130);
servo_A.attach(;
servo_A.write(130);
pinMode (10, OUTPUT); //Impuls Stopstelle A schließen
pinMode (11, OUTPUT); //Impuls Stopstelle A öffnen
pinMode (12, OUTPUT); //Impuls Stopstelle B schließen
pinMode (13, OUTPUT); //Impuls Stopstelle B öffnen
pinMode (4, OUTPUT); //LED C-a
//LED's wechselweise blinkend
pinMode (5, OUTPUT); //LED C-b
}
void loop() {
if (digitalRead(SENSOR_A) == LOW)
{
digitalWrite(10, HIGH); //Schließimpuls für Stopstelle A
delay(1000);
digitalWrite(10, LOW);
//Sensor A was activated, cabinets start below
//cabinets_below();
delay(100);
cabinets_below_A();
//waiting for signal sensor Right
while (digitalRead(SENSOR_A) == LOW)
{
//cabinets_below();
}//cabinets start above
cabinets_above_A();
delay(100);
digitalWrite(11, HIGH); //öffnungsimpuls für Stopstelle A
delay(1000);
digitalWrite(11, LOW);
}}
Was mit Bü "A" zu tun hat funktioniert so auch.
Aber ich bekomm's ums Ver...... nicht hin, die Erweiterungen für Bü "B" und "C" einzubinden.
Ich bin da für jede Hilfe dankbar.
Hans, ich rede Dich dann auch gern mit "Herr Lehrer" an.
Übrigens, was wird aus Deiner Ur-Anlage?
Platz auf Deinem Dachboden um das ganze Material verbauen zu können müsstest Du doch eigentlich haben.
Halte den Abbau in vielen Bildern fest. Auch wenn sie noch so traurig sein mögen.
Gruß,
Robert
in der Zeit hätte ich die Steuerung zehnmal mit diskreten Bauelementen verwirklicht.
Diese Programmiererei ist einfach nicht meine Welt.
Aber jetzt habe ich damit angefangen, jetzt will ich auch zu einem Ergebnis kommen.
Damit's ja nicht zu einfach wird möchte ich nun drei Bü-Steuerungen da rein packen.
Nicht wegen der acht Euro für weitere Arduinos, sondern wegen dem Platz im Stellpult.
Von der Lichtschrankenvariante bin ich abgekommen.
Bei der Steuerimpulssuche hatte ich den Wald vor lauter Bäumen nicht gesehen.
Zwei der Bü's liegen an Märklin-K-Gleis, also ist ja die Kontaktgleisvariante naheliegend.
Ein Bü liegt an der 2L-Schmalspurstrecke, da soll das ein Gleisbesetztmelder übernehmen.
Zum besseren Verständnis hier der neue vorläufige Schaltplan:
Das Funktionsdiagramm dazu:
Um die notwendigen Ports frei zu bekommen habe ich alles Verzichtbare rausgenommen.
Die abgespeckte Variante von Peter's Sketch sieht damit so aus:
#include
#include
Servo servo_A;
Servo servo_B;
// Digital sensor input
#define SENSOR_A 7
#define SENSOR_B 6
#define SENSOR_C 3
void cabinets_above_B(){
for (int j = 130; j > 40; j--)
{
servo_B.write(j);
delay(10);
}
}
void cabinets_below_B(){
for (int j = 40; j < 130; j++)
{
servo_B.write(j);
delay(10);
}
}
void cabinets_above_A(){
for (int i = 40; i < 130; i++)
{
servo_A.write(i);
delay(10);
}
}
void cabinets_below_A(){
for (int i = 130; i > 40; i--)
{
servo_A.write(i);
delay(10);
}
}
void setup() {
Serial.begin(115200);
//Sensor Input
pinMode(SENSOR_A, INPUT);
pinMode(SENSOR_B, INPUT);
pinMode(SENSOR_C, INPUT);
// set pin for servo
servo_B.attach(9);
servo_B.write(130);
servo_A.attach(;
servo_A.write(130);
pinMode (10, OUTPUT); //Impuls Stopstelle A schließen
pinMode (11, OUTPUT); //Impuls Stopstelle A öffnen
pinMode (12, OUTPUT); //Impuls Stopstelle B schließen
pinMode (13, OUTPUT); //Impuls Stopstelle B öffnen
pinMode (4, OUTPUT); //LED C-a
//LED's wechselweise blinkend
pinMode (5, OUTPUT); //LED C-b
}
void loop() {
if (digitalRead(SENSOR_A) == LOW)
{
digitalWrite(10, HIGH); //Schließimpuls für Stopstelle A
delay(1000);
digitalWrite(10, LOW);
//Sensor A was activated, cabinets start below
//cabinets_below();
delay(100);
cabinets_below_A();
//waiting for signal sensor Right
while (digitalRead(SENSOR_A) == LOW)
{
//cabinets_below();
}//cabinets start above
cabinets_above_A();
delay(100);
digitalWrite(11, HIGH); //öffnungsimpuls für Stopstelle A
delay(1000);
digitalWrite(11, LOW);
}}
Was mit Bü "A" zu tun hat funktioniert so auch.
Aber ich bekomm's ums Ver...... nicht hin, die Erweiterungen für Bü "B" und "C" einzubinden.
Ich bin da für jede Hilfe dankbar.
Hans, ich rede Dich dann auch gern mit "Herr Lehrer" an.
Übrigens, was wird aus Deiner Ur-Anlage?
Platz auf Deinem Dachboden um das ganze Material verbauen zu können müsstest Du doch eigentlich haben.
Halte den Abbau in vielen Bildern fest. Auch wenn sie noch so traurig sein mögen.
Gruß,
Robert
V-Mann, HansK und MeierGerhard52 mögen diesen Beitrag
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Re: Arduino-, ESP-Programmierung und Co
Mi 23 Nov 2022, 09:46
Hallo Robert,
versuche mal den Code für BÜ B:
Danach denke ich kannst Du die Anpassungen auch für BÜ C vornehmen.
Wenn nicht nochmal melden.
Für die Stoppstelle C benötigst Du noch die PinModes.
Viele Grüße
Peter
versuche mal den Code für BÜ B:
- Code:
#include <Arduino.h>
#include <Servo.h>
Servo servo_A;
Servo servo_B;
Servo servo_C;
// Digital sensor input
#define SENSOR_A 7
#define SENSOR_B 6
#define SENSOR_C 3
void cabinets_above_C(){
for (int j = 130; j > 40; j--)
{
servo_C.write(j);
delay(10);
}
}
void cabinets_below_C(){
for (int j = 40; j < 130; j++)
{
servo_C.write(j);
delay(10);
}
}
void cabinets_above_B(){
for (int j = 130; j > 40; j--)
{
servo_B.write(j);
delay(10);
}
}
void cabinets_below_B(){
for (int j = 40; j < 130; j++)
{
servo_B.write(j);
delay(10);
}
}
void cabinets_above_A(){
for (int i = 40; i < 130; i++)
{
servo_A.write(i);
delay(10);
}
}
void cabinets_below_A(){
for (int i = 130; i > 40; i--)
{
servo_A.write(i);
delay(10);
}
}
void setup() {
Serial.begin(115200);
//Sensor Input
pinMode(SENSOR_A, INPUT);
pinMode(SENSOR_B, INPUT);
pinMode(SENSOR_C, INPUT);
// set pin for servo
servo_B.attach(9);
servo_B.write(130);
servo_A.attach(Cool;
servo_A.write(130);
pinMode (10, OUTPUT); //Impuls Stopstelle A schließen
pinMode (11, OUTPUT); //Impuls Stopstelle A öffnen
pinMode (12, OUTPUT); //Impuls Stopstelle B schließen
pinMode (13, OUTPUT); //Impuls Stopstelle B öffnen
pinMode (4, OUTPUT); //LED C-a
//LED's wechselweise blinkend
pinMode (5, OUTPUT); //LED C-b
}
void loop() {
//function for cabinet A
if (digitalRead(SENSOR_A) == LOW)
{
digitalWrite(10, HIGH); //Schließimpuls für Stopstelle A
delay(1000);
digitalWrite(10, LOW);
//Sensor A was activated, cabinets start below
//cabinets_below();
delay(100);
cabinets_below_A();
//waiting for signal sensor Right
while (digitalRead(SENSOR_A) == LOW)
{
//cabinets_below();
}//cabinets start above
cabinets_above_A();
delay(100);
digitalWrite(11, HIGH); //öffnungsimpuls für Stopstelle A
delay(1000);
digitalWrite(11, LOW);
}
//function for cabinet B
if (digitalRead(SENSOR_B) == LOW)
{
digitalWrite(12, HIGH); //Schließimpuls für Stopstelle B
delay(1000);
digitalWrite(12, LOW);
//Sensor B was activated, cabinets start below
//cabinets_below();
delay(100);
cabinets_below_B();
//waiting for signal sensor Right
while (digitalRead(SENSOR_B) == LOW)
{
//cabinets_below();
}//cabinets start above
cabinets_above_B();
delay(100);
digitalWrite(13, HIGH); //öffnungsimpuls für Stopstelle B
delay(1000);
digitalWrite(13, LOW);
}
}
Danach denke ich kannst Du die Anpassungen auch für BÜ C vornehmen.
Wenn nicht nochmal melden.
Für die Stoppstelle C benötigst Du noch die PinModes.
Viele Grüße
Peter
Re: Arduino-, ESP-Programmierung und Co
Mi 23 Nov 2022, 17:51
Hallo Robert,
ich kam noch nicht dazu, mir Dein Programm zu Gemüte zu führen. Aber eins ist mir auf-/eingefallen:
Wenn Du drei Bü von einem Arduino steuern lassen willst, dann ist das extrem (schwierig). Denn dann darf keine while- oder Warteschleife im Programm drin sein, denn sonst können Ereignisse verloren gehen während das Programm auf dem Arduinio in der while- oder Warteschleife Däumchen dreht.
Z.B könnte während "warten wegen Bü A", dann ein Ereignis von Bü B oder von Bü C unbemerkt verloren gehen. Also kommen und wieder gehen, ohne dass der Arduino es bemerkte.
Vielleicht denke ich zu kompliziert, aber das ist mein Verständnis von der Aufgabenstellung.
Wenn jeder BÜ einen eigenen Arduino hat, dann gibt es kein Problem mit der Gleichzeitigkeit der Ereignisse.
Was Du vorhast erinnert mich an meine Lehr- und Wanderjahre bei Siemens als wir mit Prozessrechnern Real-Time-Programmierung machten. Mit Interrupt und allem drum und dran. Denn wenn von außen ein Signal kommt, dann muss der Rechner reagieren. Er kann nicht sagen "Moment mal, ich drehe gerade in einer while-/Warteschleife Däumchen".
Ansonsten: Ich habe fest vor mir Dein Programm genauer anzuschauen, aber (Du weißt, ich bin Rentner) ich habe im Moment keine/wenig Zeit.
Gruß aus dem Westerwald
Hans
ich kam noch nicht dazu, mir Dein Programm zu Gemüte zu führen. Aber eins ist mir auf-/eingefallen:
Robert schrieb:Damit's ja nicht zu einfach wird möchte ich nun drei Bü-Steuerungen da rein packen.
Wenn Du drei Bü von einem Arduino steuern lassen willst, dann ist das extrem (schwierig). Denn dann darf keine while- oder Warteschleife im Programm drin sein, denn sonst können Ereignisse verloren gehen während das Programm auf dem Arduinio in der while- oder Warteschleife Däumchen dreht.
Z.B könnte während "warten wegen Bü A", dann ein Ereignis von Bü B oder von Bü C unbemerkt verloren gehen. Also kommen und wieder gehen, ohne dass der Arduino es bemerkte.
Vielleicht denke ich zu kompliziert, aber das ist mein Verständnis von der Aufgabenstellung.
Wenn jeder BÜ einen eigenen Arduino hat, dann gibt es kein Problem mit der Gleichzeitigkeit der Ereignisse.
Was Du vorhast erinnert mich an meine Lehr- und Wanderjahre bei Siemens als wir mit Prozessrechnern Real-Time-Programmierung machten. Mit Interrupt und allem drum und dran. Denn wenn von außen ein Signal kommt, dann muss der Rechner reagieren. Er kann nicht sagen "Moment mal, ich drehe gerade in einer while-/Warteschleife Däumchen".
Ansonsten: Ich habe fest vor mir Dein Programm genauer anzuschauen, aber (Du weißt, ich bin Rentner) ich habe im Moment keine/wenig Zeit.
Gruß aus dem Westerwald
Hans
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Re: Arduino-, ESP-Programmierung und Co
Mi 23 Nov 2022, 18:46
Hallo Hans,
die Steuerung 3er Bahnübergänge ist kein Problem.
Der letzte Code mit den Bahnschranken läuft bei mir einwandfrei.
Die While Schleife bezieht sich ja nur auf die Lichtsensoren.
Das heißt, "while" (so lange) der Sensor ein Signal vom Zug bekommt bleibt die Schranke unten.
So ist der Code geschrieben.
Viele Grüße
Peter
die Steuerung 3er Bahnübergänge ist kein Problem.
Der letzte Code mit den Bahnschranken läuft bei mir einwandfrei.
Die While Schleife bezieht sich ja nur auf die Lichtsensoren.
Das heißt, "while" (so lange) der Sensor ein Signal vom Zug bekommt bleibt die Schranke unten.
So ist der Code geschrieben.
Viele Grüße
Peter
Re: Arduino-, ESP-Programmierung und Co
Mi 23 Nov 2022, 21:37
Hallo Hans und Peter,
Ihr habt beide Recht.
Bahnübergänge A und B (C habe ich noch weggelassen) funktionieren jetzt beide.
Allerdings nicht gleichzeitig.
Soll heißen, wenn der eine aktiv ist, macht der andere nix und umgekehrt.
Bzw., wird der erst aktiv wenn der zuerst betätigte fertig ist.
Es scheint mir inzwischen einfacher, den beschrankten Übergängen A und B wg. der Servos jeweils einen eigenen Arduino zu gönnen
und die Blinklicht/Stopstellensteuerung für den unbeschrankten Bü C mit kleinem Aufwand diskret aufzubauen.
Dafür versuche ich dann eine langsamere Schrankenbewegung mit Nachschwingen hinzubekommen.
Wenn man grad keine Probleme hat, macht man sich halt welche.
Gruß,
Robert
Ihr habt beide Recht.
Bahnübergänge A und B (C habe ich noch weggelassen) funktionieren jetzt beide.
Allerdings nicht gleichzeitig.
Soll heißen, wenn der eine aktiv ist, macht der andere nix und umgekehrt.
Bzw., wird der erst aktiv wenn der zuerst betätigte fertig ist.
Es scheint mir inzwischen einfacher, den beschrankten Übergängen A und B wg. der Servos jeweils einen eigenen Arduino zu gönnen
und die Blinklicht/Stopstellensteuerung für den unbeschrankten Bü C mit kleinem Aufwand diskret aufzubauen.
Dafür versuche ich dann eine langsamere Schrankenbewegung mit Nachschwingen hinzubekommen.
Wenn man grad keine Probleme hat, macht man sich halt welche.
Gruß,
Robert
Re: Arduino-, ESP-Programmierung und Co
Mi 23 Nov 2022, 23:25
Hallo Robert,
eine Antwort hatte ich eben vergessen.
Bei Dir ist es im Vergleich richtiggehend üppig.
Viele Grüße
Hans
eine Antwort hatte ich eben vergessen.
Gute Frage!Robert schrieb:Übrigens, was wird aus Deiner Ur-Anlage?
Neeeeiin! Dort ist est ziemlich beengt. Das Sprengwerk in der Mitte )um die Decke vom drunterliegenden Obergeschoß zu halten) und Aufschublinge im XXXXL-Format an den Dachsparren schränken den nutzbaren Innenraum deutlich ein.Robert schrieb:Platz auf Deinem Dachboden um das ganze Material verbauen zu können müsstest Du doch eigentlich haben.
Bei Dir ist es im Vergleich richtiggehend üppig.
Gute Idee, das werde ich auf jeden Fall machen. Und einen Abschiedsfahrtag bevor der Abbau/Abriss beginnt. Das war die Idee meiner Frau.Ralf schrieb:Halte den Abbau in vielen Bildern fest. Auch wenn sie noch so traurig sein mögen.
Viele Grüße
Hans
V-Mann, BvL und MeierGerhard52 mögen diesen Beitrag
- Rothpe
- Anzahl der Beiträge : 76
Anmeldedatum : 08.05.19
Alter : 61
Ort : Westerwald
Moba-Kurz-Info : H0, 3-Leiter Märklin digital, Redbox, Automatikbetrieb mit Rocrail
Re: Arduino-, ESP-Programmierung und Co
Do 24 Nov 2022, 08:44
Hallo Robert,
die langsamere Schrankenbewegung steuerst Du mit dem Delay() unter dem Befehl servo.write.
Einfach mit dem Delay ein wenig spielen.
Viele Grüße
Peter
die langsamere Schrankenbewegung steuerst Du mit dem Delay() unter dem Befehl servo.write.
Einfach mit dem Delay ein wenig spielen.
Viele Grüße
Peter
BvL mag diesen Beitrag
Re: Arduino-, ESP-Programmierung und Co
Do 24 Nov 2022, 21:50
Hallo zusammen,
@Peter,
danke für den Tipp!
Hab's ausprobiert. Mit 60 mSek kommt das ganz gut hin.
Bloß für das Nachschwingen, da sehe ich auf diese Weise keine Möglichkeit.
Dafür habe ich mal einen Sketch geschrieben in dem jedes Grad Bewegung einzeln abgearbeitet wird.
Der läuft bisweilen aber nur in Endlosschleife.
Keine Ahnung wie man den einbinden kann, bzw. ob das nicht auch einfacher geht.
@Hans,
wie man solche bautechnischen Widrigkeiten erfolgreich umschifft hast Du doch schon mit Deiner jetzigen Anlage gezeigt.
Da gibt's keine Denkverbote. (Mitbewohnerin hin oder her.) Wo ein Wille ist .......
Der Abschiedsfahrtag war eine echt klasse Idee Deiner Frau.
Das wäre doch auch eine Gelegenheit sich eine gute Würfelkamera für eine Führerstandsmitfahrt zu gönnen.
Ich mein' ja bloß.
Die Möglichkeit für solche Aufnahmen auf dieser Anlage kommt nie mehr wieder.
Gruß,
Robert
@Peter,
danke für den Tipp!
Hab's ausprobiert. Mit 60 mSek kommt das ganz gut hin.
Bloß für das Nachschwingen, da sehe ich auf diese Weise keine Möglichkeit.
Dafür habe ich mal einen Sketch geschrieben in dem jedes Grad Bewegung einzeln abgearbeitet wird.
Der läuft bisweilen aber nur in Endlosschleife.
Keine Ahnung wie man den einbinden kann, bzw. ob das nicht auch einfacher geht.
@Hans,
wie man solche bautechnischen Widrigkeiten erfolgreich umschifft hast Du doch schon mit Deiner jetzigen Anlage gezeigt.
Da gibt's keine Denkverbote. (Mitbewohnerin hin oder her.) Wo ein Wille ist .......
Der Abschiedsfahrtag war eine echt klasse Idee Deiner Frau.
Das wäre doch auch eine Gelegenheit sich eine gute Würfelkamera für eine Führerstandsmitfahrt zu gönnen.
Ich mein' ja bloß.
Die Möglichkeit für solche Aufnahmen auf dieser Anlage kommt nie mehr wieder.
Gruß,
Robert
V-Mann und MeierGerhard52 mögen diesen Beitrag
- V-Mann
- Anzahl der Beiträge : 1303
Anmeldedatum : 26.04.19
Alter : 76
Ort : Emsland
Moba-Kurz-Info : 3L-Gleis, Epoche III/IV, digital fahren, analog schalten, ECoS, Dampf und Diesel auf 18m²
Re: Arduino-, ESP-Programmierung und Co
Fr 25 Nov 2022, 11:08
Moin,
@ Hans, heute gibt´s bei Aldi Nord eine Rollei-Action-Cam für unter 50€. ich habe gerade eine gekauft, da die teure Gopro ihren Dienst verweigert.
@ Peter, das Thema entwickelt sich doch recht gut... ;-)
Gruß
Horst
@ Hans, heute gibt´s bei Aldi Nord eine Rollei-Action-Cam für unter 50€. ich habe gerade eine gekauft, da die teure Gopro ihren Dienst verweigert.
@ Peter, das Thema entwickelt sich doch recht gut... ;-)
Gruß
Horst
Re: Arduino-, ESP-Programmierung und Co
Fr 25 Nov 2022, 19:00
Hallo zusammen,
Die Stelle im Code wäre die Funktion bzw. das Unterprogramm "void cabinets_below_A()", dort nach dem Ende der for-Schleife, also zwischen den beiden geschweiften Klammer zu, siehe mein Code-Schnipsel (sogar bis X/:
Elegant wäre es mit einer Funktion bzw. einem Unterprogramm, das in dem "cabinets_below_A" vier mal aufgerufen würde, jeweils mit einem anderen Wert für das anheben/absenken.
@Horst:
Danke für den Tipp, wir sind aber "Süd". Und außerdem ist filmen und Filme zuschneiden nicht mein "Ding". Ich lass' da die Finger von. Vielleicht irgendwann später ...
Gruß aus dem Westerwald
Hans
Wo ist das Problem? Du brauchst doch "nur" am Ende vom Code für "Schranke senken" etwas "Neues" einfügen, nämlich "anheben um X mm", "absenken um X mm", "anheben um X/2 mm", "absenken um X/2 mm", "anheben um X/4 mm", "absenken um X/4 mm", .... wobei X eine beliebige Zahl ist und X/2 dann die Hälfte davon uswRobert schrieb:Bloß für das Nachschwingen, da sehe ich auf diese Weise keine Möglichkeit.
Die Stelle im Code wäre die Funktion bzw. das Unterprogramm "void cabinets_below_A()", dort nach dem Ende der for-Schleife, also zwischen den beiden geschweiften Klammer zu, siehe mein Code-Schnipsel (sogar bis X/:
- Code:
void cabinets_below_A(){
for (int i = 130; i > 40; i--)
{
servo_A.write(i);
delay(10);
}
// ab hier neuer Code eingefügt
for (int i = 40; i < 48; i++) // erneut anheben um X, Annahme X=8
{
servo_A.write(i);
delay(10);
}
for (int i = 48; i > 40; i--) // absenken, gleichen Weg wie vorher angehoben
{
servo_A.write(i);
delay(10);
}
for (int i = 40; i < 44; i++) // erneut anheben um X/2, also X/2=4
{
servo_A.write(i);
delay(10);
}
for (int i = 44; i > 40; i--) // absenken, gleichen Weg wie vorher angehoben
{
servo_A.write(i);
delay(10);
}
for (int i = 40; i < 42; i++) // erneut anheben um X/4, also X/4=2
{
servo_A.write(i);
delay(10);
}
for (int i = 42; i > 40; i--) // absenken, gleichen Weg wie vorher angehoben
{
servo_A.write(i);
delay(10);
}
for (int i = 40; i < 41; i++) // erneut anheben um X/8, also X/2=1
{
servo_A.write(i);
delay(10);
}
for (int i = 41; i > 40; i--) // absenken, gleichen Weg wie vorher angehoben
{
servo_A.write(i);
delay(10);
}
// Ende von "ab hier neuer Code eingefügt"
}
Elegant wäre es mit einer Funktion bzw. einem Unterprogramm, das in dem "cabinets_below_A" vier mal aufgerufen würde, jeweils mit einem anderen Wert für das anheben/absenken.
Erfolgreich umschifft, das stimmt schon. Aber wenn, dann gilt mein Interesse eher einer Erweiterung um z.B. der Alpha-Bahn ein eigenes Biotop zu gönnen. Oder mehr Auslauf für den ICE (beides wäre in der anderen Hälfte, jenseits vom Sprengwerk). Aber nicht um Teile oder Rest von der alten Anlage in den Westerwald zu transferieren. Zu dem meisten rollenden Material habe ich nicht wirklich eine Beziehung, aber mal sehen, es hat ja zum Glück noch Zeit!Robert schrieb:wie man solche bautechnischen Widrigkeiten erfolgreich umschifft hast Du doch schon mit Deiner jetzigen Anlage gezeigt.
Da gibt's keine Denkverbote. (Mitbewohnerin hin oder her.) Wo ein Wille ist .......
@Horst:
Danke für den Tipp, wir sind aber "Süd". Und außerdem ist filmen und Filme zuschneiden nicht mein "Ding". Ich lass' da die Finger von. Vielleicht irgendwann später ...
ganz meine MeinungHorst schrieb:Thema entwickelt sich doch recht gut.
Gruß aus dem Westerwald
Hans
BvL mag diesen Beitrag
Re: Arduino-, ESP-Programmierung und Co
So 27 Nov 2022, 18:35
Hallo Hans,
danke für die Sketch-Erweiterung. Ich kam erst heute zum Ausprobieren.
Geschwindigkeit und Winkelgrade habe ich variiert.
Die optische Wirkung ist schon ganz ordentlich, allerdings brauche ich da noch hochwertigere Servos,
damit das auch wirklich gut rüberkommt. Die derzeitigen fünf-Euro Exemplare laufen zu ruckelig.
Ebenso will ich das Nachschwingen auch noch beim Öffnungsvorgang "einbauen".
Endgültige Einstellungen werde ich dann erst an den fertigen Bahnübergängen vornehmen.
Wie kommen eigentlich die "Cool"-Smileys in den Forumstext ?
Bei meinem oben gezeigten Sketch steht in einer Zeile statt "servo_A.attach Klammer auf 8 Klammer zu ; " , "servo_A.attach( ; "
In Deinem letzten Text soll die Stelle mit dem Smiley sicher "....... (sogar bis X/acht): " heißen.
Die Eingabefolge "8" und "Klammer zu" generiert offenbar grundsätzlich diesen Smiley.
Dagegen hilft wohl nur eine Leerstelle zwischen 8 und ).
Das Verwirrende daran ist, daß der Text beim Schreiben noch ganz normal dasteht und erst in der Vorschau bzw.
nach dem Hochladen dieser Smiley auftaucht.
Der Leser fragt sich dann wie besoffen der Schreiber war.
Nein, war ich nicht, die Software war's !!!
Gruß,
Robert
danke für die Sketch-Erweiterung. Ich kam erst heute zum Ausprobieren.
Geschwindigkeit und Winkelgrade habe ich variiert.
Die optische Wirkung ist schon ganz ordentlich, allerdings brauche ich da noch hochwertigere Servos,
damit das auch wirklich gut rüberkommt. Die derzeitigen fünf-Euro Exemplare laufen zu ruckelig.
Ebenso will ich das Nachschwingen auch noch beim Öffnungsvorgang "einbauen".
Endgültige Einstellungen werde ich dann erst an den fertigen Bahnübergängen vornehmen.
Wie kommen eigentlich die "Cool"-Smileys in den Forumstext ?
Bei meinem oben gezeigten Sketch steht in einer Zeile statt "servo_A.attach Klammer auf 8 Klammer zu ; " , "servo_A.attach( ; "
In Deinem letzten Text soll die Stelle mit dem Smiley sicher "....... (sogar bis X/acht): " heißen.
Die Eingabefolge "8" und "Klammer zu" generiert offenbar grundsätzlich diesen Smiley.
Dagegen hilft wohl nur eine Leerstelle zwischen 8 und ).
Das Verwirrende daran ist, daß der Text beim Schreiben noch ganz normal dasteht und erst in der Vorschau bzw.
nach dem Hochladen dieser Smiley auftaucht.
Der Leser fragt sich dann wie besoffen der Schreiber war.
Nein, war ich nicht, die Software war's !!!
Gruß,
Robert
Re: Arduino-, ESP-Programmierung und Co
Mo 28 Nov 2022, 00:18
Hallo Robert,
Stimmt, ich habe mal rechts in der Smilies-Box gesucht: In am Ende der 2. Reihe ist es! (der Tipp-Text ist "Cool") Und wenn man den in den Text einfügt kommt genau der Code "8 Klammer zu".
Die Vorlage ist da und jetzt muss "bloß" die Reihenfolge der Schleifen innerhalb eines Paares getauscht werden, also runter/hoch um je X, runter/hoch um je X/2, runter/hoch um je X/4 usw. statt vorher hoch/runter um je X, hoch/runter um je X/2 usw.
Habe ich Dich jetzt genug verwirrt?
Gruß aus dem Westerwald
Hans
Na klar, dass hatte ich auch so erwartet. Der Wert für X musste ich absolut willkürlich raten. Na ja, doch nicht so willkürlich. Ich hatte den Start- und Endwert gesehen und konnte damit den Gesamt-Bereich den der Servo zurücklegt "sehen" und damit wiederum den Weg für das Nachwippen schätzen. Alles voll virtuell ohne den Arduino, die Servos oder den BÜ gesehen zu haben.Robert schrieb:Geschwindigkeit und Winkelgrade habe ich variiert.
Offensichtlich gibt es Codes, die wir mit unseren kryptischen Texten aus Versehen ansprechen. Das die "8 Klammer zu" Smiley-Code ist ist im Nachhinein nicht sooo überraschend. Die Smileys entstanden als "Ascii-Grafik". Doppelpunkt Minus Klammer-zu war der klassische Smiley, also : - ) (nur ohne Leertaste dazwischen) während Semikolon Minus Klammer-zu der Zwinker-Smiley ist, also der hier ; - )(wieder ohne Leertaste dazwischen). Und 8 Klammer-zu ist offensichlich der "Cool"-Smiley.Robert schrieb:Wie kommen eigentlich die "Cool"-Smileys in den Forumstext ?
Stimmt, ich habe mal rechts in der Smilies-Box gesucht: In am Ende der 2. Reihe ist es! (der Tipp-Text ist "Cool") Und wenn man den in den Text einfügt kommt genau der Code "8 Klammer zu".
Das ist doch jetzt einfach, oder?Robert schrieb:Ebenso will ich das Nachschwingen auch noch beim Öffnungsvorgang "einbauen".
Die Vorlage ist da und jetzt muss "bloß" die Reihenfolge der Schleifen innerhalb eines Paares getauscht werden, also runter/hoch um je X, runter/hoch um je X/2, runter/hoch um je X/4 usw. statt vorher hoch/runter um je X, hoch/runter um je X/2 usw.
Habe ich Dich jetzt genug verwirrt?
Gruß aus dem Westerwald
Hans
MeierGerhard52 und Michael Sommer mögen diesen Beitrag
Seite 1 von 2 • 1, 2
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten