RE: Arduino MobaTools: V2.3.1 released

#276 von MicroBahner , 29.11.2017 11:29

Hallo Marcus,
super dass es jetzt funktioniert. Wie Bodo schon sagte, ist der Typ des Optokoppler wichtig. Die 'normalen' sind einfach zu langsam für das DCC Signal.
Viel Spaß und Erfolg beim weiterbasteln.
Und Du darfst auch von Erfolgen berichten


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.3.1 released

#277 von juergiboy , 13.02.2018 16:35

Hallo Franz-Peter,

ich bin ja bereits begeisterter Nutzer deines Zubehördecoders, nun bin ich über diesen viewtopic.php?p=1448735#p1448735 Thread gestolpert, in dem Bahnschranken mit DCC und Steppern gesteuert werden.

Großes Kompliment, das ist genau das, was ich aktuell brauche

Ich habe das jetzt auch mal zum Anlass genommen mich intensiver mit der NMRA Library und den Mobatools zu befassen. So eine Code Inspection kann schon sehr lehrreich sein. Auch waren ja einige Dinge wegen Inkompatibilität anzupassen.

Mir stellen sich jetzt aber aktuell ein paar Fragen, die eher in die Richtung der Schrittmotorsteuerung gehen, daher habe ich diesen Thread dafür gewählt:

    Bei meinen Test fiel mir auf, dass der Schrittmotor (nach erster Nutzung) quasi immer Strom an der einen oder anderen Spule bekommt - obwohl er nicht in Bewegung ist. Dadurch wird er ziemlich warm, und der Stromverbrauch muss ja auch nicht unbedingt sein. Daher meine Frage, ob ich die Ausgänge auch bei Nichtnutzung irgendwie 'abschalten' kann (derzeit habe ich ihn noch nicht über SPI angeschlossen, aber das ist ja wohl egal)? Vielleicht mit der stop()-Methode?

    Weiter stellt sich mir eine Frage wegen des Referenzpunktes... mit setZero() kann ich den ja setzen. Aber was kommt bei z.B. read() zurück, wenn der noch nie gesetzt wurde? Das kann nämlich bei der Schrankensteuerung passieren, wenn direkt nach dem Einschalten eine Justage laufen soll.


Viele Fragen, aber nur weil ich so interessiert bin


Gruß
Jürgen


juergiboy  
juergiboy
Regionalbahn (RB)
Beiträge: 44
Registriert am: 08.02.2016


RE: Arduino MobaTools: V2.3.1 released

#278 von MicroBahner , 13.02.2018 21:35

Hallo Jürgen,
der verlinkte Sketch ist zwar schon etwas älter, aber prinzipiell funktioniert das natürlich noch

Zitat

Ich habe das jetzt auch mal zum Anlass genommen mich intensiver mit der NMRA Library und den Mobatools zu befassen. So eine Code Inspection kann schon sehr lehrreich sein. Auch waren ja einige Dinge wegen Inkompatibilität anzupassen.

Welche Anpassungen meinst Du? Im Sketch muss in der Tat etwas angepasst werden, da die NMRA-Lib inkompatibel geändert wurde. An den Lib's muss aber eigentlich nichts mehr geändert werden. Die im Thread angesprochenen Anpassungen für die DCC-Lib wegen der Wechselblinker sind inzwischen obsolet. Zum einen sind diese Anpassungen in die Original DCC-Lib eingeflossen, zum anderen funktioniert das weiche Auf-Abblenden der Leds ja mit den aktuellen MobaTools an allen Ausgängen, so dass man nicht mehr auf PWM-fähige Ausgänge angewiesen ist.
Unabhängig davon ist eine 'Code Inspection' ja nie eine schlechte Idee

Zitat

Bei meinen Test fiel mir auf, dass der Schrittmotor (nach erster Nutzung) quasi immer Strom an der einen oder anderen Spule bekommt - obwohl er nicht in Bewegung ist.

Ja, das ist ein prinzipielles Problem beim Einsatz eines Schrittmotors. Grundsätzlich könnte man die Motorspannung abschalten, wenn der Motor stillsteht. Die genaue Schrittposition ist dann aber nicht mehr unbedingt gewährleistet. Besser wäre eine Stromreduzierung, wie das aufwändigere Schrittmotortreiber machen. Die stop() Methode ist dazu nicht geeignet, sie stoppt nur die Bewegung.

Zitat

Weiter stellt sich mir eine Frage wegen des Referenzpunktes... mit setZero() kann ich den ja setzen. Aber was kommt bei z.B. read() zurück, wenn der noch nie gesetzt wurde? Das kann nämlich bei der Schrankensteuerung passieren, wenn direkt nach dem Einschalten eine Justage laufen soll.

