RE: Servoansteuerung für schwingende Glocke

#51 von Lindilindwurm , 16.10.2016 12:35

Hallo Ralf, die Treibersignierung war schon ausgeschaltet. Avira lasse ich ehrlich gesagt lieber an.
... warum wird der Ardiuno als "Due" erkannt? Er sieht äußerlich wie ein Nano aus?


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#52 von Lindilindwurm , 16.10.2016 13:24

... mir ist es inzwischen gelungen, den Arduiono manuell auf den Typ UNO einzustellen (Nano ist im Auswahlmenue nicht vorhanden);
allerdings ist er weiter mit Ausrufezeichen im Gerätemanager markiert.

Die Fehlermeldung lautet: Das Gerät kann nicht gestartet werden. (Code 10)
Weder die Treiber aus Arduino, noch die anderen funktionieren.

In der Arduino-Software lässt sich auch der Port nicht von 1 auf 6 verstellen?



Bin ratlos.


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#53 von rmayergfx , 16.10.2016 14:45

Du solltets währen der Installation Avira deaktivieren. Das hat schon mehrfach Installationen gestört. Das gilt uneingeschränkt für alle Virenscanner, sofern man Dateien aus vertrauesnwürdigen Quellen installiert.
Der Treiber kann nicht gestartet werden, da die Hardware ID die vom Gerät gesendet wird, nicht zum Treiber passt. Manuell solltest Du da gar nichts einstellen.

Ich tippe eher darauf das Du ein DOA Gerät erhalten hast.
Was Du noch versuchen kannst, ist ein möglichst kurzes neues USB Kabel direkt am USB Port zu benutzen, auf keinen Fall irgendwelche Hubs oder Verteiler dazwischenschalten. Ich hatte schon einmal das Problem,
das mir ein defektes Kabel solch einen Fehler produziert hat.

mfg

Ralf


Der Computer soll die Arbeit des Menschen erleichtern und nicht umgekehrt!
Neue Kupplungen für Faller OHU Selbstentladewagen: viewtopic.php?f=27&t=82863
Kein Support per PN !


 
rmayergfx
ICE-Sprinter
Beiträge: 5.391
Registriert am: 07.07.2008
Gleise C-K-Flex-M-Gleis
Spurweite H0, Z, 1
Steuerung MS2, 6021, 60213
Stromart AC, Digital, Analog


RE: Servoansteuerung für schwingende Glocke

#54 von Lindilindwurm , 16.10.2016 17:32

Danke! Ich werde es am Dienstag probieren, vorher komme ich nicht dazu.

Lindi


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#55 von Bodo , 16.10.2016 17:44

Hallo Lindi,

ich stimme Ralf soweit zu, dass dieses "Rumpfuschen" an den Treibern nix bringt. Wenn ich einen UNO anschließe, zeigt er sich als solcher im Geräte-Manager:


Der Nano mit CH340-Chip zeigt sich auch bei mir nur als USB-SERIAL CH-340:

Trotzdem kann ich damit in der Arduino-Software den Nano ansprechen.

Auch der Tip mit dem USB-Kabel und ggf. dem Hub ist gut. Mit dem Virenscanner ist das halt so eine Sache ... meinen musste ich noch nie deaktivieren, aber den Tipp, ihn (insbes. Avira) während der Installation zu deaktivieren, liest man häuft. Natürlich ist auch nie ausgeschlossen, dass das Ding wirklich defekt ist - hatte ich mal bei einem Micro-Pro ... dazu gleich noch eine PN.

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#56 von rmayergfx , 16.10.2016 19:35

Ähm...

jetzt muss ich mal ganz doof reingrätschen. Welcher Arduino wurde denn jetzt bestellt ?
Der aus dem ebay Angebot: http://www.ebay.de/itm/Nano-V3-0-Modul-m...d=1110337653038
Weil da steht in der Beschreibung:

