Welchen Servo für 360 Grad Drehung

Hallo ich wollte mal fragen was für ein Servo-Motor man denn braucht wenn dieser einfach seine Runden Dreht ohne zurück zu Drehen. Also quasi einmal 360 Grad oder 2x 360 Grad.

Ich habe einen Micro Servo 9g SG90 und bei diesem geht das ja nicht.

Ich würde gerne eine "Spindel" immer drehen für Süßsigkeiten.

Der Kollege im Video hat auf dem ersten Blick einen SG90 Servo-Motor. Aber bei Ihm dreht dieser einfach immer weiter ohne zurück auf die Anfangsposition zu drehen.

Ohne Süßigkeiten (Spindel sieht man und den Servo)

Mit Süßsigkeiten:

Danke für eure Hilfe.

Warum nimmst Du dann nicht einfach einen DC-Motor, wenn der dauernd drehen soll?

Gruß Tommy

Du kannst auch einen Stepper verwenden.

Ja der DC Motor ist etwas zu groß.
Den bekomme ich bei meinem Süßigkeiten Automat nicht rein.

Ich frage mich wie diese Person im Video das gemacht hat mit dem Motor.

Grüße

Ah der Stepper das wäre eine Möglichkeiten

Super Danke.

Wie kommst du da drauf.
Es gibt Motoren, die sind auch kleiner als Servos.

Hallo zhuj

Mach dich mal hier schlau:

1 Like

Danke paulpaulson,

darauf bin ich gerade auch gestoßen. Das sieht sehr gut aus :slight_smile:

Denke da lässt sich bestimmt was finden :wink:

Danke euch für die schnelle Hilfe.

1 Like

Es gibt Servos die auf Dauerdrehen umgebaut sind.
"360° Servo" wird zwar oft verwendet ist aber irreführend.
Der Vorteil der Dauerlaufservo ist, daß der Treiber im Servo integriert ist und daß der Motor ein Getriebe hat und darum relativ langsam dreht.

Man kann einen 180°Servo für Dauerdrehen umbauen. Dazu wird das Potentiometer, das mit der Ausgangsachse verbunden ist entfernt und durch 2 Widerstände ersetzt.
zB Anleitung: Ein Servo dreht durch | Make Magazin | heise magazine
oder
https://rctrucker.ch/wp-content/uploads/2021/03/Servo-Umbau-als-Antrieb.pdf

In diesem Fall, weil der Motor nur in eine Richtung dreht soll genügt ein Getriebemotor und als Treiber ein Transistor bzw MOSFET.

Grüße Uwe

1 Like

Ich vermute aber, dass der TO für den Lauf der Schnecke immer eine gleichbleibende Umdrehung/Bewegung braucht. Da ist dann ein Stepper oder evtl. modifizierter Servo besser geeignet.

Welcher Unterschied ist zwischen einem Getriebe(gleichstrom)motor und einem modifizierten Servo im Bezog auf mechanische Eigenschaften? Ok, der Servo hat einen eingebauten Treiber, aber lassen wir das mal außen vor.

Grüße Uwe

Ok Uwe, vermutlich ist der Unterschied nur sehr gering.
Da ich bisher noch keinen Servo "umgebastelt" habe, kann ich es nicht wirklich beurteilen.

Ok, kann ich so annehmen.
Grüße Uwe

Nun habe ich noch eine Frage.
Kann jemand mir jemand den Code Anpassen für ein Stepper Motor?
Wenn man die Hand in den Sensor hält soll dieser einmal 360Grad drehen.

Hier wäre der Code für den Servo-Motor

#include <Servo.h> 
Servo servo; 
int pos; 
int Signal = 8; 
int servopin = 9;

void setup() { 
    pinMode(Signal, INPUT); 
    servo.attach(servopin);
    servo.write(0);         //close cap on power on
    delay(1000);
    servo.detach();
     } 
void loop() { 
    int buttonState = digitalRead(Signal);
     delay(1); 
    if (buttonState == 0) 
    { 
  servo.attach(servopin);
  delay(1);
  servo.write(185);  
  delay(2000);       //wait 5 seconds
  servo.write(0);    
  delay(1000);
  servo.detach();
    }
    }

Wäre mega wenn mir das jemand anpassen könnte.

Grüße

Nein, können wir nicht. Oder besser gesagt wir können es für einen Schrittmotor machen aber hast Du dann zufälligerweise den gleichen Motor/Treiber??
Dazu müssen wir wissen Welchen Schrittmotor Du verwenden willst und welchen Treiber mit welchen Einstellungen Du nutzen willst.

Alles klar das wusste ich nicht.
Der Stepper den ich habe wäre der:
STEP Motor 28BYJ-48 5V DC

Was meinst du genau mit welchem Treiber und Einstellungen?

Also die Einstellung soll so sein. IR Sensor erkennt ein Gegenstand (Meine Hand)
dann soll der Stepper 360Grad Drehen und wieder Stoppen.

HIer ist ein Beispiel für einen 28BYJ-48 Stepper. Der Pinmode vom "Signalpin" ist "INPUT_PULLUP". Er ist also "aktiv", wenn er auf LOW gezogen wird. Wenn das Dein Infrarot Dingens anders macht, musst Du das anpassen. Die Pinnummer natürlich auch.

Codebeispiel
#include <MobaTools.h>

// motor parameters
constexpr unsigned STEPS_PER_ROTATION {2048};   // steps for a full turn
constexpr byte STEPPER_PINS[4] {4, 5, 6, 7};
constexpr byte SIGNAL_PIN {8};

MoToStepper Step1(STEPS_PER_ROTATION, FULLSTEP);

void setup() {
  pinMode(SIGNAL_PIN, INPUT_PULLUP);
  Step1.setSpeed(500);
}

void loop() {
  if (LOW == digitalRead(SIGNAL_PIN)) {
    Step1.attach(STEPPER_PINS[0], STEPPER_PINS[1], STEPPER_PINS[2], STEPPER_PINS[3]);
    Step1.doSteps(STEPS_PER_ROTATION);   // 360° rotation
    while (Step1.moving()) { ; }
    Step1.detach();
  }
}

Jedes mal, wenn der Pegel an Pin 8 auf LOW geht, wird eine 360° Drehung gemacht.

Ja mega Kai. Vielen lieben Dank genau das habe ich gesucht :smiley:

Kannst du mir noch eins sagen, wenn ich den Stepper gegen den Uhrzeiger laufen lassen möchte, was ich in dem Code anpassen muss damit er 360 Grad gegen den Uhrzeiger läuft.

Grüße

Wenn sonst am Code nichts geändert werden soll .... dreh die PIN Reihenfolge um:
Step1.attach(STEPPER_PINS[3], STEPPER_PINS[2], STEPPER_PINS[1], STEPPER_PINS[0]);

Oder den Datentyp von STEPS_PER_ROTATION in long / int ändern. Dann kann dieser auch als negativer Wert übergeben werden:


#include <MobaTools.h>

// motor and clock parameters
constexpr long STEPS_PER_ROTATION {2048};   // steps for a full turn of minute rotor
constexpr byte STEPPER_PINS[4] {4, 5, 6, 7};
constexpr byte SIGNAL_PIN {8};

MoToStepper Step1(STEPS_PER_ROTATION, FULLSTEP);

void setup() {
  pinMode(SIGNAL_PIN, INPUT_PULLUP);
  Step1.setSpeed(500);
}

void loop() {
  if (LOW == digitalRead(SIGNAL_PIN)) {
    Step1.attach(STEPPER_PINS[0], STEPPER_PINS[1], STEPPER_PINS[2], STEPPER_PINS[3]);
    Step1.doSteps(-STEPS_PER_ROTATION);   // 360° rotation
    while (Step1.moving()) { ; }
    Step1.detach();
  }
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.