Im Prinzip ist der Referenzpunkt immer gesetzt. Solange noch nie setZero() aufgerufen wurde, steht er auf der Position die der Schrittmotor bei der Instanziierung des Objektes hatte - üblicherweise also beim Starten des Sketches.


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.3.1 released

#279 von egebahn ( gelöscht ) , 25.02.2018 17:17

Hallo Franz-Peter,

ich bin gerade dabei, den Zubehördecoder mit einem Arduino Nano nachzubauen. Das Ziel ist "nur" das Ansteuern von Lichtsignalen. Das Zielsystem soll ein Arduino Mini sein. Davon sollen dann auf der aus Segmenten bestehenden TT Anlage mehrere verbaut werden.
Leider funktioniert es noch nicht wie erwartet.
Ich habe die Schaltung wie im Manual auf der letzten Seite beschrieben aufgebaut, habe aber den Teil für die PINs A6 und A7 weggelassen, da ich nicht plane, eine Programmierung per POM vorzunehmen.
Konfiguration:
const byte ackPin = NC; // DEFAULT 4
#define FIXMODE INIMODE

Ich habe das DEBUG angeschaltet und sehe irgendwie gar nichts.

Vom Optokoppler kommt aber was an D2 an, zumindest zeigt das Oszilloskope ein Wackeln an.

Wie beginne ich am besten mit dem Aufbau?

Was mir noch aufgefallen ist. Es ist mir nicht gelungen, ein Sketch mit der IDE als Nano in den Nano zu laden. Nach dem Tip in einem Forum habe ich Uno in der IDE eingestellt, dann funktionierte der Download. Testprogramme (z.B. Blinken einen LED) funktionierten dann auch.
Sollte ich mir doch einen Uno besorgen, um einen Testaufbau hinzubekommen?

Vielen Dank.
--
Gerald


egebahn

RE: Arduino MobaTools: V2.3.1 released

#280 von MicroBahner , 25.02.2018 21:56

Hallo Gerald,
welche Version von MobaTools und vor allem von der nmraDCC Lib hast Du installiert?

Und welche Konfig-Datei benutzt Du? Den Port resModeP solltest Du schon beschalten ( zumindest mit einem Widerstand auf +5V ziehen ), denn der wird immer eingelesen.

Zitat

Ich habe das DEBUG angeschaltet und sehe irgendwie gar nichts.

Die initiierungsmeldungen ( Betriebsart, Adressen, Konfig-Werte ) solltest Du aber auf jeden Fall sehen - die werden bei aktiven DEBUG immer als erstes ausgegeben.

Zitat

Was mir noch aufgefallen ist. Es ist mir nicht gelungen, ein Sketch mit der IDE als Nano in den Nano zu laden. Nach dem Tip in einem Forum habe ich Uno in der IDE eingestellt, dann funktionierte der Download.

Was hast Du denn da für einen Nano? Da scheint der Uno-Bootloader drauf zu sein.

Zitat

Sollte ich mir doch einen Uno besorgen, um einen Testaufbau hinzubekommen?

Das muss mit einem Nano auch gehen ( ich habe gar keinen Uno ).

P.S. Du solltest diesen Post eigentlich besser im Thread des Zubehördecoders einstellen.


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.3.1 released

#281 von Woge , 13.03.2018 22:54

Hallo Franz Peter,
Nach meinen ersten positiven Versuchen über die SPI Schrittmotore anzusteuern, habe ich das gleiche Problem wie bei Jürgen feststellen müssen, die Schrittmotoren werden durch die ständige Ansteuerung warm. Jetzt habe ich nochmals in der Doku V0.9 nachgelesen und mir stellt sich die Frage: Was bewirkt“ void myStepper.detach () “? Wird hier nicht die Pinzuordnung aufgehoben und die Ansteuerung des Schrittmotors unterbrochen? Wenn dieser Zusammenhang so besteht, wäre natürlich die Positionsangabe hin (wäre in meinem Fall nicht so schlimm) und ich müsst aber auch bei jeder Ansteuerung des so abgeschalteten Schrittmotors diesen über “ byte myStepper.attach ( byte spi ) „ neu zuordnen. Ist der Gedankenansatz richtig oder kann die Stromaufnahme nur über eine konsequente Abschaltung der Spannung bewirkt werden.

Gruß Klaus


viele Grüße von der Ostseeküste

Klaus


 
Woge
Regionalbahn (RB)
Beiträge: 37
Registriert am: 13.03.2016
Spurweite H0
Stromart Digital


RE: Arduino MobaTools: V2.3.1 released

#282 von MicroBahner , 14.03.2018 10:51

Hallo Klaus,
ja das dauernde 'Bestromen' ist ein prinzipieller Nachteil der Schrittmotoren. Aber nur so ist sichergestellt, dass er auch seine Position hält.

Zitat

Was bewirkt“ void myStepper.detach () “? Wird hier nicht die Pinzuordnung aufgehoben und die Ansteuerung des Schrittmotors unterbrochen?

Grundsätzlich stimmt es schon, dass damit die Pinzuordnung aufgehoben wird. Allerdings wird an den Pins erstmal nichts geändert, d.h. sie bleiben in ihrem letzten Zustand. Bei SPI sind das ja auch gar keine direkt ansteuerbaren Pins, sondern die Ausgänge des Schieberegisters. Das Abschalten müsste man daher danach im Sketch manuell machen.

Vielleicht sollte ich in einer nächsten Version beim detach() dann auch die Ausgänge alle auf LOW setzen - oder wieder auf INPUT ( was aber bei SPI gar nicht geht ) . Bei Ansteuerung über den A4988 Treiber hilft das aber alles eh nichts - den müsste man getrennt über ENABLE abschalten.


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.3.1 released

#283 von garti62 , 17.03.2018 19:38

Hallo Franz-Peter,

Zitat

Vielleicht sollte ich in einer nächsten Version beim detach() dann auch die Ausgänge alle auf LOW setzen



Ich habe letztens mal einen SpurN-Clone Deiner Schrankenanlage für einen Bekannten gebaut, da habe ich es auch so gemacht. Nach Beendigung des Stellvorganges einfach die Ausgänge auf low. Ist jetzt allerdings nicht mit MobaTools sondern in Basic, da kann ich doch irgenwie besser mit um

Zitat

Bei Ansteuerung über den A4988 Treiber hilft das aber alles eh nichts - den müsste man getrennt über ENABLE abschalten.



Oder einfach den Strom reduzieren, für einen Schrankenantrieb sollten minimale Stellkräfte völlig ausreichen.

Schöne Grüße
Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Arduino MobaTools: V2.3.1 released

#284 von Woge , 19.03.2018 23:24

Hallo Franz Peter,
ersteimal herzlichen Dank für Deine Info. Wenn ich es richtig verstanden habe, ist es also nicht möglich, die Schieberegister (4094) durch das MoBa-Tool auf Null zusetzen und somit meinen Schrittmotor über den Treiber ULN 2803 stromlos zu schalten. Da eine genaue Position bei mir zurzeit nicht gehalten werden muss, werde ich also im Sketch meine Spannung für den Stepper per Relais abschalten.
Da ich gerade bei dem Thema Stromversorgung gelandet bin, habe ich auch dazu noch eine Frage. Der Nano kann ja über den PIN 30 (VIN) mit einer Spannung von 7- 12V betrieben werden. Kann ich dann aber auch den Nano ohne weiters über die USB-Schnittstelle gleichzeitig an meinen PC anschließen und programmieren, ohne Schaden am PC bzw. Nano zu erleiden. Zur Zeit trenne ich beim Programmieren aus Sicherheitsgründen immer den Nano von der Stromversorgung (sehr umständlich und nervend) und versorge ihn über separat über den USB-Anschluß.

PS.: unter dem Link https://www.youtube.com/watch?v=8T-fM-BM7O8 kann man meine mit einen Stepper betriebenen Tanzmäuse betrachten.


viele Grüße von der Ostseeküste

Klaus


 
Woge
Regionalbahn (RB)
Beiträge: 37
Registriert am: 13.03.2016
Spurweite H0
Stromart Digital


RE: Arduino MobaTools: V2.3.1 released

#285 von garti62 , 20.03.2018 08:15

Hallo Klaus,

da ich gerade hier lese,

Zitat

Kann ich dann aber auch den Nano ohne weiters über die USB-Schnittstelle gleichzeitig an meinen PC anschließen und programmieren, ohne Schaden am PC bzw. Nano zu erleiden.



Ja, kannst Du. Die beiden Spannungen sind auf dem Arduino über eine Diode entkoppelt.

Gruß
Ulli


erste Versuche: Weichenbau


 
garti62
InterCity (IC)
Beiträge: 645
Registriert am: 08.11.2011


RE: Arduino MobaTools: V2.3.1 released

#286 von MicroBahner , 23.03.2018 11:15

