-         

Ergebnis 1 bis 3 von 3

Thema: Schrittmotor zittert nur

  1. #1

    Schrittmotor zittert nur

    Anzeige

    Hallo Forum,

    ich habe ein Problem mit der Ansteuerung meines Schrittmotors. Zur Zeit gehe ich davon aus das es sich um ein Hardwareproblem handelt. Falls sich rausstellen sollte das es ein Softwareproblem ist bitte ich die Mod´s meine Frage zu verschieben.

    Ich nutze einen NEMA 17 Schrittmotor:
    Stepper Motor DC 5V Schrittmotor
    Specs
    Nema 17 (42x42)
    200 step
    1.8°Angle
    200 gram
    Torque 130 m/Nm
    4 Wires
    Pairs
    Red & Red White
    Green & Green White
    Compatible
    Ramps
    A4988

    Laut Datenblatt ist die Kabelbelegung:
    1B ROT
    1A ROT/WEIß
    2A GRÜN
    2B GRÜN/WEIß

    Als Treiber nutze ich einen L298N Schrittmotorenendstufe Dual H Brücke die ich folgendermaßen angeschlossen habe ( Bild angefügt )

    Als Code nutze ich folgendes python Script:
    Code:
    import RPi.GPIO as GPIO
     import time
    
     GPIO.setmode(GPIO.BCM)
     GPIO.setwarnings(False)
    
     enable_pin = 18     # nur bei ULN2003 Treiber IC wichtig
     coil_A_1_pin = 23   # 
     coil_A_2_pin = 24   # 
     coil_B_1_pin = 17   # 
     coil_B_2_pin = 18   # 
    
     # anpassen, falls andere Sequenz
     StepCount = 4
     Seq = range(0, StepCount)
     Seq[0] = [0,1,0,0]
     Seq[1] = [0,1,0,1]
     Seq[2] = [0,0,0,1]
     Seq[3] = [1,0,0,1]
     Seq[4] = [1,0,0,0]
     Seq[5] = [1,0,1,0]
     Seq[6] = [0,0,1,0]
     Seq[7] = [0,1,1,0]
    
     GPIO.setup(enable_pin, GPIO.OUT)
     GPIO.setup(coil_A_1_pin, GPIO.OUT)
     GPIO.setup(coil_A_2_pin, GPIO.OUT)
     GPIO.setup(coil_B_1_pin, GPIO.OUT)
     GPIO.setup(coil_B_2_pin, GPIO.OUT)
    
     GPIO.output(enable_pin, 1)
    
     def setStep(w1, w2, w3, w4):
         GPIO.output(coil_A_1_pin, w1)
         GPIO.output(coil_A_2_pin, w2)
         GPIO.output(coil_B_1_pin, w3)
         GPIO.output(coil_B_2_pin, w4)
    
     def forward(delay, steps):
         for i in range(steps):
             for j in range(StepCount):
                 setStep(Seq[j][0], Seq[j][1], Seq[j][2], Seq[j][3])
                 time.sleep(delay)
    
     def backwards(delay, steps):
         for i in range(steps):
             for j in reversed(range(StepCount)):
                 setStep(Seq[j][0], Seq[j][1], Seq[j][2], Seq[j][3])
                 time.sleep(delay)
    
     while True:
         delay = raw_input("Zeitverzoegerung (ms)?")
         steps = raw_input("Wie viele Schritte vorwaerts? ")
         forward(int(delay) / 1000.0, int(steps))
         steps = raw_input("Wie viele Schritte rueckwaerts? ")
         backwards(int(delay) / 1000.0, int(steps))
    Wenn ich das Script starte und den Motor vor oder zurückfahre zittert der Moror nur ohne sich zu drehen. Hätte jemand eine Idee was ich falsch gemacht habe ?

    Gruß

    Frank
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Stepper.jpg  

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    30
    Beiträge
    1.937
    Eigentlich wird für Schrittmotoren noch der zusätzliche Treiber L297 verwendet, der nimmt dir da viel Arbeit ab. Ist auch günstiger, da der über eine Stromregelung verfügt und du somit eine höhere Spannungsversorgung verwenden kannst. Besteht das Problem denn immer oder nur, wenn du schneller fahren willst? Sind alle Phasen richtig angeschlossen?
    AI - Artificial Idiocy

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    938
    Beim L298 ist spezifiziert, dass die Brückenversorgungsspannung um mindestens 2,5V höher sein muss als V_IH.
    Letzteres deute ich als den High-Spannungspegel der steuernden Logikleitungen und nicht als die 'Mindestspannung für H-Erkennung' (die ihrerseits wiederum von der tatsächlichen Logik-Versorgungsspannung abhängig sein wird)

    Hast du einen Stepper mit deutlich höherem Wicklungswiderstand (einige 'zig Ohm) greifbar, den du anschließen und mit höherer Brückenversorgungsspannung (ab etw 8V) testen kannst?

Ähnliche Themen

  1. [ERLEDIGT] Servo mit externem Potentiometer zittert
    Von Lukas. im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 30.05.2012, 09:52
  2. Gelöst: Servo zittert an AtMega8
    Von DEC im Forum Assembler-Programmierung
    Antworten: 6
    Letzter Beitrag: 23.03.2008, 03:23
  3. Schrittmotor stottert nur
    Von funmaker im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 30.08.2007, 00:36
  4. Schrittmotor zittert
    Von schmek im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 17.07.2006, 23:20
  5. Schrittmotor nur an Mega8 ?
    Von khazad im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 04.03.2005, 01:04

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •