Inhaltsverzeichnis
Nachführung mit Schrittmotor und uC
Einleitung
Seit einiger Zeit (April 2024) habe ich nun ein Einsteigerteleskop mit einer Bresser EQ3-Montierung. Diese Montierung möchte ich automatisch gerne an der Stundenwinkelache nachführen mit einem Motor nachführen (lassen). Als erstes Beispiel dient mir ein Video von denm Youtube-Benutzer Volker Block mit dem Titel star tracker (fotomontierung) with step motor, simple!!!!!!. Dort wird u.a. ein Arduino-Code vorgestellt, der einen Schrittmotor mit Treiber ansteuert.
aaa
https://randomnerdtutorials.com/esp8266-nodemcu-stepper-motor-28byj-48-uln2003/
Pinout: https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/
Fritzing Bibliothek: https://github.com/mgesteiro/fritzing-parts
Berechnung
Sekunden pro Tag: 60*60*24 = 86400 Sekunden
Unertersetzung an der Stundenwinkelachse: 100
Dauer einer Umdrehung an der Stundenwinkelachse: 864 Sekunden (14.4 Min.)
Stepperumdrehung: 4096 Schritte
Geschwindigkeitsvariable: 4096 / Zeit in Sekunden
4096 / 864 = 4,740740…
Bibliothek(en)
Arduino-IDE
Stepper: https://www.arduino.cc/reference/en/libraries/stepper/
AccelStepper: https://www.arduino.cc/reference/en/libraries/accelstepper/
CheapStepper: https://github.com/tyhenry/CheapStepper
Fritzing
28BYJ-48 Driver Module ULN2003: https://github.com/mgesteiro/fritzing-parts
Installation - Wemos D1 Mini
1. Bevor der Wemos D1 Mini über die Arduino-IDE erkannt und programmiert werden kann, muss in den Einstellungen bei Zusätzliche-Boardverwalter-URLs folgende URL eingetragen werden:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
2. Nun noch in der Boardverwaltung nach esp8266 suchen und installieren.
Quellen und Verweise
test
// ULN2003 Motor Driver Pins #define IN1 5 //D1 #define IN2 4 //D2 #define IN3 14 //D5 #define IN4 12 //D6
Code Test
- test.ino
/* Programm zur Nachführung der Stundenwinkelachse mittels Schrittmotor für eie "leichte" Teleskopmontierung, wie z.B EQ2 Schrittmotormotor: 28BYJ-48 Motortreiber: ULN2003 Mikrocontroller: ESP8266 (Wemos D1 Mini) Software: Arduino-IDE Bibliothek: AccelStepper */ #include <AccelStepper.h> #define HALFSTEP 8 // 4096 Schritte pro Umdrehung //#define FULLSTEP 4 // 2048 Schritte pro Umdrehung // Variablen float spu = 4096.0; // Motorschritte pro umdrehung float u = 100.0 * 6; // UntersetzungStuWi float achse = spu / (86400.0 / u); //float eq3 = 4.740741; // Verbindung DigitalPinWemos <-> ULN2003 #define motorPin1 5 // D5 <-> IN1 ULN2003 driver 1 #define motorPin2 4 // D4 <-> IN2 ULN2003 driver 1 #define motorPin3 14 // D14 <-> IN3 ULN2003 driver 1 #define motorPin4 12 // D12 <-> IN4 ULN2003 driver 1 // Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48 AccelStepper stepper(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4); void setup() { //pinMode(LED_BUILTIN, OUTPUT); // initialize onboard LED as output //digitalWrite(LED_BUILTIN, HIGH); stepper.setMaxSpeed(achse); stepper.setSpeed(achse); } void loop() { stepper.runSpeed(); }