Hallo,
Ich habe vor ein Projekt zu starten, bei dem ein Schritt Motor an eine Gewindespindel montiert ist.
Dieser soll ein auf der Spindel befestigtes Objekt über einen längeren Zeitraum zufällig hoch und runter fahren. Kann ich die random funktion so nutzen, dass der Motor sie wie eine Liste abarbeitet?
Also wenn er den ersten Wert erreicht hat, zum nächsten geht?
Um das ganze zu Starten und einen Random Seed zu generieren könnte ich doch einen Taster verwenden, den ich beim ersten drücken zu anschalten verwende und bei zweiten drücken zum Seed generieren(also die Zeit dazwischen).
Da ich noch nie etwas mit arduino gemacht habe, würde ich gerne wissen ob man das so umsetzen kann und wie ihr die Komplexität einschätzt.
Ich brauche auch noch einen anderen motor, der sich gleichmäßig dreht sobald der Motor an der Spindel anfängt die Zahlen abzufahren. Wie binde ich den da am besten ein?
Als Anfänger ist es leichter erst mal die Beispiele in der Arduino-Software durchzukauen und zu verstehen versuchen, als gleich ein eigenes Projekt lösen zu wollen.
Im Leben ist es immer so: was man kann ist leicht und alles was man (noch) nicht kann sau schwer.
Super, Danke für die schnellen antworten!
Welches Board würde sich dafür eingen? @combie ich brauche einen Endschalter an der Spindel?
Wenn ich ausmesse wie viele Umdrehungen der Motor auf der Spindel machen kann bis er oben und unten anschlägt kann ich doch in dem Werteberiech die zufälligen Zahlen generieren lassen, oder? Evtl meinst du aber auch etwas anderes
Um das ganze zu Starten und einen Random Seed zu generieren könnte ich doch einen Taster verwenden, den ich beim ersten drücken zu anschalten verwende und bei zweiten drücken zum Seed generieren(also die Zeit dazwischen).
Eigentlich brauchst du nur eine Taster-Betätigung:
Ein guter randomSeed Wert ist die Zeit zwischen Reset und erstem Taster-Betätigen durch millis() Aufruf.
Hat den Nebeneffekt, dass du zum Test auch eine reproduzierbare Sequenz generieren kannst, indem du den Taster schon vor dem Start drückst.
Eignen wird sich jeder Arduino, also --wenn du so fragst-- ein Uno.
zuppn:
Ah klar, ich brauche eine definierte Position. Vielen Dank!
Du brauchst einen Referenzpunkt, der nach dem Einschalten angefahren wird oder einen absoluten Wegmesser für die aktuelle Position.
Zur Sicherheit sollten auch Endschalter eine unkontrollierte Bewegung beenden können. In größeren Anlagen ist sowas Pflicht. Denn eine Spindel braucht nur wenig Drehmoment, um Schaden anzurichten. Eingeklemmte Gliedmaßen bringen selten Freude, also wäre auch ein NotAus-Taster zu erwägen.
Einen Homeschalter ( Endschalter oben oder unten) brauchst Du damit Du eine definierte Position hast. Der kann gleichzeitig der entsprechende Endschalter sein. Ein zweiter Endschalter auf der anderen Seite braucht es nicht unbedingt, schadet aber auch nicht.
Wie Das genau aussehen soll, also wer sich hier wirklich bewegt, ist mir noch nicht ganz klar.
Also ob der Gewindestab gedreht wird, oder ob der Motor eine Mutter dreht und sich so am Gewindestab 'hoch schraubt'.
Ist aber. für die Logik, egal.
Endschalter würde ich zwei vorsehen, Diese beenden und SPERREN das Programm - ein Verfahren (von Hand) darf dann nur mit drei Tastern möglich sein, HAND, UP, DN.
Das jetzt nicht nur, wegen der Sicherheit, sondern, damit das Gerät Nichts (auch sich selbst) kaputt drückt.
Umdrehungen von ganz Unten bis ganz oben kann man auszählen oder -messen (M6 hat eine Steigung von 1mm pro Umdrehung, nur Nebenbei).
Mal die Anzahl an Schritte pro Umdrehung, hast Du Deine MAX-Position (MIN wird wohl Null sein).
Eine Art REF-Fahrt oder Homeing wirst Du auch brauchen, um auf einen bekannten Wert zu kommen.
Hier könnte man, NUR WÄHREND DER REF-FAHRT, den unteren End-Schalter als Referenz benutzen.
Fahrt, bis der Untere betätigt wird, langsame Fahrt in Gegenrichtung, bis der Schalter wieder frei ist - Position 0 erreicht.
Wenn der Obere betätigt wird, ist trotzdem Schluß!!
Nun eine Endposition auswürfeln und dahin fahren - je nach Richtung hoch oder runter (klar, beim Start geht's nur hoch, wir sind ja ganz unten).
Auf der Position ggf. eine Wartezeit und dann eine neue Endposition auswürfeln - bis die Batterie leer ist