Hallo Klaus,
da geht ja ordentlich rund ( im wahrsten Sinne des Wortes ), in deinem Lokal .
Zu Spannungsversorgung hat dir Ulli ja schon geantwortet.

Das Abschalten des Steppers habe ich mal auf die ToDo Liste für die MoBa Tools gesetzt. Wann ich dazu komme steht aber noch in den Sternen . Spannung abschalten ist aber auch eine rel. einfache Lösung.


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.3.1 released

#287 von Lepus , 21.05.2018 13:42

Halli Hallo liebe Stummigemeinde,
ich möchte dir Franz-Peter meinen persönlichen Dank aussprechen und natürlich allen weiteren Beteiligten, ein so einfaches Tool für DCC und Arduino erstellt zu haben.
Da ich vor kurzem auf dem Zug der Arduinos und deren Derivate, die von der Arduino IDE unterstützt werden, aufgestiegen bin, bin ich doch immernoch erstaunt, wie viel man damit machen kann zu unschlagbaren Preisen.

So viel zum Dank jetzt muss ich doch leider doch ein paar Fragen loswerden.

Da ich mit RocoLine mit Bettung arbeite und mir die Viessmann 4558 zu teuer, zu laut und unzuverlässig sind dachte ich mir mal ich versuche mein eigenes Glück, da auch die Digitalstandardteile von Roco in Verbindung mit Railcom(R) nur zur Hälfte funktionieren.
Zeitgleich wurde ich durch den Parallelthread Mikro-Schrittmotor als Weichenantrieb? aufmerksam, statt eines stinknormalen DC-Motors einen Schrittmotor zu verwenden.
Vorteile waren auch die geringere Drehzahl des Schrittis.

Nun zu meinen Fragen:
In diversen Beispielen von Arduino, wie man einen Schrittmotor an einem Schieberegister anschließt wurden andere Pins verwendet, wie du sie in der Mobatools vorsiehst. Liegt der Vorteil darin, wenn du die SPI Schnittstelle benutzt, dass dort die Refreshs des Schieberegisters öfters sind (habe von 16MHz gelesen), oder gibt es einen anderen Grund?

Hast du die Anzahl der Schrittmotoren durch die SPI auf vier begrenzt, wegen den 16bit für die 4*4 Leitungen und der möglichen einbrechenden Performance des Arduinos?

Gäbe es eine Möglichkeit an die zweite SPI-Schnittstelle des STM32 auch weitere vier Schrittmotoren zu hängen, sodass man dann mit den Servos gleichziehen täte?

Das mit dem Abschalten der Schrittis haben andere schon vorgeschlagen. Habe zwar schon überlegt, leider hat sich die .cpp noch nicht in aller gänze mir erschlossen. Aber wenn es darum geht, dass eine Applikation ein Haltemoment braucht, warum werden dann nicht Schnecken in Betracht gezogen. Diese sind selbsthemmend und damit sollte Stromlos auch die Position gehalten werden (Mit gewissen Toleranzen, dazu sollte man sich einen Kopf machen, wie man diese gering hält.)

Das waren mal so meine Gedanken und ich danke dir für die Zeit.
wenn ich meine Motörchen habe, werde ich euch auf dem Laufenden halten.
Euch allen noch ein schönen Pfingstmontag.
Gruß
Hendrik


Lepus  
Lepus
Beiträge: 1
Registriert am: 16.05.2018


RE: Arduino MobaTools: V2.3.1 released

#288 von MicroBahner , 22.05.2018 16:38

Hallo Hendrik,
Als ich mit dem MobaTools angefangen habe, waren die Schrittmotoren zunächst als Antriebe für Bahnschranken vorgesehen.
Daher kam auch ursprünglich die Anzahl von 4 Schrittmotoren. Die dafür vorgesehenen unipolaren Motörchen benötigten auch 4 Pins, weshalb mehr kaum möglich war. Die SPI-Schnittstelle kam erst später hinzu, ebenso die Ansteuerung über spezielle Schrittmotortreiber, bei denen nur 2 Pins/Motor benötigt werden. Die Anschlußpins bei SPI sind fest und nicht frei wählbar. Vorteil ist, dass das Herausschieben per HW erfolgt, und damit den Arduino entlastet.

Eine Erweiterung auf mehr als 4 Schrittmotore ist möglich, würde aber einige Änderungen an der Software erfordern. Eine 2. SPI Schnittstelle dafür zu verwenden ist eher nicht notwendig, da das Herausschieben der Daten über die HW-SPI sehr schnell geht.
Die notwendigen Erweiterungen beziehen sich auf die interne Verwaltung der Daten der Schrittmotore und das Bestimmen, wann welcher Motor den nächsten Schritt braucht. Da könnte dann auch die Performance ins Spiel kommen - vor allem bei den Standard-Arduinos. Die STM32 schaffen da sicher mehr.

