RE: Bewegte Figuren im Eigenbau - Bauanleitung

#76 von Matthias_h0 , 27.07.2021 11:37

Hallo Stefan

Die Magnete habe ich hier gekauft:
https://www.leds-and-more.de/catalog/mag...f2hu1cbbobqi0o2

Am Servo musste ich 2 Stück verwenden, da sich mit einem Magnet der Arm nicht hoch genug bewegt hat.

Bild entfernt (keine Rechte)

Viele Grüße,
Matthias


MobaLedLib Wiki


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


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#77 von lojo , 27.07.2021 14:47

Hallo Mathias,

wie schaffst du es, dass die zeitlich gestaffelt ihre Krüge erheben. Du hast doch nur Platz für einen Servo. Oder?

Wie alle deine bewegten Figuren super!


Freundliche Grüße
lojo


 
lojo
InterCity (IC)
Beiträge: 890
Registriert am: 27.08.2019
Gleise K-Gleis
Spurweite H0
Steuerung MS2
Stromart AC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#78 von stefan79 , 27.07.2021 14:49

Danke für die Info

Werde es auch mal versuchen mit Magnete.

Kann man ein Arduino Servo Decoder auch so programmieren das die Servos hin und her bewegen ?
Jedes serve Extra auf eine Adresse?

Gruß Stefan


DCC, Z21PG Atmega 2560, Z21PG Mini
Rocrail mit WIO Control


stefan79  
stefan79
RegionalExpress (RE)
Beiträge: 87
Registriert am: 21.03.2019
Ort: NRW
Gleise Fleischmann Modellgleis
Spurweite H0
Steuerung Z21PG Rocrail mit WIO Control
Stromart Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#79 von Matthias_h0 , 27.07.2021 15:37

Zitat von lojo im Beitrag #77
Hallo Mathias,

wie schaffst du es, dass die zeitlich gestaffelt ihre Krüge erheben. Du hast doch nur Platz für einen Servo. Oder?

Wie alle deine bewegten Figuren super!


Hallo lojo
Das ist eigentlich eher ungewollt. Der Servo sitzt etwas näher an der einen Figur dran als an der anderen, dadurch bewegt sich diese schon etwas früher, wenn das Magnetfeld noch schwächer ist.
Außerdem liegt das auch daran, wie leichtgängig das Gelenk in den Figuren ist und wie genau der Magnet angebracht wurde.
Es liegt also eher an mechanischen Ungenauigkeiten und war so gar nicht gewollt. Aber da es eigentlich ganz realistisch aussieht, habe ich es so gelassen.

Zitat von stefan79 im Beitrag #78
Danke für die Info

Werde es auch mal versuchen mit Magnete.

Kann man ein Arduino Servo Decoder auch so programmieren das die Servos hin und her bewegen ?
Jedes serve Extra auf eine Adresse?

Gruß Stefan


Hallo Stefan
Das dürfte eigentlich kein Problem sein. An einen Arduino Nano könntest du so bis zu 16 Servos anschließen.
Wenn du bei der Programmierung Hilfe benötigst, kann ich da gerne helfen.

Viele Grüße,
Matthias


MobaLedLib Wiki


lojo und stefan79 haben sich bedankt!
Matthias_h0  
Matthias_h0
InterRegioExpress (IRE)
Beiträge: 277
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#80 von stefan79 , 27.07.2021 16:30

Hallo Matthias,

Wenn du mir den Anfang machen könntest vom Programm wäre ich dir dankbar weil da hab ich noch meine Probleme.

Gruß Stefan


DCC, Z21PG Atmega 2560, Z21PG Mini
Rocrail mit WIO Control


Matthias_h0 hat sich bedankt!
stefan79  
stefan79
RegionalExpress (RE)
Beiträge: 87
Registriert am: 21.03.2019
Ort: NRW
Gleise Fleischmann Modellgleis
Spurweite H0
Steuerung Z21PG Rocrail mit WIO Control
Stromart Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#81 von Matthias_h0 , 27.07.2021 16:32

Hallo Stefan,

das ist kein Problem. Ich werde das gleich mal machen.

