RE: Arduino MobaTools: V2.6.0 freigegeben

#676 von Kali , 12.04.2024 21:14

Ich glaube es liegt an meinem Testaufbau und den Schritten. Diese habe ich geändert, aber die Doppeltastfunktion reagiert zuschnell, deswegen kommt das normale Fahren nicht zustande, kann ich diese Reagtionszeit ändern? Oder die Doppelfunktion ganz raus nehmen?


Schöne Grüße
Stefan

Tillig Elite Gleis
Digitalsystem ECoS 50200, Switchpilot Servo
Datenformat: DCC mit ABC-Bremsstrecken
Decoder: ESU Lokpilot und Loksound 4,5
ESU-Programmer


Meine Kreation in Spur Z: Ommi 51 - Muldenkippwagen


 
Kali
InterRegio (IR)
Beiträge: 192
Registriert am: 14.01.2011
Ort: Jena
Gleise Tillig Standart / Elite
Spurweite H0, Z
Steuerung Ecos 2
Stromart DC, Digital


RE: Arduino MobaTools: V2.6.0 freigegeben

#677 von MicroBahner , 13.04.2024 10:18

Zitat von Kali im Beitrag #675
Nun habe ich, durch die 200, wohl überlesen, dass mein Motor nur 20 Schritte pro Umdrehung macht

Das ist aber schon recht ungewöhnlich. Hast Du einen Link zu den Daten von deinem Motor?

Zitat von Kali im Beitrag #676
Ich glaube es liegt an meinem Testaufbau und den Schritten. Diese habe ich geändert, aber die Doppeltastfunktion reagiert zuschnell,

Das verstehe ich nicht. Was meinst Du mit 'reagiert zu schnell' ? Wenn Du nur einmal drückst, sollte sie gar nicht reagieren.
Zeig doch mal deinen Aufbau und deinen derzeitigen Testsketch.


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


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino MobaTools: V2.6.0 freigegeben

#678 von Kali , 13.04.2024 13:45

Hallo,
Der sketch ist der von Mobatools, werde nachher noch meinen einsetzen.
Motor ist dieser

https://www.faulhaber.com/de/produkte/serie/am1020/#lower


Schöne Grüße
Stefan

Tillig Elite Gleis
Digitalsystem ECoS 50200, Switchpilot Servo
Datenformat: DCC mit ABC-Bremsstrecken
Decoder: ESU Lokpilot und Loksound 4,5
ESU-Programmer


Meine Kreation in Spur Z: Ommi 51 - Muldenkippwagen


 
Kali
InterRegio (IR)
Beiträge: 192
Registriert am: 14.01.2011
Ort: Jena
Gleise Tillig Standart / Elite
Spurweite H0, Z
Steuerung Ecos 2
Stromart DC, Digital

zuletzt bearbeitet 13.04.2024 | Top

RE: Arduino MobaTools: V2.6.0 freigegeben

#679 von Kali , 16.04.2024 12:02

habe nun herausgefunden, dass man wenn der Motor auf Position gefahren ist, 5 sec warten muss für den nächsten Befehl. Dass hatte ich wohl überlesen, habe da jetzt mal 1 sec daraus gemacht und nun läuft es auch erstmal. (Fehler lag also bei mir)
Habe die Positionen mit der Schrittanzahl zwar so eingestellt wie ich sie brauche, aber komme beim Umrechnen nicht dahin.
Jetzt habe ich nur noch das Problem, dass der Motor beim beschleunigen etwas fiept und ruckelt, beim fahren mit mehr Geschwindigkeit geht es dann. Bringt es etwas wenn ich da mehr Microsteps einstelle oder die Beschleunigung reduziere?
Den Treiber habe ich auf 0,0875V eingestellt. Netzteil hat 12V und 3A.


Schöne Grüße
Stefan

