-         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: RN-Control und Schrittmotor

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    05.12.2004
    Beiträge
    11

    RN-Control und Schrittmotor

    Anzeige

    Hallo miteinander,

    ich habe leider beim Browsen durch's Forum keine Antwort auf meine Frage gefunden. Ich bräuchte ein Code-Schnipsel oder auch nur ein Gerüst in Bascom um einen Schrittmotor mit dem RN-Control, also L293D anzusteuern.

    Ich hab seit 1 Woche ein RN-Control. Ist jetzt fertig aufgebaut und funzt einwandfrei. Desweiteren hab ich einen bipolaren Saia Schrittmotor vor mir liegen.

    Ich bin zwar Softwareentwickler, bin mit Atmel aber bisher nicht in Berührung gekommen. Habe mich auch etwas in die Materie mit Schrittmotoren eingelesen. Aber jetzt setzt es aus.

    Kann mir jemand weiter helfen? Ich weiß, daß die Frage nach RN-Control und Schrittmotor schon einige male gestellt wurde. Leider bisher noch unbeantwortet.

    Grüße,

    Harry

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    28.04.2004
    Ort
    Nähe Köln
    Alter
    51
    Beiträge
    247
    Hallo

    Wo klemmt es denn genau ?

    Grundsätzlich brauchst du ja nur ein bestimmtes Bit muster auf den Port zu legen und gut ist.

    Ich lege mit das Bitmuster gerne in ein Array an. Dann brauchst du nur eine Variable hoch oder runter zählen lassen und schon hast du immer das richtige Bitmuster auf dem Port.

    Hinzu kommt dann noch, das die 4 Leitungen auf 2 Port verteilt sind. Spielt aber auch keine Rolle.

    Sag mal wo es klemmt, dann schauen wir weiter.

    MFG
    Dieter

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.584
    Hey Harry, stehe gerade vor dem EXAKT gleichen "Problem". Lerne auch gerade hauptsächlich durch Codeschnipsel, habe aber leider ebenfalls noch nix Passendes für unser gemeinsames Anliegen gefunden.

    Könnte nicht vielleicht bitte mal Jemand eine kurze Routine für `nen bipolaren SM an den Motoranschlüssen des RN-Control schreiben. ?

    Wäre super - THX !!!

    Gruss aus Bremen
    Andree

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also das Bitmuster lässt sich einfach so erstellen, aber frag mich nciht, was mit den Eingängen/Ausgängen Enable A/B und Sen A/B passiert.

    Code:
    Config Portb = Output
    
    A Alias Portb.0
    B Alias Portb.1
    C Alias Portb.2
    D Alias Portb.3
    
    Portb = 0
    
    Dim Zeit As Byte
    
    Zeit = 10
    
    Do
    A = 1 : C = 0                                               'A und D (nach erstem Durchlauf)
    Waitms Zeit
    D = 0 : B = 1                                               'A und B
    Waitms Zeit
    A = 0 : C = 1                                               'B und C
    Waitms Zeit
    B = 0 : D = 1                                               'C und D
    Waitms Zeit
    
    Loop

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.584
    ...danke Dir, so kann ich es nachvollziehen - per output der LED`s am Port C funktioniert es einwandfrei und nun nachvollziehbar. Muss mir gleich mal die entsprechenden Pins der Ports b,c,d richtig zurechtpflücken um den Motor am Treiber-IC anzusteuern. (Frage mich nun allerdings, warum nicht nur lediglich ein kompletter Port für die Ansteuerung der Motoren genommen wurde, sondern die Kombination von Pins aus drei Ports)

    Hast mir aber schon mal sehr geholfen !!!

  6. #6
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.016
    Blog-Einträge
    1
    Du kannst es alternativ auch recht übersichtlich mit einer Funktion machen. Hab leider kein komplettes Beispiel zur Hand, aber so in etwa könnte es aussehen:


    Code:
    Sub Motorstep( )
    
        Incr Ilinksschritt 
         If Ilinksschritt > 4 Then
               Ilinksschritt = 1
         End If
    
        Select Case Ilinksschritt                               'Schritt für Linken Motor
          Case 1:
             Links_a = 1
             Links_b = 0
             Links_c = 1
             Links_d = 0
          Case 2:
             Links_a = 1
             Links_b = 0
             Links_c = 0
             Links_d = 1
          Case 3:
             Links_a = 0
             Links_b = 1
             Links_c = 0
             Links_d = 1
          Case 4:
             Links_a = 0
             Links_b = 1
             Links_c = 1
             Links_d = 0
        End Select
    
    End Sub
    Die Bezeichnungen Links_a , Links_b, Links_c, Links_d sind in diesem Fall die 4 Ports wo der L293D Motortreiber dran hängt.
    Mit jedem Aufruf der Funktion macht der Motor einen Schritt!
    Vielleicht schafft es mal jemand zeitlich bei Gegenheit ein kleines Demo dazu in Download Bereich zu posten.

    Gruß Frank

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    05.12.2004
    Beiträge
    11
    Danke an alle,

    das mit dem Bitmuster hab ich auch geschnallt. Nur frag ich mich, ob Pwm1a etc. nicht auch noch was damit zu tun hat? Ich mach's folgendermaßen, aber es passiert rein gar nichts:

    erstmal Originalcode aus RnControlTest.bas
    Config Pinc.6 = Output 'Linker Motor Kanal 1
    Config Pinc.7 = Output 'Linker Motor Kanal 2
    Config Pind.4 = Output 'Linker Motor PWM
    'Ports für rechten Motor
    Config Pinb.0 = Output 'Rechter Motor Kanal 1
    Config Pinb.1 = Output 'Rechter Motor Kanal 2
    Config Pind.5 = Output 'Rechter Motor PWM

    und dann:
    Sub Motortest()
    'Linker Motor ein

    A Alias Pinc.6
    B Alias Pinc.7
    C Alias Pinb.0
    D Alias Pinb.1

    Dim Zeit As Byte
    Zeit = 10

    Portd.4 = 1
    Portd.5 = 1

    A = 1 : C = 0
    Waitms Zeit
    D = 0 : B = 1
    Waitms Zeit
    A = 0 : C = 1
    Waitms Zeit
    B = 0 : D = 1
    Waitms Zeit
    end sub

    Wenn ich jetzt dazwischen (nach Portd.5=1) Pwm1a = 40 und Pwm1b=40 einbaue, dann summt der Motor wenigstens. Nützt zwar nix, aber wenigstens ein Lebenszeichen.

    Wer hat jetzt noch nen Tip für mich?

  8. #8
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.016
    Blog-Einträge
    1
    PWM wird bei der einfachen Schrittmotorsteuerung nicht benutzt (wenn Schrittmotor Nennspannung in etwa der Betriebsspannung entspricht).
    Du musst die Ports an Enable lediglich auf Output High schalten damit Motortreiber aktiviert wird.

    z.B.
    Portd.4 = 1
    Portd.5 = 1

    Wenn du die Ports als PWM Port definiert hast (siehe in einer Config-Anweisung, ganz am Anfang vermute ich), dann kannst du damit auch die Spannung regeln und auch Schrittmotoren mit kleiner Nennspannung anschließen.

    Gruß Frank

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    05.12.2004
    Beiträge
    11
    Hallo Frank,

    also ich hab jetzt mal folgende Config für ports gemacht:
    Config Portb = Output
    Config Portc = Output
    Config Portd = Output

    schätze, damit werden diese Anweisungen wohl überflüssig:
    Config Pinc.6 = Output

    Nun rührt sich aber immer noch nix. Was macht diese Anweisung:
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Hab ich aus derm Original rncontroltest.bas einfach mal gelassen. Ist es das was du meinst mit "Port als PWM Port definieren"?

    By the way: Mann kann doch mit nem Multimeter ausmessen, welches Adernpaar vom Schrittmotor zu einer Spule gehört, oder? Wie geht das? Nur für den Fall, daß ich meinen SAIA falsch angeschlossen hätte. Der hat nämlich Grau, Grün, Rot und Schwarz.

    Vielen Dank für Eure Hilfe,

    Harry

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    05.12.2004
    Beiträge
    11
    Hmm,

    wenn ich mit meinem Multimeter auf die vier ausgänge gehe (dort wo mein Motor angeschlossen ist), dann wird während meiner Loop nix angezeigt, sprich 0 Volt. Kommt also keine Spannung an.

    Ja, ja, ich weiss schon, Anfängerfehler. Also ihr Cracks, helft mir mal auf die Sprünge.

    Harry

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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