Viele Grüße
Matthias


MobaLedLib Wiki


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


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#82 von Matthias_h0 , 27.07.2021 18:13

Hallo Stefan

hier ist das 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
 

/*
Servodekoder für 16 Servos
-Steuerung über DCC
-seperate Einstellung dieser Parameter für jeden Servo
-DCC Adresse
-Pin
-Geschwindigkeit (für jede Position einzeln)
-Endlagen
-Interval => bei einem Interval von 2 Sekunden bewegt der Servo sich alle 2 Sekunden hin und her
*/
 

 

#include <MobaTools.h>
#include <NmraDcc.h>
#define Sek *1000
#define Sec Sek
#define sek Sek
#define sec Sek
#define Min *60000
 

 
//Einstellungen Servos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
uint16_t Dcc_Adressen [] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; //DCC Adresse
uint8_t Servo_Pins [] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1, A2, A3, A4}; //Anschluss Pin des Servos
int8_t Servo_Speed1 [] = {30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}; //Geschwindigkeit für die Bewegung zu Position 1
int8_t Servo_Speed2 [] = {30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}; //Geschwindigkeit für die Bewegung zu Position 2
uint16_t Servo_Pos1 [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; //Position 1
uint16_t Servo_Pos2 [] = {180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180}; //Position 2
uint32_t Interval [] = {2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek, 2 Sek}; //Bewegungsinterval
 
const byte isRoco = 0; //bei einer Zentrale von Roco (z.B. Z21) auf 4 setzen
 
MoToServo Servos[16];
NmraDcc Dcc;
 
uint8_t AnzahlServos = sizeof(Dcc_Adressen) / sizeof(Dcc_Adressen[0]);
uint32_t prevMillis [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
bool State[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
bool Servo_Pos [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 
//Verarbeitung der DCC Kommandos
void notifyDccAccTurnoutOutput( uint16_t Addr, uint8_t Direction, uint8_t OutputPower )
{
word wAddr = Addr + isRoco;
for (int i = 0; i < AnzahlServos; i++) {
if (Dcc_Adressen[i] == wAddr) {
State[i] = Direction;
}
}
}
 

void setup() {
Dcc.pin(0, 2, 1);
Dcc.init( MAN_ID_DIY, 10, CV29_ACCESSORY_DECODER | CV29_OUTPUT_ADDRESS_MODE, 0 );
for (int i = 0; i < AnzahlServos; i++) {
Servos[i].attach(Servo_Pins[i]);
Servos[i].write(Servo_Pos1[i]);
}
}
 
void loop() {
unsigned long currentmillis = millis();
Dcc.process();
for (int i = 0; i < AnzahlServos; i++) {
if (State[i] == HIGH) {
if (currentmillis - prevMillis [i] > Interval [i]) {
prevMillis[i] = currentmillis;
if (Servo_Pos[i] == 0) {
Servos[i].setSpeed(Servo_Speed2[i]);
Servos[i].write(Servo_Pos2[i]);
Servo_Pos[i] = 1;
}
else {
Servos[i].setSpeed(Servo_Speed1[i]);
Servos[i].write(Servo_Pos1[i]);
Servo_Pos[i] = 0;
}
}
}
}
}
 
 



Im Code habe ich oben eine Art Tabelle angelegt, in der du die verschiedenen Parameter der Servos verändern kannst.

Viele Grüße
Matthias


MobaLedLib Wiki


derOlli, stefan79 und RC und Piccolo haben sich bedankt!
Matthias_h0  
Matthias_h0
InterRegioExpress (IRE)
Beiträge: 277
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#83 von Fisch65 , 28.07.2021 00:17

MEGA

Das finde ich echt gut

MfG

Manfred


😊 Meine 45qm Anlage: 😊
Kohle, Koks, fahren mit Paternoster (54 Züge), der "fliegende Teppich auf 15 qm" ......... na endlich habe ich Platz.

Link:
viewtopic.php?f=64&t=118520


Matthias_h0 hat sich bedankt!
 
Fisch65
InterCity (IC)
Beiträge: 661
Registriert am: 02.06.2013
Ort: Süddeutschland
Gleise K-Gleise
Spurweite H0
Steuerung WDP mit 2x Uhlenbrock IB II (1 x Fahren und 1 x Magnetartikel), 6x Booster, LTD RM Dekodern; Rechner: Intel Core (TM) i5, CPU 4.10 GHz, 32 GB RAM, Windows 10 Pro
Stromart AC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#84 von Matthias_h0 , 28.07.2021 18:01

Hallo

Hier mal ein kleines Video meiner Schmiede:



Hier noch Fotos der Antriebe:

Bild entfernt (keine Rechte)

Bild entfernt (keine Rechte)

Viele Grüße
Matthias


MobaLedLib Wiki


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


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#85 von raily74 , 28.07.2021 19:40

Matthias, das ist unglaublich!

Ich habe den Thread eben erst per Zufall entdeckt und bin sprachlos. Jetzt weiß ich endlich, was ich mit meinen 50 Servos mache.
Das Ganze ließe sich natürlich auch mit dem Mini-Stepper realisieren, wenn es leiser sein soll.

Die Idee mit dem Magneten ist genial. Du hättest dir dafür ein Patent sichern sollen.

Danke für's Zeigen!


Viele Grüße, Michael

Das 3-Generationen-Projekt | H0-Epoche V Anlage im Bau
YouTube MLL | Erwecke deine Modellbahn zum Leben
MobaLedLib Wiki | Alle Lösungen zentral an einem Ort


Matthias_h0 hat sich bedankt!
 
raily74
EuroCity (EC)
Beiträge: 1.473
Registriert am: 05.12.2006
Ort: Kassel (LK)
Gleise Roco Line
Spurweite H0
Steuerung Z21, iTrain, MobaLedLib
Stromart DC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#86 von Matthias_h0 , 29.07.2021 10:16

Hallo Michael

Freut mich, dass es dir gefällt. Du wirst sehen, dass die Figuren deutlich einfacher umzubauen sind als man denkt. Die Idee mit den Ministeppern ist sehr gut, das muss ich auch mal ausprobieren. Alternativ will ich auch mal Elektromagnete wie diesen hier testen.

Zitat von raily74 im Beitrag #85

Du hättest dir dafür ein Patent sichern sollen.


Das wird wohl nichts. Die Verwendung von Magneten ist ja eigentlich nichts Neues. Ich habe das vorher auch schon an anderen Stellen so gesehen. In der Elbphilharmonie im Miniatur Wunderland werden die Figuren beispielsweise auch mit Magneten angetrieben.
Hier findet man dazu mehr:
https://www.miniatur-wunderland.de/wunde...lbphilharmonie/
Das finde ich einfach genial gelöst. Im Vergleich dazu sind meine Figuren aber doch recht simpel aufgebaut.

Viele Grüße,
Matthias


MobaLedLib Wiki


Misha hat sich bedankt!
Matthias_h0  
Matthias_h0
InterRegioExpress (IRE)
Beiträge: 277
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital

zuletzt bearbeitet 29.07.2021 | Top

RE: Bewegte Figuren im Eigenbau - Bauanleitung

#87 von Misha , 29.07.2021 19:35

Hallo Matthias,

Wie wunderbar, was du gemacht hast. Und schön zu sehen, wie du es geschafft hast. Du inspirierst mich, so etwas zu bauen.

Vielen Dank, dass Sie Ihr Wissen geteilt haben.


Grüße Misha.


Matthias_h0 hat sich bedankt!
Misha  
Misha
RegionalExpress (RE)
Beiträge: 58
Registriert am: 22.12.2019
Spurweite H0
Stromart AC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#88 von Ralf Franke , 02.08.2021 20:28

Hallo Matthias,
da hast Du mit deinen gerade mal 13 Jahren ganz schön einen vorgemacht mit Deinen bewegten Figuren, dass ist wirklich ganz großes Kino
Aber die "laufenden" Figuren von Steffan finde ich ein Interessantes Projekt.

MfG
Ralf


Teppichbahner
Drei Dinge braucht der Modellbahner: Platz, Zeit und Geld


Matthias_h0 und stefan79 haben sich bedankt!
 
Ralf Franke
CityNightLine (CNL)
Beiträge: 1.676
Registriert am: 19.02.2011
Ort: Braunschweig
Gleise Märklin K-Gleis, Tillig Elite als Teststrecke mit Pukos
Spurweite H0
Stromart AC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#89 von lojo , 17.08.2021 10:12

Hallo Matthias,

ich beschäftige mich gerade mit deiner genialen Methode Figuren beweglich zu machen. Deine Ideen konnte ich, was die Figuren angeht, gut umsetzen.
Dein Sketch für den Arduino macht mir allerdings Kopfzerbrechen. Ich steuere den Servo mit dem Arduino nicht digital, also per DCC, sondern mit einem einfachen Taster und einer Stromversorgung mit 9V=.
Dadurch sollte der Sketch einfacher werden. Ich bin aber nicht versiert genug, die überflüssigen Teile zu entfernen und durch die nötigen Tasterbefehle zu ersetzen.
Für einen Tipp wäre ich dankbar.


Freundliche Grüße
lojo


Matthias_h0 hat sich bedankt!
 
lojo
InterCity (IC)
Beiträge: 890
Registriert am: 27.08.2019
Gleise K-Gleis
Spurweite H0
Steuerung MS2
Stromart AC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#90 von Matthias_h0 , 17.08.2021 12:04

Hallo lojo

Ich würde dir empfehlen, mal im Thread von Franz-Peter zu den MobaTools zu schauen. In den Beispielen der MobaTools gibt es auch ein Beispiel für Servos mit Tastern. Eventuell kannst du dieses Beispiel entsprechend anpassen.

Momentan habe ich leider keine Gelegenheit dazu, ich könnte aber nächste Woche den Sketch mal so anpassen, dass auch Taster zur Ansteuerung der Servos genutzt werden können.

Du kannst dir auch mal die MobaLedLib von @Hardi ansehen. Damit kannst du neben der Beleuchtung auch Servos, Motoren und Steppermotoren steuern und kannst alles bequem über ein Excel Programm konfigurieren. Dazu sind keine Programmierkenntnisse nötig.

Wenn du schon Figuren beweglich gemacht hast, kannst du hier gerne mal ein Video oder Fotos zeigen.

Viele Grüße,
Matthias


MobaLedLib Wiki


Hardi und 4fangnix haben sich bedankt!
Matthias_h0  
Matthias_h0
InterRegioExpress (IRE)
Beiträge: 277
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital

zuletzt bearbeitet 17.08.2021 | Top

RE: Bewegte Figuren im Eigenbau - Bauanleitung

#91 von lojo , 17.08.2021 12:46

Hallo Matthias,

danke für deine schnelle Antwort.
Mit den Anregungen von Franz-Peter habe ich schon meine Lokschuppentore beweglich gemacht, drehe meinen Wasserkran und bewege den Flügel des Formsignals. Dabei verwende ich jeweils zwei Taster für die Vor- und Rückbewegungen.
Mein Ziel bei den Figuren wäre ein mehrfaches Winken, das durch einen einmaligen Tasterdruck ausgelöst wird, und nach 2-3 maligem Arm-heben und senken wieder aufhört.
Ich werde deine Tipps weiter verfolgen und sehen, ob ich zu einer Lösung auf der Servo-Seite komme. Magnete muss ich aber auch noch bestellen.
Danke für dein Angebot mich bei der Sketcherstellung zu unterstützen.


Freundliche Grüße
lojo


 
lojo
InterCity (IC)
Beiträge: 890
Registriert am: 27.08.2019
Gleise K-Gleis
Spurweite H0
Steuerung MS2
Stromart AC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#92 von Matthias_h0 , 17.08.2021 13:04

Hallo lojo

Das könnte z.B. so aussehen (ist jetzt halt sehr vereinfacht)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 

if(!digitalRead(TasterPin)){
myservo.write(0);
delay(2000);
myservo.write(180);
delay(2000);
myservo.write(0);
delay(2000);
myservo.write(180);
delay(2000);
myservo.write(0);
delay(2000);
myservo.write(180);
delay(2000);
}
 
 



Ohne delays wäre es natürlich besser, da dann mehrere Servos sich unabhängig voneinander bewegen könnten. Ich habe mir dafür mal eine kleine Arduino-Bibliothek geschrieben. In dieser gibt es eine Pushbutton-Funktion, die genau das macht. Diese kleine Bibliothek kann ich auch gerne hier veröffentlichen, aber ich habe den Laptop mit meinen Arduino-Sketchen gerade nicht hier. Nächste Woche könnte ich das dann machen. Mit dieser Bibliothek geht genau das, was du machen willst.
Man muss der Bibliothek nur den Pin, an dem der Taster angeschlossen ist, mitteilen und die Bibliothek gibt die Zeit seit dem letzten Tasterdruck zurück.

Ansonsten kannst du es schon mal so wie oben gezeigt ausprobieren.

Viele Grüße,
Matthias


MobaLedLib Wiki


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


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#93 von lojo , 17.08.2021 15:58

Hallo Matthias,

ich hab´s geschafft: der Servo winkt!
Ich hatte so einen ähnlichen Sketch wie der, den du vorgeschlagen hast. Deiner war also die Bestätigung, dass ich auf dem richtigen Weg bin. Allerdings war die Winkerei zunächst merkwürdig ungleichmäßig und unberechenbar, bis ich aufgrund deiner Delays darauf gekommen bin, dass ich meine wohl zu knapp eingestellt hatte, und die Bewegungen deswegen nicht zu Ende gefahren wurden.
So, nun bin ich vorerst zufrieden aber trotzdem interessiert an deiner Bibliothek.
Ich freue mich, wenn du sie in der nächsten Zeit hier einstellst.
Einstweilen: Herzlichen Dank für deine Hilfe!


Freundliche Grüße
lojo


 
lojo
InterCity (IC)
Beiträge: 890
Registriert am: 27.08.2019
Gleise K-Gleis
Spurweite H0
Steuerung MS2
Stromart AC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#94 von e69-fan ( gelöscht ) , 17.08.2021 16:52

Halo lojo,

würdest Du bitte den sketch mal hier veröffentlichen.

Danke - Wolfgang


e69-fan

RE: Bewegte Figuren im Eigenbau - Bauanleitung

#95 von lojo , 17.08.2021 17:16

Hallo Wolfgang,

gerne. Allerdings fürchte ich, dass der Sketch nicht den Regeln der Arduino-Gemeinde genügt. Aber er funktioniert bei mir.
Für Kritik bin ich immer offen.

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
 

#include <MobaTools.h>
 

// 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 servoPin = 9; // Anschluß für den Servo
 

int tasterStatus1;
MoToServo meinServo;
 
void setup() {
pinMode(tasterPin1, INPUT_PULLUP);


meinServo.attach(servoPin); //Servo an Pin 9
meinServo.setSpeed( 0 ); // Verfahrgeschwindigkeit einstellen
}
 
void loop() {
tasterStatus1 = digitalRead(tasterPin1);

 
if (tasterStatus1 == LOW && meinServo.moving() == 0 ) {
meinServo.write(0);
delay(500);
meinServo.write(180);
delay(1000);
meinServo.write(0);
delay(500);
meinServo.write(180);
delay(1000);
meinServo.write(0);
delay(500);
meinServo.write(180);
delay(1000);
}

 
delay(20);
 
}
 
 


Freundliche Grüße
lojo


Matthias_h0 hat sich bedankt!
 
lojo
InterCity (IC)
Beiträge: 890
Registriert am: 27.08.2019
Gleise K-Gleis
Spurweite H0
Steuerung MS2
Stromart AC, Digital

zuletzt bearbeitet 17.08.2021 | Top

RE: Bewegte Figuren im Eigenbau - Bauanleitung

#96 von Matthias_h0 , 17.08.2021 17:39

Hallo lojo

Dein Sketch sieht schon mal gut aus.


Hier noch ein paar Tipps:

Die Pins für Taster und Servo hast du als Integer-Variable abgelegt. Diese Variablen würde ich durch #define ersetzen. Dann wird durch die Variablen kein Speicherplatz benötigt. Das spielt bei so kleinen Programmen zwar keine Rolle, aber man sollte es sich dennoch für größere Programme so angewöhnen, weil dann schnell der Speicher knapp wird.
Hier findest du mehr Infos dazu: https://www.arduino.cc/reference/de/lang...-syntax/define/

Für den Tasterstatus könnte man auch eine Boolean Variable statt einem Integer verwenden. (Spart auch Speicher)
Aber wie gesagt: Das ist bei diesem Programm eigentlich egal und macht keinen Unterschied.

Ein weiterer Punkt ist die Verwendung von delays. Ein delay blockiert das Programm. Das heißt, dass du mit diesem Programm pro Arduino nur ein Servo ansteuern kannst. Das ist aber eigentlich eine Verschwendung, da noch genügend Pins vorhanden sind.
Mit meiner kleinen Bibliothek wird dieses Problem aber gelöst. Dort kannst du dann beliebig viele (nur begrenzt durch die Pins) Servos gleichzeitig betreiben. Auf meiner Anlage werden von einem Arduino Mega so etwa 10 Knopfdruckaktionen gesteuert und es wären auch noch mehr möglich.
Ich werde diese Bibliothek nächste Woche hier veröffentlichen. Es ist aber auch nicht besonders kompliziert und die Bibliothek besteht nur aus wenigen Zeilen Code. Es lohnt sich eigentlich nicht, das in eine eigene Bibliothek zu packen. Ich habe das nur gemacht, damit ich die Funktionen in verschiedenen Programmen nutzen kann.
Ich schließe bei mir immer noch eine Led an, die dann blinkt, während die Knopfdruckaktion läuft. Deswegen ist das auch so in der Bibliothek drin, aber das könnte man auch weglassen.

Ich hoffe, dass dir meine Anmerkungen weiterhelfen.

Viele Grüße,
Matthias


MobaLedLib Wiki


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

zuletzt bearbeitet 17.08.2021 | Top

RE: Bewegte Figuren im Eigenbau - Bauanleitung

#97 von lojo , 17.08.2021 18:04

Danke Matthias für deine Rückmeldung und deine Tipps.
Ich bin gespannt auf deine Lösung nächste Woche.


Freundliche Grüße
lojo


 
lojo
InterCity (IC)
Beiträge: 890
Registriert am: 27.08.2019
Gleise K-Gleis
Spurweite H0
Steuerung MS2
Stromart AC, Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#98 von Matthias_h0 , 21.08.2021 18:00

Hallo

Ich möchte euch jetzt wie angekündigt meine kleine Arduino-Bibliothek zum Steuern von Knopfdruckaktionen (z.B. bewegte Figuren) vorstellen.

Zunächst einmal möchte ich euch zeigen, wie die Bibliothek funktioniert:
Die Bibliothek arbeitet im Prinzip wie eine Stoppuhr. Man gibt im Sketch den Pin an, an dem der Taster zum Starten der Aktion angeschlossen ist. Sobald dieser Taster ausgelöst wird, läuft die Stoppuhr los und zählt die Zeit hoch, bis die Dauer der Knopfdruckaktion (die ebenfalls angegeben werden muss) abgelaufen ist. Während die Aktion läuft, blinkt eine Led. Konkret sieht das dann so aus:

1
 
ButtonTime = myButton.update(Taster_Pin, Led_Pin, 20 Sek);   //Diese Funktion ruft die Zeit seit dem Tastendruck ab und speichert diese in der Variable "ButtonTime"
 



Bestimmte Aktionen (z.B. Servo bewegen) können dann so ausgelöst werden:

1
2
3
4
5
6
7
8
 

if(ButtonTime == 2 Sek){
myServo.write(0);
}
if(ButtonTime == 5 Sek){
myServo.write(180);
}
 
 



Hier mal ein kleines Beispiel 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
 

/*
Mit diesem Beispiel kann eine Knopfdruckaktion für die Modelleisenbahn erstellt werden.
Bei diesem Beispiel wird die Zeit seit dem Knopfdruck auf dem seriellen Monitor ausgegeben.
*/
#include <Pushbutton_Lib.h>
 
Pushbutton myButton;
 
unsigned long ButtonTime;
 
#define Taster_Pin 2
#define Led_Pin 3
 
void setup() {
Serial.begin(9600);
}
 
void loop() {
// Pin für den Taster
// | Pin für die Led
// | | Dauer der Knopfdruckaktion
// | | |
ButtonTime = myButton.update(Taster_Pin, Led_Pin, 20 Sek); //Diese Funktion ruft die Zeit seit dem Tastendruck ab und speichert diese in der Variable "ButtonTime"
Serial.println(ButtonTime);
if(ButtonTime == 2 Sek){
//Wird 2 Sekunden nachdem die Knopfdruckaktion ausgelöst wurde aufgerufen
//Hier kann eine beliebige Aktion z.B. zum Bewegen eines Servos eingetragen werden
}
if(ButtonTime == 5 Sek){
//Wird 5 Sekunden nachdem die Knopfdruckaktion ausgelöst wurde aufgerufen
}
}
 
 



Es können dabei beliebig viele Knopfdruckaktionen gleichzeitig angelegt werden. In der Bibliothek sind zwei Beispiel Programme enthalten, dadurch sollte die Funktionsweise eigentlich ganz gut erklärt werden. Ansonsten könnt ihr natürlich auch gerne nochmal nachfragen.

Im Anhang findet ihr eine Zip-Datei mit der Bibliothek. Zur Installation einfach die Zip-Datei entpacken und den enthaltenen Ordner ins Library-Verzeichnis der Arduino IDE kopieren/verschieben.

Ich würde mich freuen, wenn ihr die Bibliothek mal ausprobiert. Wie schon gesagt: Besonders viel kann die Bibliothek jetzt nicht, aber das Programmieren wird dadurch etwas erleichtert.

Viele Grüße
Matthias


MobaLedLib Wiki

Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen

Hardi, raily74, gerald bock, stefan79, Moba_Nicki, MobaPro59 und B-B haben sich bedankt!
Matthias_h0  
Matthias_h0
InterRegioExpress (IRE)
Beiträge: 277
Registriert am: 29.11.2020
Gleise Märklin C-Gleis
Spurweite H0
Steuerung MS2, MobaLedLib
Stromart Digital


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#99 von Jonas_h0 , 09.01.2022 10:00

Hallo zusammen

erstmal Glückwunsch zu dem was ihr da umgesetzt habt, Stefan und Matthias. Sieht wirklich super aus

Noch eine kurze Frage an Stefan: Wie hast du denn die Enden von dem Zahnriemen verbunden? Bin bisher immer ein bisschen vor der Verwendung von Zahnriemen zurückgeschreckt, weil ich dachte das hält nicht auf Dauer.

Gruß, Jonas


Matthias_h0 und stefan79 haben sich bedankt!
Jonas_h0  
Jonas_h0
Beiträge: 1
Registriert am: 04.01.2022
Spurweite H0


RE: Bewegte Figuren im Eigenbau - Bauanleitung

#100 von stefan79 , 10.01.2022 14:03

Hallo Jonas,

Hab den einfach bisschen abgeschliffen und dann mit Sekunden Kleber geklebt hält bis jetzt super.

Vielleicht kommt noch bald der Faller 120105
Bahnsteig Friedrichstadt er ist schon bestellt mal gucken ob ich da was einbauen kann auf 90cm Länge der hat auch eine schöne Breite

Gruss Stefan


DCC, Z21PG Atmega 2560, Z21PG Mini
Rocrail mit WIO Control


Jonas_h0 hat sich bedankt!
stefan79  
stefan79
RegionalExpress (RE)
Beiträge: 87
Registriert am: 21.03.2019
Ort: NRW
Gleise Fleischmann Modellgleis
Spurweite H0
Steuerung Z21PG Rocrail mit WIO Control
Stromart Digital


   

AMW Hübsch Amperemeter Adapterplatine - wie richtig anschließen?
Unterschied zwischen Lichttrafo und Stellpult

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz