Hallo.
Ich besitze ein arduino uno und cnc shield mit dem Treiber a4899 welche ein nema 17 Schritt mit 200 Schritte steuert. Was ich brauche is die Programmierung welche das motor so drehen sollte das es auf eine paralaktische Montierung erdrotation ausgleichen sollte. Ich brauche nicht genaue daten sonder nur das Konzept in welche ich die Parameter selbst anpassen kann. Bin neu bei arduino aber habe elektronik erfahrung mit PC, löten und weiteres.das ganze Set is angeschlossen und funktioniert nur es hackt am Programmierung da ich in diesem Bereich sehr wenig Erfahrung habe, durch ganze Foren hat mich nur teilweise weiter gebracht daswegen Suche ich auf diese Weise Hilfe.
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
mfg ein Moderator.
Wenn ich wüßte von was Du redest könnte ich Dir vieleicht helfen.
Grüße Uwe
Dir kann geholfen werden:
Es geht um die Nachführung eines Teleskops, vermutlich mit Kamera - damit die Sternchen nicht zu Strichen werden.
Willkommen im Forum!
Mit Deinen Angaben ist es etwas schwierig, so direkt helfen zu können.
Die Frage ist wie der mechanische und elektrische Aufbau aussieht (sprich: Wie schnell/langsam soll der Motor laufen, wie wird das versorgt etc.). Hier im Astronomieforum hat jemand sowas schon mal gemacht.
- Hast Du schon den Arduino ohne das Shield und den Motor am Laufen? (IDE, Beispielprogramm "Blink")
- Hast Du Shield und Motor schon am Laufen? (Mit welcher Bibliothek; wir empfehlen die MobaTools)
- Hast Du schon ein eigenes Programm ("Sketch") entwickelt? (dann zeigen)
- Gibt es ein (ggf. handgezeichnetes) Schaltbild?
Lass mal raus wo Du stehst, dann wird Hilfe kommen (können)
HI!
also arduino uno und das cnc shield mit dem a4899 treiber welche einen nema 17 motor mit 200 schritte arbeitet in 1/16 schritte das netzteil mit 12v 2a is an das cnc shield angeschlossen und funktioniert mit verschieden "sketches".Also ich würde meines wissens sagen hardware mässig is alle gut. Mein problem ist das ich micht mit programierung nur wenig auskenne bzw. kenne die befehle nicht.logik dahinter is mir bekannt von basic.bis jetzt kann ich sagen das ich nicht honbekomme das sich der motor "langsam genug " drehet. jetzt habe ich einbischen mit "accelsteper" und das klapt schon besser.was nicht so ganz klapt is zumbeispiel: digitalWrite(stepPin, HIGH);
delayMicroseconds(700);
digitalWrite(stepPin, LOW);
delayMicroseconds(700);
} wenn ich jetzt delay erhöhe müste der motor langsamer laufen oder verstehe ich das falsch? weil das funktioniert nur bis zum gewissem punkt und wenn ich das wert für delay noch weiter erhöhe dann wird der motor schneller? das solte nicht si sein oder?
Mal etwas Lektüre zum Einarbeiten: hier und hier
C++ (die Sprache, mit der wir hier den Arduino programmieren) hat übrigens Funktionen und Operatoren und keine Befehle.
Gruß Tommy
;D habe verstanden und Danke!
Das ist generell schon richtig.
Das solltest du mit einem möglichst kleinen Testsketch verifizieren. Wenn da unerklärliche Sachen auftreten solltest du diese so genau wie möglich ansehen, beschreiben und dokumentieren (Am besten mit dem kleinen Testsketch und dessen Test-Ausgaben und Ergebnissen)
Wenn du die Referenz zu delayMicroseconds ansiehst, stolperst du evtl. über
Derzeit ist der größte Wert, der eine genaue Verzögerung erzeugt, 16383
Beantwortet das evtl schon deine Frage?
Ja das hilft mir danke dir, hab mir schon gedacht das irgendwas nicht richtig war aber jetzt macht sinn.