Zitat
Der FT232RL von FTDI Chip auf dem Nano ist nur angetrieben, wenn das Board über USB versorgt wird. Infolgedessen beim Ausführen auf externe (USB) macht die 3.3V Ausgang (die liefert des FTDI-Chips) ist nicht verfügbar und die RX und TX LEDs flackern, wenn digitale Stifte 0 oder 1 hoch sind.



Bei FTDI Chips wird dieser Treiber benötigt: http://www.ftdichip.com/Drivers/VCP.htm
Bitte mal Bilder vom Nano von beiden Seiten einstellen, damit man die Chips erkennen/lesen kann.

Danke

Ralf


Der Computer soll die Arbeit des Menschen erleichtern und nicht umgekehrt!
Neue Kupplungen für Faller OHU Selbstentladewagen: viewtopic.php?f=27&t=82863
Kein Support per PN !


 
rmayergfx
ICE-Sprinter
Beiträge: 5.391
Registriert am: 07.07.2008
Gleise C-K-Flex-M-Gleis
Spurweite H0, Z, 1
Steuerung MS2, 6021, 60213
Stromart AC, Digital, Analog


RE: Servoansteuerung für schwingende Glocke

#57 von Bodo , 18.10.2016 07:50

Hallo Ralf,

dem Ergebnis dieser Computerübersetzungen aus dem chinesischen traue ich nicht wirklich .

Klar wäre es wichtig zu wissen, welcher Chip wirklich drauf ist. Für die FTDI-Chips sind die Treiber aber in der Arduino-Software enthalten ... da sollte es gar keine Probleme geben. Meine ersten (Original-)Arduinos wurden jedenfalls auch unter Windows 7 immer erkannt, ohne dass ich irgendeinen Treiber manuell installieren musste. Dann kamen die FTDI-Fälschungen und die KO-Treiber von FTDI und darauf als Reaktion die CH340.

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#58 von rmayergfx , 18.10.2016 11:06

Bodo, ich kann Dir da nur zustimmen, aber wenn sich der Treiber nicht sauber installiert muss man halt alle Wege gehen um zu überprüfen, ob man tatsächlich die richtgien Treiber für das Gerät hat. Eine Hardwarestelle in der INF-Datei des Treibers die nicht passt und schon funktioniert das ganze nicht mehr. Von daher schaue ich lieber 2x auf die verbauten Chips und wenn dann immer noch nichts geht gehe ich von einem DOA aus und kontaktiere den Händler. Kann immer mal passieren.

mfg

Ralf


Der Computer soll die Arbeit des Menschen erleichtern und nicht umgekehrt!
Neue Kupplungen für Faller OHU Selbstentladewagen: viewtopic.php?f=27&t=82863
Kein Support per PN !


 
rmayergfx
ICE-Sprinter
Beiträge: 5.391
Registriert am: 07.07.2008
Gleise C-K-Flex-M-Gleis
Spurweite H0, Z, 1
Steuerung MS2, 6021, 60213
Stromart AC, Digital, Analog


RE: Servoansteuerung für schwingende Glocke

#59 von Lindilindwurm , 18.10.2016 17:13

Der Austausch des Nanobausteins durch einen etwas teureren incl. kurzem USB-Kabel war erfolgreich, es war also ein Hardware-Problem.

Auf den zweiten Nano konnte ich den Servo-Tester auf Anhieb aufspielen.

Ich werde heute Abend weitermachen, d.h. den eingebauten Servo auslesen, um brauchbare Werte zu bekommen.

Grüße Lindi


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#60 von rmayergfx , 18.10.2016 17:29



Schön das es weitergeht. Welchen Baustein hast Du denn nun im Einsatz und mit welchem Treiber ?

mfg

Ralf


Der Computer soll die Arbeit des Menschen erleichtern und nicht umgekehrt!
Neue Kupplungen für Faller OHU Selbstentladewagen: viewtopic.php?f=27&t=82863
Kein Support per PN !


 
rmayergfx
ICE-Sprinter
Beiträge: 5.391
Registriert am: 07.07.2008
Gleise C-K-Flex-M-Gleis
Spurweite H0, Z, 1
Steuerung MS2, 6021, 60213
Stromart AC, Digital, Analog