Für Weichenantriebe sind eigentlich eher Servos gedacht. Deren Selbsthemmung ist für Weichenantriebe auch ausreichend, weshalb dort in den MobaTools die Ansteuerung beim Erreichen der Endposition automatisch abgeschaltet werden kann. Für Schrittmotore ist das bisher noch nicht vorgesehen. Für den Weichenantrieb mit Servos gibt es auch sehr einfache mechanische Lösungen.


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.3.1 released

#289 von gb49 , 28.05.2018 17:16

Hallo Franz-Peter,

vielen Dank, dass du deine Mikroprozessor-Kenntnisse so uneigennützig teilst.
Deine MobaTools gaben mir den Anstoß, mich mit Arduinos zu beschäftigen und haben mir die Einsicht gebracht, dass digital Vieles einfacher (und preiswerter) ist.
Eins meiner Projekte ist eine Car System Garage für Pkws. Servos treiben Abzweige, Stoppstellen, das Garagenflügeltor und eine kleine Drehscheibe für das Auto (z.T. langsam) an. Eine ideale Anwendung für die MobaTools auf einem Nano.
Zunächst hatte ich für die Drehscheibe einen Standardservo gehackt, damit er die 180 Grad erreicht. Das ist mir aber zu fummelig und zu anfällig. Deswegen habe ich jetzt einen 180° Servo erstanden (TP MG90S), der das standardmäßig kann.
Leider benötigt mein Exemplar für die 180°-Drehung Pulslängen von 600-2400 µs und leider begrenzt die Servo8-Klasse den write Befehl auf 700-2300 µs Impulslänge. Auch mit setMinimumPulse() und setMaximumPulse() konnte ich das nicht übersteuern, obwohl in der Library noch von 540 und 2400 defaults die Rede ist (Zeile 324/325). Mit der Standard Servo-Lib ließen sich die gewünschten Impulslängen mit writeMicroseconds verwirklichen. Auf die MobaTools möchte ich aber nicht verzichten.
Wenn ich es recht verstanden habe, ergibt sich die Max/Min-Impulslänge aus der Anforderung, innerhalb der 20ms Taktzeit 16 Servos zu bedienen. Deshalb hier meine Frage:
Siehst du eine Möglichkeit, die Max/Min-Impulslänge zu erweitern, indem man sich auf z.B. 8 Servos beschränkt?
Und siehst du eine Chance, dass solch eine Erweiterung der Library den Weg auf deine ToDo-Liste finden könnte?

Entschuldige bitte, dass ich hier mit meinem ersten Forumbeitrag gleich einen Wunsch vorbringe. Aber ich könnte mir Vorstellen, dass mein Anliegen von einigen Nutzern geteilt wird.
Stiller Bewunderer auch deiner Schrankensteuerung bin ich schon länger.
Mit freundlichen Grüßen
Georg


gb49  
gb49
Beiträge: 2
Registriert am: 27.05.2018
Spurweite H0
Stromart Digital


RE: Arduino MobaTools: V2.3.1 released

#290 von MicroBahner , 28.05.2018 17:55

Hallo Georg,
erstmal Danke für dein Interesse an den MobaTools. Wer sich damit beschäftigt, kann natürlich auch Wünsche vorbringen

Zitat

obwohl in der Library noch von 540 und 2400 defaults die Rede ist (Zeile 324/325)

Upps, das war noch aus den Anfangszeiten, und da habe ich den Kommentar nicht korrigiert - das wird berichtigt. Danke für den Hinweis. Es ist immer gut, wenn die Nutzer genau hinschauen

Um die 16 Servos in den 20ms unterzubringen, sind die Impulse etwas 'tricky' verschachtelt, und daraus ergeben sich die Grenzen von 700 bzw 2300 µs. Den allermeisten Servos macht es zwar nichts aus, wenn die 20ms überschritten werden. Aber da ich schon Exemplare hatte, bei denen das nicht so war (vielleicht waren es auch nur Ausreißer? ) bin ich da gebranntes Kind und habe es genau gemacht.