Tillig Elite Gleis
Digitalsystem ECoS 50200, Switchpilot Servo
Datenformat: DCC mit ABC-Bremsstrecken
Decoder: ESU Lokpilot und Loksound 4,5
ESU-Programmer


Meine Kreation in Spur Z: Ommi 51 - Muldenkippwagen


 
Kali
InterRegio (IR)
Beiträge: 192
Registriert am: 14.01.2011
Ort: Jena
Gleise Tillig Standart / Elite
Spurweite H0, Z
Steuerung Ecos 2
Stromart DC, Digital


RE: Arduino MobaTools: V2.6.0 freigegeben

#680 von MicroBahner , 16.04.2024 15:05

Zitat von Kali im Beitrag #679
habe nun herausgefunden, dass man wenn der Motor auf Position gefahren ist, 5 sec warten muss für den nächsten Befehl. Dass hatte ich wohl überlesen,

Mmh ... Wo steht das denn? Wäre vielleicht doch gut, wenn Du mal deinen aktuellen Sketch einstellen würdest...

Zitat von Kali im Beitrag #679
Jetzt habe ich nur noch das Problem, dass der Motor beim beschleunigen etwas fiept und ruckelt, beim fahren mit mehr Geschwindigkeit geht es dann. Bringt es etwas wenn ich da mehr Microsteps einstelle oder die Beschleunigung reduziere?

Könnte daran liegen, dass der Motor doch eine recht große Schrittweite ( 18° ) hat. So einen hatte ich noch nicht in den Fingern. Dass Stepper normalerweise nicht unbedingt leise sind ist normal. Ruckeln sollten sie allerdings nicht. Mehr Mikroschritte könntest Du versuchen.


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


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduino MobaTools: V2.6.0 freigegeben

#681 von Kali , 16.04.2024 19:41

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
 