RE: Servoansteuerung für schwingende Glocke

#61 von Lindilindwurm , 18.10.2016 22:16

Hallo Bodo und Ralf,

ich habe die Glocke jetzt eingemessen: Mittellage ist bei 110, linker Ausschlag bei 64, rechter Aussschlag bei 150.

Der Treiber funktioniert bei beiden Rechnern (also mit Windows 10 bzw. XP).

Der neue Arduino ist ein "Arduino Nano V3.0 ATmega328P-compatible USB 5V Micro-controller Board" incl. kurzem USB-Kabel, von Buchtverkäufer e_bidhk für 11,27 Euro.

So siehts jetzt aus: Zum Auslesen mittels Poti ist der fest im Kirchendach von Bebenhausen eingebaute Servo an den Arduino angeschlossen.



Ich freue mich schon auf den nächsten Schritt

Lindi


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#62 von Bodo , 19.10.2016 07:19

Hallo Lindi,

das freut mich, dass es jetzt weitergeht ... ist schon frustrierend, wenn direkt das erste Teil defekt ist und man noch keine Ahnung hat, wo man den Fehler suchen soll.

Die Werte für die Glocke sehen prinzipiell auch gut aus - allerdings dürften das die Gradzahlen (0 bis ca. 180) für ein Servo an Port 8 sein. Ich habe den Servo-Tester so aufgebaut, dass er für beide Einheiten taugt. Für einen Weichenantrieb wären Gradzahlen völlig ausreichend. Für die Schwingungskurve würde ich allerdings gerne mit der (theoretisch) ca. 5-fach höheren Auflösung der Impulslänge von ca. 1000 bis 2000 ms arbeiten.

Wenn das Servo also an Port 9 angeschlossen ist, sind die korrekten Positionsdaten die 4-stelligen Werte am Ende der Zeile. Wie schon bei den Gradzahlen ist die Mittelstellung im Idealfall der Mittelwert der beiden Endstellungen ... mechanisch stimmt das nur selten ganz genau. Dann muss man später schauen, ob die Glocke zwischen den Endlagen etwas schief hängt und ggf. eine Endlage etwas anpassen. Aber da bin ich jetzt schon wieder einen Schritt zu weit.

In meiner ersten Version des Glockenprogramms stehen direkt am Anfang drei Werte:

1
2
3
 
int servo_pos_min = 1000;    // variable to store the servo position 
int servo_pos_max = 2000;
int servo_pos = 1500;
 


Erst die beiden Endpositionen und dann die Ausgangs-/Mittelstellung. Diese müssen dann entsprechend der Ergebnisse des Servo-Testers geändert werden. Für die nächsten Programmversionen werde ich dann direkt Deine Werte einsetzen. Die schon erweiterte Programmversion mit mehr Parametern gibt´s dann am Wochenende, wenn ich wieder an meinen Bastel-PC rankomme ...

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#63 von Lindilindwurm , 19.10.2016 11:34

Hallo Bodo,

herzlichen Dank! Ich habe grade die vierstelligen Werte mit dem Servotester ermittelt:

Mittelposition: 1560; linker Ausschlag: 2187; rechter Ausschlag: 1200.

Beim Versuch, dein oben veröffentlichtes Programm zu kompilieren, erschien folgende Fehlermeldung:

Arduino: 1.6.12 (Windows XP), Board: "Arduino Nano, ATmega328"

collect2.exe: error: ld returned 5 exit status

exit status 1
Fehler beim Kompilieren für das Board Arduino Nano.

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.


Als Ausblick: Wie muss ich denn die Verkabelung vorbereiten, wenn der Chip nicht mehr am USB, sondern an der Anlage hängt?

Beste Grüße Lindi


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#64 von Bodo , 19.10.2016 19:59

Hallo Lindi,