Die MobaTools kennen aber auch einen Modus, wo die Impulse nicht verschachtelt werden, sondern immer an festen Positionen innerhalb der 20ms erzeugt werden. Dann gehen standardmäßig aber nur 8 Servos, wobei da das theoretische Maximum der Pulslänge 2500µs beträgt. Man kann es aber nicht ganz ausnutzen, da der Prozessor zwischen dem IRQ zum Abschalten des vorhergehenden, und dem IRQ für den Beginn des neuen Impulses etwas Zeit braucht. 2400µs sollten aber funktionieren, und das Minimum ist eher unkritisch.

Um das zu aktivieren, musst Du in der MobaTools.h ein paar Zeilen ändern:

Zeile 87 ändern auf ( Kommentarzeichen entfernen ):

1
 
#define FIXED_POSITION_SERVO_PULSES
 



Zeile 113/114 die min/max Zeiten anpassen:

1
2
 
    #define MINPULSEWIDTH   600     // don't make it shorter
#define MAXPULSEWIDTH 2400 // don't make it longer
 


Gegebenenfalls kann man 2 Zeilen darunter auch noch die MAX_SERVOS etwas reduzieren, falls die max. Pulslänge > 2400µs werden soll.

Allerdings habe ich diesen Modus schon seit längerer Zeit nicht mehr genutzt/getestet. Das kannst Du also jetzt mal übernehmen .
Eigentlich müsste es aber so funktionieren.


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.3.1 released

#291 von gb49 , 28.05.2018 21:55

Hallo Franz-Peter,
vielen Dank für deine prompte Antwort.
Die vorgeschlagenen Änderungen hatte ich auch schon versucht, im Sketch mitzugeben. Das bewirkte aber nichts.
Nun habe ich eine Kopie der MobaTools.h wie vorgeschlagen geändert (einschl. MAX_SERVOS 5) und auf MobaTools.h renamed. Arduino IDE neu gestartet, Test-Sketch ohne Fehler kompiliert und geladen. Leider bleibt der write-Befehl ohne jede Wirkung auf den Servo, sowohl im Grad-Bereich als auch mit Mikrosekunden. Es wäre auch zu schön gewesen. Mit der Original-Lib läuf der Sketch mit Werten zwischen 700 und 2300 µs. Schade!
Hast du noch eine Idee?
LG Georg


gb49  
gb49
Beiträge: 2
Registriert am: 27.05.2018
Spurweite H0
Stromart Digital


RE: Arduino MobaTools: V2.3.1 released

#292 von MicroBahner , 28.05.2018 22:03

Hallo Georg,

Zitat

Nun habe ich eine Kopie der MobaTools.h wie vorgeschlagen geändert (einschl. MAX_SERVOS 5) und auf MobaTools.h renamed.

da verstehe ich jetzt nicht ganz was Du gemacht hast. Du solltest schon das Original ändern. Eine Kopie vorher zu machen ist sicher eine gute Idee, aber ändern musst Du das Original im Library-Ordner.

Ansonsten muss ich mir das mal selbst anschauen, denn eigentlich sollte es schon funktionieren. Und wenn noch ein Fehler drin ist, muss der ja beseitigt werden . Das kann aber evtl. ein paar Tage dauern, bis ich dazu komme.


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.3.1 released

#293 von Running.Wolf , 08.08.2018 09:46

Moin