/* 
 
#define MAX8BUTTONS // spart Speicher, da nur 4 Taster benötigt werden
#include <MobaTools.h>
 
const int STEPS_UMDREHUNG = 80;
//Stepper einrichten ( 80 Schritte / Umdrehung - 1/4 Microstep )
MoToStepper myStepper( STEPS_UMDREHUNG, STEPDIR );
const byte dirPin = 5;
const byte stepPin = 6;
const byte enaPin = 7;
 
// Taster einrichten ( die Taster müssen gegen Gnd schalten, keine Widerstände notwendig )
enum { Taster1, Taster2, Taster3, Taster4 } ; // Den Tasternamen die Indizes 0...3 zuordnen
const byte tasterPins[] = {A1, A2, A3, A4 }; // muss als byte definiert sein, damit ein enfaches sizeof funktioniert
const byte tasterZahl = sizeof(tasterPins);
const long tasterPos[] = { 360, 1890, 3530, 360 }; //{ 160, 320, 640, 760 };
MoToButtons taster( tasterPins, tasterZahl, 20, 100 ); //500
 
// Referenzschalter
const byte refPin = A5; // Input für Referenzpunktschalter
const byte atRefpoint = HIGH; // Einganspegel, wenn Refpunkt erreicht
 
MoToTimebase speedIntervall; // Zeitinterval zum Auslesen des Speedpotentiometers
 
const byte potiPin = A0; //Poti fuer Geschwindigkeit
int vspeed = 0; //Steppergeschwindigkeit in U/min*10
int oldSpeed = 0; // Zur Erkennung von Geschwindigkeitsänderungen
 
void toRefPoint() {
// Stepper zum Referenzpunkt bewegen, und Position auf 0 setzen
Serial.println("Referenzpunkt anfahren");
// Im Schnellgang Richtung Refpunkt fahren ...
if ( digitalRead( refPin ) != atRefpoint ) {
// ... nur wenn der Stepper nicht schon dort steht
myStepper.setSpeedSteps( 20000, 100 );
myStepper.rotate(-1);
while ( digitalRead( refPin ) != atRefpoint );
}
digitalWrite( LED_BUILTIN, digitalRead( refPin ) );
// Refschalter erreicht, anhalten
myStepper.rotate(0);
while ( myStepper.moving() ); // Bremsrampe abwarten;

// Langsam und ohne Rampe zurück zum Schaltpunkt des Refpunktes fahren
myStepper.setSpeedSteps( 1000 );
myStepper.setRampLen(0);
myStepper.rotate( -1 );
while ( digitalRead( refPin ) == atRefpoint );

digitalWrite( LED_BUILTIN, digitalRead( refPin ) );
Serial.println("Referenzpunkt erreicht");
myStepper.rotate(0);
while (myStepper.moving() );
myStepper.setZero();
myStepper.setSpeed( 200 );
myStepper.setRampLen( 100 ); // Rampenlänge 100 Steps bei 20U/min
oldSpeed = 0; // Damit Speedwert vom Poti wieder übernommen wird
Serial.println("Ende Reffahrt");
}
 
void setup()
{ Serial.begin(115200); while (!Serial);
myStepper.attach( stepPin, dirPin );
myStepper.attachEnable( enaPin, 10, LOW ); // Enable Pin aktivieren ( LOW=aktiv )
myStepper.setSpeed( 200 );
vspeed = 200;
myStepper.setRampLen( 100 ); // Rampenlänge 100 Steps bei 20U/min
speedIntervall.setBasetime( 100 ); // 100ms Tickerzeit
pinMode(LED_BUILTIN, OUTPUT);
pinMode(refPin, INPUT_PULLUP );
toRefPoint();
}
 
void loop() {
taster.processButtons(); // Taster einlesen und bearbeiten
 
digitalWrite( LED_BUILTIN, digitalRead( refPin ) );
 
// Speed alle 100ms neu einlesen und setzen
if ( speedIntervall.tick() ) {
// wird alle 100ms aufgerufen ( Tickerzeit = 100ms im setup() )
vspeed = map((analogRead(potiPin)), 0, 1023, 20, 2600); //Poti mappen auf 2 ... 180 Umdr/Min
//min speed =2 and max speed =180 rpm
if ( abs( oldSpeed - vspeed ) > 5 ) {
myStepper.setSpeed( vspeed );
oldSpeed = vspeed;
}
}
 
// Referenzfahrt auslösen
if ( taster.longPress( Taster4 ) ) toRefPoint();
 
//
for ( byte tastIx = 0; tastIx < tasterZahl; tastIx++ ) {
// die 4 Taster auf Click/Doppelclick abfragen
byte clickTyp = taster.clicked(tastIx);
if ( clickTyp == SINGLECLICK ) {
//Taste wurde einfach gedrückt
Serial.print("Fahre zu Pos "); Serial.println( tasterPos[tastIx] );
myStepper.writeSteps(tasterPos[tastIx]);
} else if ( clickTyp == DOUBLECLICK ) {
// ein Doppelclick wurde erkannt
switch ( tastIx ) {
case Taster1:
myStepper.rotate(1);
break;
case Taster2:
myStepper.rotate(-1);
break;
case Taster3:
myStepper.rotate(0);
break;
default:
;
}
}
}
}
 
 


Schöne Grüße
Stefan

Tillig Elite Gleis
Digitalsystem ECoS 50200, Switchpilot Servo
Datenformat: DCC mit ABC-Bremsstrecken
Decoder: ESU Lokpilot und Loksound 4,5
ESU-Programmer


Meine Kreation in Spur Z: Ommi 51 - Muldenkippwagen


 
Kali
InterRegio (IR)
Beiträge: 192
Registriert am: 14.01.2011
Ort: Jena
Gleise Tillig Standart / Elite
Spurweite H0, Z
Steuerung Ecos 2
Stromart DC, Digital


   

Innenbeleuchtung für Fleischmann 742080 BR 642
Alte Märklin Transformator ersetzen

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