habe jetzt erstmal nur gefunden, dass dieser Fehler mit neuen Versionen der Arduino-Software auf alten Betriebssystemen auftreten kann (http://forum.arduino.cc/index.php?topic=385873.0) ... den da gemachten Vorschlag, eine ältere IDE zu verwenden, würde ich erstmal zurückstellen. Genau genommen findet man den Fehler im Netz sogar sehr oft - aber die "Lösungen" dazu sind in meinen Augen eher keine sondern zeugen eher von temporären Fehlern. Du hast ja auch noch den Win10-Rechner. Und die obige Software für die Glocke ist ja schon veraltet . So wie sich viele Forenbeiträgen lesen, könnte der Fehler mit einer neuen Version der (Glocken)Software schon weg sein. Aber auch nach einem Reboot des Rechners. Nachstellen/Testen (falls beim Kopieren in den Beitrag oben was verloren gegangen ist) kann ich erst am WE wieder.

Zum Thema Verkabelung: Der Arduino wird idealerweise mit 7-12 V versorgt - Wege gibt es dazu beliebig viele. Falls zufällig irgendwo noch ein Steckernetzteil mit 5,5/2,1-Hohlstecker (+ innen) rumliegt, welches mindestens 500 mA liefert, so passt das direkt an die Buchse der Sockelplatine. Viele Geräte werden mit solchen Netzteilen geliefert, die irgendwann übrig sind (z.B. LED-Beleuchtungen, aber auch Netzwerkkomponenten wie Router). Ist der gleiche Stecker wie beim Märklin-Netzteil für die MS ... aber das nicht verwenden, das liefert 18-20 V ! Alternativ hat die Sockelplatine natürlich passende Lötaugen (auf der Seite mit den analogen Eingängen ... V(in)=+/GND=-), an die man Kabel anlöten kann, die über einen Spannungsregler oder Step-Down-Regler (ggf. mit Gleichrichter) oder einen 9V-Clip an die Spannungsversorgung gehen. Da hängt es wirklich davon ab, wie der Rest Deiner Anlage bereits versorgt ist und was Du sonst noch im Haus hast. Eine Powerbank, wie sie Märklin zuletzt als Werbegeschenk verteilt hat, wäre zusammen mit dem USB-Kabel auch schon eine temporäre Lösung.

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#65 von Lindilindwurm , 19.10.2016 21:11

Danke! Ja ein Netzteil ist schon da, das ist gut. Bebenhausen ist bereit für die Glocke


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#66 von Lindilindwurm , 20.10.2016 06:09

Hallo Bodo,

ich habe gerade gesehen, dass du die Daten für Pin 8 brauchst, ich habe sie ausgelesen:

PIN 8: Mitte 1800, L 2310, R 1209
PIN 9: M 1560, L 2187, R 1200.

Grüße Lindi


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#67 von Bodo , 20.10.2016 08:48

Hallo Lindi,

toller Blick in den Klosterhof ... aber wie kommst Du jetzt auf Port 8 ?

Vielleicht noch mal zum Verständnis der Servo-Ansteuerung. Die Servo-Bibliothek bietet zwei Möglichkeiten, ein Servo anzusteuern - über Grad oder über Impulslänge:
https://www.arduino.cc/en/Reference/Servo
https://www.arduino.cc/en/Reference/ServoWriteMicroseconds

Damit der Servo-Tester für beides nutzbar ist, habe ich den Eingabebereich des Potis (0-1023) per map auf beide Möglichkeiten umgerechnet und Port 8 mit den Gradwerten und Port 9 mit den Mikrosekunden angesteuert. Die dreistelligen Gradzahlen, die der Servo-Tester in der zweiten Spalte zurückgibt, beziehen sich also immer auf ein Servo an Port 8, während sich die vierstelligen Impulslängen in der letzten Spalte immer auf ein Servo an Port 9 beziehen.

Oder anders herum: Wenn Du (wie hier für die Glocke) Werte für die Ansteuerung in Mikrosekunden haben möchtest, MUSS das Servo an Port 9 hängen. In der Anwendung ist es später aber egal, an welchem Port das Servo hängt (im Program muss das natürlich schon passen) - die Position des Stellhebels ist NUR von der Impulslänge abhängig.

Im Falle des Servo-Testers sind Mikrosekunden für ein Servo an Port 8 also ganz sicher falsch, ebenso wie Gradzahlen für ein Servo an Port 9 - das gibt der Servo-Tester nicht her.

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#68 von Lindilindwurm , 23.10.2016 12:38

Hallo Bodo,

Dankeschön! Habe ich es recht verstanden, dass die analoge Seite die im Bild ist? Lötaugen finde ich da nicht, sondern die im Foto zu sehenden Pins - oder muss ich woanders suchen?



Danke und viele Grüße Lindi


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#69 von Bodo , 23.10.2016 21:50

Hallo Lindi,

auf der Seite https://www.ntu.edu.sg/home/ehchua/progr...no/Arduino.html findest Du ein Layout des Arduino UNO:



Da das Shield kontakt-kompatibel zum UNO sein muss, entsprechen die Kontakt-Löcher am Rand der Pin-Belegung des UNO. Also rechts unten auf Deinem Bild hast Du die Kontakt-Augen für A0-A5. Links daneben sind noch mal 6 Kontakte, beginnend mit V(in) ungefähr neben A1 und GND ungefähr neben A0 (da, wo das Poti dranhängt. Wichtig ist, dass V(in) + und GND - sein muss. Im Bild steht da 9V-Batterie, aber das kann alles zwischen 7 und 12 V sein ... Bei mir sind die Bezeichnungen auf der Unterseite des Boards auch so aufgedruckt, aber das muss natürlich nicht immer so sein. Die Belegung der Pins kann aber nicht anders sein, da man es sonst nicht (mit eingelöteten Stiftleisten) auf einen UNO stecken könnte.

Neue Programm-Version kommt leider erst morgen - Wetter war bei uns heute zu schön ops: .

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#70 von Lindilindwurm , 24.10.2016 14:49

Danke! Mein Netzteil hat 12 V, gemessen liegen 12,15 Volt an. Passt das?


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#71 von Bodo , 24.10.2016 15:55

Hallo Lindi,

ja - die 0,15 V machen nix - das passt.

Anbei auch die neue Programmversion mit Parametern. Als Endlagen habe ich jetzt mal als Kompromiss 1200 und 2000 eingetragen, das gäbe dann 1600 als Mittelstellung. Den unteren Wert vergrößern ist ungefährlich, den oberen verkleinern auch - andersrum könnten die mechanischen Grenzen überschritten werden und das wäre nicht gut ... wenn die Glocke jetzt schief hängt, muss da noch mal korrigiert werden.
Die Periodendauer ist einmal hin und zurück in Millisekunden, 2000 ms sind 2 Sekunden, was einem Schlag pro Sekunde entspricht. Dann kommen noch Einschwingdauer, Dauer der Schwingung mit Vollausschlag und die Ausschwingdauer. Die Pause habe ich jetzt erstmal fest auf 10 Sekunden eingestellt, die gibt´s ja später nicht mehr. Auslösung durch Taster wäre dann die nächste Variante ...

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
 
// *************************************************************************************************************
// Servo-Steuerung für Modellbahn-Dioramen mit Arduino zum Ansteuern schwingender Gegenstände wie zum Beispiel
// Kinderschaukeln und Kirchenglocken.
// *************************************************************************************************************
#include <Servo.h>

Servo myservo; // erzeugt das Servo-Objekt

const int servo_pos_min = 1200; // minimale Impulslänge für Servo in Millisekunden - mit Servo-Tester
const int servo_pos_max = 2000; // maximale Impulslänge für Servo in Millisekunden - mit Servo-Tester
const long periodendauer = 2000; // Dauer einer vollen Schwingung in Millisekunden
const long einschwingdauer = 10000; // Dauer bis zum Erreichen der maximalen Schwingungsamplitude
const long maxschwingdauer = 20000; // Dauer der Schwingung mit maximalem Ausschlag
const long ausschwingdauer = 8000; // Dauer vom Beginn der Dämpfung bis zum Stillstand
int servo_mittelstellung = (servo_pos_min + servo_pos_max) / 2;
int amplitude_max = (servo_pos_max - servo_pos_min) / 2;
int amplitude = 0;
int servo_pos = servo_mittelstellung;
long start_zeit = 0;
long schwingdauer = 0;

void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
myservo.writeMicroseconds(servo_pos);
delay(2000);
start_zeit = millis();
}

void loop()
{
schwingdauer = millis() - start_zeit;
if ( schwingdauer < einschwingdauer ) {
amplitude = (millis() - start_zeit) * amplitude_max / einschwingdauer;
}
else if ( schwingdauer > einschwingdauer + maxschwingdauer & schwingdauer < einschwingdauer + maxschwingdauer + ausschwingdauer ) {
amplitude = (einschwingdauer+maxschwingdauer+ausschwingdauer-schwingdauer) * amplitude_max / ausschwingdauer;
}
else if ( schwingdauer > einschwingdauer + maxschwingdauer + ausschwingdauer) {
amplitude = 0;
delay(10000);
start_zeit = millis();
}
else {
amplitude = amplitude_max;
}
servo_pos = amplitude * sin( 6.2831853 * millis() / periodendauer ) + servo_mittelstellung ;
myservo.writeMicroseconds(servo_pos);
}
 
 



Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#72 von Lindilindwurm , 24.10.2016 19:23

Hallo Bodo,

allerherzlichsten Dank! Der Sketch ist jetzt im Arduino; die Stromanschlüsse angelötet.
Die Glocke schwingt rost:

Wie sollte ich sie nun am besten starten...?

Lindi


Lindi


 
Lindilindwurm
EuroCity (EC)
Beiträge: 1.107
Registriert am: 29.12.2007
Spurweite H0
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#73 von Bodo , 25.10.2016 17:25

Hallo Lindi,

prima, dann haben wir die erste Etappe ja geschafft ... mal sehen, wie schnell ich weiterkomme.

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#74 von Bodo , 30.10.2016 15:53

Hallo Lindi, hallo Stummis,

die zweite Entwicklungsstufe enthält jetzt eine Start-Funktion per Taster o.ä. ... Das bedeutet, die Glocke beginnt zu schwingen, wenn Port 7 kurzzeitig mit GND/Masse (-) verbunden wird:

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
 
// *************************************************************************************************************
// Servo-Steuerung für Modellbahn-Dioramen mit Arduino zum Ansteuern schwingender Gegenstände wie zum Beispiel
// Kinderschaukeln und Kirchenglocken.
// Version 1.20, Bodo Noethlich, 10/2016
// *************************************************************************************************************
#include <Servo.h>

Servo myservo; // erzeugt das Servo-Objekt
 
const int servo_pin = 9; // Port-Nummer des Servos
const int taster_pin = 7; // Port-Nummer des Start-Tasters
const int led_pin = 13; // Port-Nummer der Anzeige-LED
const int servo_pos_min = 1200; // minimale Impulslänge für Servo in Millisekunden laut Servo-Tester
const int servo_pos_max = 2000; // maximale Impulslänge für Servo in Millisekunden laut Servo-Tester
const long periodendauer = 2000; // Dauer einer vollen Schwingung in Millisekunden
const long einschwingdauer = 10000; // Dauer bis zum Erreichen der maximalen Schwingungsamplitude
const long maxschwingdauer = 20000; // Dauer der Schwingung mit maximalem Ausschlag
const long ausschwingdauer = 8000; // Dauer vom Beginn der Dämpfung bis zum Stillstand
int servo_mittelstellung = (servo_pos_min + servo_pos_max) / 2;
int amplitude_max = (servo_pos_max - servo_pos_min) / 2;
int amplitude = 0;
int servo_pos = servo_mittelstellung;
boolean taster_offen = true; // Verwendung der Pullup-Option > umgekehrte Logik, Port gegen Masse = "false"
boolean servo_running = false;
long start_zeit = 0;
long schwingdauer = 0;

void setup()
{
myservo.attach(servo_pin);
myservo.writeMicroseconds(servo_pos); // Servo in Mittelstellung fahren
pinMode(taster_pin, INPUT_PULLUP);
pinMode(led_pin, OUTPUT);
}

void loop()
{
if (servo_running) {
schwingdauer = millis() - start_zeit;
if ( schwingdauer < einschwingdauer ) {
amplitude = (millis() - start_zeit) * amplitude_max / einschwingdauer;
}
else if ( schwingdauer > einschwingdauer + maxschwingdauer & schwingdauer < einschwingdauer + maxschwingdauer + ausschwingdauer ) {
amplitude = (einschwingdauer+maxschwingdauer+ausschwingdauer-schwingdauer) * amplitude_max / ausschwingdauer;
}
else if ( schwingdauer > einschwingdauer + maxschwingdauer + ausschwingdauer) {
amplitude = 0;
servo_running = false;
}
else {
amplitude = amplitude_max;
}
servo_pos = amplitude * sin( 6.2831853 * millis() / periodendauer ) + servo_mittelstellung ;
myservo.writeMicroseconds(servo_pos);
}
else {
taster_offen = digitalRead(taster_pin);
if (taster_offen) {
digitalWrite(led_pin, LOW);
}
else {
digitalWrite(led_pin, HIGH);
servo_running = true;
start_zeit = millis();
}
}
}
 
 


Zusätzlich wird noch die Onboard-LED (Port 13) eingeschaltet, wenn die Glocke schwingt - da könnte man auch eine externe Anzeige-LED (330 Ohm Vorwiderstand) verwenden, um eine "Druckknopf-Aktion mit Anzeige" zu realisieren.

Ob der Start über einen Taster, über den Relais-Kontakt eines K84 oder über einen Optokoppler ( https://de.wikipedia.org/wiki/Optokoppler ) mit einem K83 gestartet wird, ist für das Programm unerheblich. Der Eingang des Optokopplers kann über einen 1-1,5 KOhm-Vorwiderstand direkt vom K83 angesteuert werden, während der "Ausgang" dann Port 7 gegen Masse schließt (einen passen Schaltplan suche ich noch im Netz - den brauche ich sicher nicht neu zeichnen ).

Die nächste Steigerung wird wohl darin bestehen, dass die Glocke unterschiedlich lang schwingen soll - entweder über einen Stop-Impuls, oder mit verschiedenen Start-Tastern für verschiedene Längen. Das müssen wir noch ausdiskutieren .

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.476
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Servoansteuerung für schwingende Glocke

#75 von rmayergfx , 30.10.2016 16:49

Hallo Bodo,



was ihr da auf die Beine stellt. Hätte da noch eine Idee, die wäre bestimmt Klasse:
http://www.instructables.com/id/Playing-...-using-arduino/
http://www.dx.com/de/p/uart-serial-mp3-m...xQ#.WBYW6cn1ibs

http://www.ebay.de/itm/like/272263568585...s&ul_noapp=true Würde ich persönlich bevorzugen

Sounds gibt es hier in Hülle und Fülle, da dürfte für jeden etwas dabei sein: http://www.glockenklaenge.de/

mfg

Ralf


Der Computer soll die Arbeit des Menschen erleichtern und nicht umgekehrt!
Neue Kupplungen für Faller OHU Selbstentladewagen: viewtopic.php?f=27&t=82863
Kein Support per PN !


 
rmayergfx
ICE-Sprinter
Beiträge: 5.391
Registriert am: 07.07.2008
Gleise C-K-Flex-M-Gleis
Spurweite H0, Z, 1
Steuerung MS2, 6021, 60213
Stromart AC, Digital, Analog


   


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