ich habe seit Jahren einen Faller 120162 - Portalkran auf meiner Anlage stehen. Er macht nichts. Nun habe ich ein Servo reingesetzt und mit einem Nano angesteuert. Damit der Arduino Nano ein wenig mehr machen kann (Licht in Lokschuppen an//aus, Schweissflackern ….) musste gegenüber der servo.h Lib das delay verschwinden.
Die Mobatools haben dabei geholfen.
Ich habe mich nur über das Surren des Servos in den Pausen geärgert und wollte es erst über myservo.detach() lösen. Ging aber nicht. Dann habe ich gelesen und in der Zeile

myservo.attach(seroPin, TRUE)


das TRUE eingefügt. Nun ist das Surren weg.
Ich habe nur nicht so ganz begriffen, wie

    Winkel

    Geschwindigkeit

am besten einzustellen sind.
Aber im Moment geht meine Lösung ganz gut, wobei im Moment nur das Schwenk-Servo aktiv ist.


Siehe die LOOP

void loop() {

unsigned long currentMillis = millis();

switch ( schritt ) {
case 0:
if ( ! Pause.running() ) {
// Pausezeit abgelaufen, Bewegung links starten

schwenkServo.write(0);
schritt = 1;
}
break;
case 1:
if ( ! Pause.running() ) {
//Wartezeit abgelaufen, 2. Servo starten
hebenServo.write(20);
Pause.setTime( 15000 );
schritt = 2;
}
break;
case 2:
if ( ! Pause.running() ) {
//Wartezeit abgelaufen, 1. Servo rechts drehen

schwenkServo.write(170);
Pause.setTime( 25000 );
schritt = 3;
}
break;
case 3:
if ( ! Pause.running() ) {
//Wartezeit abgelaufen, 2. Servo zurückdrehen
hebenServo.write(60);
Pause.setTime( 15000 );
schritt = 0;
}

}

//

//
// Loop Blink LED
//
if (currentMillis - previousMillis_LED >= wann_LED) {
previousMillis_LED = currentMillis; // save the last change
digitalWrite(lichtPin, !digitalRead(lichtPin));
} // Ende IF Licht

if (currentMillis - previousMillis_Rot >= wann_Rot) {
previousMillis_Rot = currentMillis; // save the last change
if (schwenkServo.moving()) {
digitalWrite(rotPin, !digitalRead(rotPin)); }
else {
digitalWrite(rotPin, HIGH); }

}
//
// Loop Blink Ende


Korrektur: Modellnummer Kran


Gruss Wolfgang

All that the young can do for the old is to shock them and keep them up to date. George Bernhard Shaw


 
Running.Wolf
EuroCity (EC)
Beiträge: 1.371
Registriert am: 15.01.2006
Homepage: Link
Ort: Isernhagen
Gleise C-Gleis / M-Gleis
Spurweite H0
Steuerung CS 2
Stromart Digital


RE: Arduino MobaTools: V2.3.1 released

#294 von MicroBahner , 14.08.2018 11:27

Hallo Wolfgang,
sorry für die späte Antwort, aber wir waren in Urlaub, und da hatte ich nur eingeschränkt Internetzugang .

Es freut mich natürlich, wenn meine MobaTools dir helfen .

Zitat

Ich habe nur nicht so ganz begriffen, wie

Winkel

Geschwindigkeit

am besten einzustellen sind.

Der einzustellende Winkel ist natürlich von deiner Mechanik abhängig, wobei man das mit den Winkelwerten 0...180° nicht so ganz wörtlich nehmen darf. Das hängt alles sehr vom verwendeten Servo ab. Die Position wird ja eigentlich über einen Impuls von nominell 1-2ms bestimmt. Viele Servos können aber auch noch etwas kürzere oder längere Impulse korrekt verarbeiten. Analoge Servos laufen an den Anschlag, wenn die Impulse zu kurz oder zu lang sind, digitale Servos ignorieren zu kurze oder zu lange Impulse meist vollkommen (sieht dann so aus, als würden sie nicht funktionieren, sie bleiben einfach an der letzten 'korrekten' Position stehen).
Standardmässig setzen die Mobatools den Winkel '0' in einen Impuls von 0,7ms und '180' in einen Impuls von 2,3ms um. Ob dabei dein Servo wirklich eine 180° Drehung macht ist nicht gesagt. Manche Servos schaffen das schon mechanisch nicht.
Du kannst statt des Winkels ( 0-180 ) auch direkt die Impulslänge in µs ( 700-2300 ) beim write angeben.

Den Wert für die Geschwindigkeit probierst Du am besten aus, bis er für deine Zwecke passt. Dabei ist '1' der langsamste Wert, und je größer, dest schneller wird es. ( Bei '0' wird allerdings die gesamte Geschwindigkeitskontrolle abgeschaltet, und das Servo bewegt sich so schnell es eben kann. )
Auszug aus dem Manual:

Zitat
void myServo.setSpeed(int Speed);
Bewegungsgeschwindigkeit des Servos vorgeben. 'Speed' ist der Wert ( in 0,5µs Einheiten)
um den sich die Impulslänge alle 20ms verändert, wenn sich das Servo bewegt. Speed=1
bedeutet, dass 40s gebraucht werden, um die Impulslänge von 1ms auf 2ms zu ändern.
Speed=0 ( default Wert) bedeutet direkte Impulsänderung (wie Standard-Servo Library )




N.B. wenn Du Sourcecode einstellst, solltest Du ihn in Code-Tags einschliessen, dann liest er sich leichter:
[quote="Running.Wolf"|p1859621]

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
 
void loop() {

unsigned long currentMillis = millis();

switch ( schritt ) {
case 0:
if ( ! Pause.running() ) {
// Pausezeit abgelaufen, Bewegung links starten

schwenkServo.write(0);
schritt = 1;
}
break;
case 1:
if ( ! Pause.running() ) {
//Wartezeit abgelaufen, 2. Servo starten
hebenServo.write(20);
Pause.setTime( 15000 );
schritt = 2;
}
break;
case 2:
if ( ! Pause.running() ) {
//Wartezeit abgelaufen, 1. Servo rechts drehen

schwenkServo.write(170);
Pause.setTime( 25000 );
schritt = 3;
}
break;
case 3:
if ( ! Pause.running() ) {
//Wartezeit abgelaufen, 2. Servo zurückdrehen
hebenServo.write(60);
Pause.setTime( 15000 );
schritt = 0;
}

}
 
//
 
//
// Loop Blink LED
//
if (currentMillis - previousMillis_LED >= wann_LED) {
previousMillis_LED = currentMillis; // save the last change
digitalWrite(lichtPin, !digitalRead(lichtPin));
} // Ende IF Licht
 
if (currentMillis - previousMillis_Rot >= wann_Rot) {
previousMillis_Rot = currentMillis; // save the last change
if (schwenkServo.moving()) {
digitalWrite(rotPin, !digitalRead(rotPin)); }
else {
digitalWrite(rotPin, HIGH); }

}
//
// Loop Blink Ende
 
 


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.3.1 released

#295 von Running.Wolf , 14.08.2018 14:45

Herzlichen Dank Franz-Peter
der Kran bewegt sich mit einem kleinen Modellbauservo um 90 Grad wie gewünscht .
Dank des Vermeidens von DELAY() hat der Nano noch Zeit etwas anderes zu tun.

- Licht geht im Führerhaus aus
- Blinklicht geht an bevor Kran dreht
- Kran dreht
- Kran hält an
- Blinklicht geht aus


unabhängig davon schaltet der Nano das Licht in Lokschuppen, Schweisslichtflackern etc.

Nochmal, die verwendeten Mobatools helfen mächtig.


Gruss Wolfgang

All that the young can do for the old is to shock them and keep them up to date. George Bernhard Shaw


 
Running.Wolf
EuroCity (EC)
Beiträge: 1.371
Registriert am: 15.01.2006
Homepage: Link
Ort: Isernhagen
Gleise C-Gleis / M-Gleis
Spurweite H0
Steuerung CS 2
Stromart Digital


RE: Arduino MobaTools: V2.3.1 released

#296 von MicroBahner , 16.08.2018 17:09

Hallo Wolfgang,
das hört sich nach einer schönen und interessanten Anwendung an. Wäre ja vielleicht schon ein kleines Video wert ?


Zitat

die verwendeten Mobatools helfen mächtig.

so waren sie gedacht - und wenn's auch so funktioniert freut's mich natürlich

------------------------------
P.S. Wenn Du die MobaTools eh schon benutzt - hast Du schonmal daran gedacht, die Blinkled mit der SoftLed-Klasse 'weich' ein- und auszuschalten? Ich finde das immer wesentlich natürlicher als dieses 'harte' LED-Blinken. Da reichen oft schon kleine Verzögerungen um das echter aussehen zu lassen.


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.3.1 released

#297 von HeWi123 ( gelöscht ) , 09.12.2018 22:32

Hallo,
wo bekommt man die Datei <MobaTools.h> her, um sich mit den hier vorgestellten Projekten zu befassen?
Bin Arduino-Anfänger und interessiert.
Danke für die Info im Voraus
HeWi123


HeWi123

RE: Arduino MobaTools: V2.3.1 released

#298 von MicroBahner , 09.12.2018 22:56

Hallo,
einfach im ersten Post dieses Threads auf MobaToolsV1.0.zip klicken. Die Zip-Datei speichern ( z.B. in Downloads). Dann in der Arduino IDE unter Sketch->Bibliothek einbinden->.ZIP Bibliothek hinzufügen aufrufen. Dort zu der gespeicherten zip Datei navigieren und OK drücken. Die Lib wird dann automatisch installiert und Du kannst die MobaTools nutzen.


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.3.1 released

#299 von MicroBahner , 11.12.2018 13:38

Hallo an alle MobaTools Interessierten .
Die MobaTools können jetzt auch direkt über den Bibliotheksverwalter der IDE installiert werden.
Mit Strg+Shift+I kann der Bibliotheksverwalter aufgerufen werden. Dann im Suchfeld oben rechts 'mobatools' eingeben (Groß/Kleinschreibung ist irrelevant, 'moba' reicht auch schon).


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.3.1 released

#300 von johnbobjamesson , 12.12.2018 00:01

Wow!


johnbobjamesson  
johnbobjamesson
RegionalExpress (RE)
Beiträge: 85
Registriert am: 24.04.2015


   

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