- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 6 von 6

Thema: RN-VN2 DualMotor (für 2 Motoren)

  1. #1

    RN-VN2 DualMotor (für 2 Motoren)

    Anzeige

    Praxistest und DIY Projekte
    Hallo an Alle!
    Kann mir jemand weiterhelfen.
    Ich habe mir RN-VN2 DualMotor (für 2 Motoren) zugelegt. Wie kann ich die zwei Motoren zum Laufen bringen. Ich bin Anfänger und hatte mir das etwas zu einfach vorgestellt. An PIN 1 z.B. 5 Volt anlegen, dann läuft Motor nach rechts, PIN 2 5 Volt anlegen, dann läuft Motor nach links.PIN 9 und 10 habe ich mit 5 Volt versorgt.
    Zusätzlich habe ich noch 12 Volt für die Hauptversorgung der Platine angeschlossen.
    Es tut sich nichts. Keine Spannung am Motoranschluss 1 feststellbar.Nachfolgend ist beschrieben, wie die PIN`s belegt sind.
    Danke für Hilfe..
    Gruß an alle



    Pin 1 Motor 1 IN 1
    Pin 2 Motor 1 IN 2
    Pin 3 Motor 2 IN 1
    Pin 4 Motor 2 IN 2
    Pin 5 Rückgabe Signal von 0 bis 2,5V (bei ca. 0-15A) das einem AD-Port die
    Strommessung für Motor 1 erlaubt (siehe dazu Tabelle nächste Seite)
    Pin 6 Enable Motor1 ein (PWM)
    Pin 7 Rückgabe Signal von 0 bis 2,5V (bei ca. 0-15A) das einem AD-Port die
    Strommessung für Motor 2 erlaubt (siehe dazu Tabelle nächste Seite)
    Pin 8 Enable Motor2 ein (PWM)
    Pin 9 GND
    Pin 10 Logikspannung 5V

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    36
    Beiträge
    1.937
    Das funktioniert üblicherweise so: wenn Motor IN 1 High und Motor IN 2 Low ist, dreht sich der Motor in eine Richtung, anders herum in die andere Richtung. Sind beide High oder Low, ist der Motor kurzgeschlossen und wird gebremst. Das alles trifft aber nur dann zu, wenn auch der Enable-Eingang auf High gelegt wird, sonst ist der Motor wie nicht angeschlossen und lässt sich frei drehen. Ich vermute mal, du hast vergessen, den Enable-Eingang anzusteuern.
    AI - Artificial Idiocy

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    Hallo Scallli,

    willkommen im Forum. Eigentilch ist diese Sache einfach, Geistesblitz hats ja schon mal kurz und knackig beschrieben. Hier die "Langform" *gg*.

    ... Ich habe mir RN-VN2 DualMotor (für 2 Motoren) zugelegt. Wie kann ich die zwei Motoren zum Laufen bringen ...
    Jetzt fehlen noch ein paar Angaben.
    - Vermutlich betreibst Du das Ganze mit der RN-Motorcontrol-Platine die auf die Treiberplatine aufgesteckt wird ! ? ! ? (mega328, programmiert erhältlich). Aber die Fragen klingen nach eigener Programmierarbeit.
    - Welche Programmiersprache ?
    - ein paar genauere Angaben eben, auch die Angabe der oder ein Link zur Controllerplatine wäre nützlich.

    ... Nachfolgend ist beschrieben, wie die PIN`s belegt sind ...
    Also die "ganz normale" Konfiguration. Die habe ich auch, läuft z.B. in meinem Archie (klick mal). Der Archie läuft mit einer 12V-Versorgung des Motors und mit den üblichen 5V für Controller. Hier ohne Bedeutung ist es, dass ich die Controllerspannung vollständig von der Motortreiberplatine mit den VN2-Chips abgekoppelt habe. Dies hat KEINEN Einfluss auf die Programmierung.

    Also zu Deiner Frage:
    Hier mal ein Auszug aus meinem Modul "Motortreiber", Programmiersprache C, dazu ein Auszug aus dem zugehörigen Header mit den #defines für die Motoransteuerung. Darin ist einmal die Belegung der Pins am Controller zu sehen -- gilt aber für meinen aktuellen mega1284, eine Anmerkung zum früheren mega328 ist dabei. Wenns noch weitere Fragen gäbe (aber ich kann kein Bascom) - dann nur zu.
    Code:
    //////////////       Auszug aus (meinem) Modul Motoransteuerung
    
    // ============================================================================= =
    // Motoransteuerung mit RN VN2 MotorControl, hier werden die Drehrichtungen gesetzt
    //   Anschlüsse am mwga1284 auf MoCo4 (eigne Platine, Stand Anfang Sep14 ) :
    //   Motor12 ist in Fahrtrichtung rechts, Rad rechts vom Motor
    //   Motor34 ist in Fahrtrichtung links,  Rad links  vom Motor
    // Motorbefehle: Mxxxxvor => Rad bewegt Gefährt VORwärts etc.
    //  A C H T U N G : Motoranschlüsse der VN haben (+) "innen" und GND/(-) "aussen"
    //                  ###############              ##########          ############
    //                      - - - - - - - - - -
    //               XTAL1  PB6___9   20___VCC                              
    //               XTAL2  PB7  10   19   PB5, SCK, _|-- 3,4 Guz           
    //                      PD5  11   18   PB4, MISO                        
    //  Mot12 _|-- 1,2  uz, PD6__12   17___PB3, MOSI, Reserve 2             
    //  Mot12 _|-- 1,2 Guz, PD7  13   16   PB2, OC1B => PWM4 für Mot34      
    //  Mot34 _|-- 3,4  uz, PB0  14   15   PB1, OC1A => PWM1 für Mot12      
    //   -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
    //      vgl. Erklärung von Hubert.G     (zu L293D)
    // https://www.roboternetz.de/community/threads/59146
    //-Wieso-benötigt-RN-Control-(1-4-)-für
    //-integrierten-Motortreiber-gleich-3-freie-Ports?p=558716&viewfull=1#post558716
    //      Zitat   Mit Setzen von Kanal 1 und 2 auf 0 ist der Motor im Freilauf
    //              Werden beide Kanäle auf 1 gesetzt wird der Motor gebremst
    //   -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
    //                -----------------------
    //  Drehrichtungsbefehle für Motor 1,2 = "rechter" Motor
    //             r r r r r r r Motor 1,2 = rechter Motor r r r r r r
    // ============================================================================= =
      void Mrechtsvor (void)        // Recht Mot12 dreht rechts=Uhrzeiger=math-negativ
     {                              //   dann fährt recht. Rad "vorwärts" = Mrechtsvor
      TCCR1A |=  (1<<COM1A1);       // Clear/set OC1A on Cmp Match enabled         132
      PORTD  |=  (1<<M11);          // => 1; Setze M1-IN1 high
      PORTD  &= ~(1<<M12);          // => 0; Setze M1-IN2 low
      m12dir  =  1;                 // m12dir ist positiv, weil Antrieb VORWÄRTS
     }                              //
    // ============================================================================= =
      void Mrechtszur (void)        // ReMot12 dreht links=Gegenuhrzeigersinn=math-pos
     {                              //   .. dann fährt rechtes Rad "rückwärts"
      TCCR1A |=  (1<<COM1A1);       // Clear/set OC1A on Cmp Match enabled         132
      PORTD  &= ~(1<<M11);          // => 0; Setze M1-IN1 low
      PORTD  |=  (1<<M12);          // => 1; Setze M1-IN2 high
      m12dir  = -1;                 // m12dir ist negativ, weils Antrieb RÜCKWÄRTS
     }                              //
    // ============================================================================= =
      void Mrechtsaus (void)        // Motor 12 aus
     {                              //
      TCCR1A &= ~(1<<COM1A1);       // Disable clear/set OC0B on Compare Match
      OCR1A   =   0;                // PWM-Wert Mot12 auf Null setzen
      PORTD  &= ~(1<<M11);          // Setze M1-IN1 low 
      PORTD  &= ~(1<<M12);          // Setze M1-IN2 low => beide low => Freilauf
      m12dir  =  0;                 //
     }                              //
    // ============================================================================= =
      void Mrechtsbrms (void)       // Motor 12 BREMSEN
     {                              //
      TCCR1A &= ~(1<<COM1A1);       // Disable clear/set OC0B on Compare Match
      OCR1A   =   0;                // PWM-Wert Mot12 auf Null setzen
      PORTD  |=  (1<<M11);          // Setze M1-IN1 high 
      PORTD  |=  (1<<M12);          // Setze M1-IN2 high => beide high => Bremsen
      m12dir  =  0;                 //
     }                              //
    //                -----------------------
    //  Drehrichtungsbefehle für Motor 3,4 = "linker" Motor
    //             l l l l l l l Motor 3,4 = linker Motor l l l l l l
    // ============================================================================= =
      void Mlinksvor (void)         // LiMot34 dreht im Gegenuhrzeigersinn = math. neg
     {                              //   dann fährt linkes Rad "vorwärts" = Mlinksvor
      TCCR1A |=  (1<<COM1B1);       // Enable clear/set OC0B on Compare Match
      PORTC  &= ~(1<<M41);          // => 0; Setze M4-IN1 low
      PORTC  |=  (1<<M42);          // => 1; Setze M4-IN2 high
      m34dir =  1;                  // m34dir ist positiv, weils Antrieb VORÄRTS
     }                              //
    // ============================================================================= =
      void Mlinkszur (void)         // Linkr Mot34 dreht im Uhrzeig=math-pos.
     {                              //   .. dann fährt linkes Rad "rückwärts"
      TCCR1A |=  (1<<COM1B1);       // Enable clear/set OC0B on Compare Match
      PORTC  |=  (1<<M41);          // => 1; Setze M4-IN1 high
      PORTC  &= ~(1<<M42);          // => 0; Setze M4-IN2 low
      m34dir = -1;                  // m34dir ist negativ, weil Antrieb RÜCKWÄRTS
     }                              
    // ============================================================================= =
      void Mlinksaus (void)         // Motor 34 aus
     {                              //
      TCCR1A &= ~(1<<COM1B1);       // Disable clear/set OC1B on Compare Match
      OCR1B        =   0;           // PWM-Wert Mot34 auf Null setzen
      PORTC  &= ~(1<<M41);          // => 0; Setze M4-IN1 low
      PORTC  &= ~(1<<M42);          // => 0; Setze M4-IN2 low
      m34dir  =  0;                 //
     }                              //
    // ============================================================================= =
      void Mlinksbrms (void)        // Motor 34 BREMSEN
     {                              //
      TCCR1A &= ~(1<<COM1B1);       // Disable clear/set OC1B on Compare Match
      OCR1B   =   0;                // PWM-Wert Mot12 auf Null setzen
      PORTC  |=  (1<<M41);          // => 1; Setze M4-IN1 high 
      PORTC  |=  (1<<M42);          // => 1; Setze M4-IN2 high => beide high = Bremsen
      m34dir  =  0;                 //
     }                              //
    // ============================================================================= =
    //      Wahrheitstabelle für die Motoren gemäß VN2 und Drehsinn-Definitionen
    // #define        M11     PD6     // M1-IN1 auf PD6     Motor 1 (12) weil er auf
    // #define        M12     PD7     // M1-IN2 auf PD7       den Anschlüssen 12 liegt
    // #define        M41     PC4     // M4-IN1 auf PC4     Motor 4 (34) weil er auf
    // #define        M42     PC5     // M4-IN2 auf PC5       den Anschlüssen 34 liegt
    // - - - - - - - - - - - - - - -
    //  MoRe        "vor"  =:  Vorwärtsfahrt        "rechts"  =:  Drehsinn Mot
    //  Beispiel    mot12 dreht mathematisch negativ bei Befehl "vor" = "rechts"
    //              vor/re  zur/li  stop    brems   vor/zur = Rad-/Fortbewegung
    //      M11=    1       0       0       1       re / li = Motordrehrichtung
    //      M12=    0       1       0       1
    // - - - - - - - - - - - - - - - -
    //      MoLi    =:      Mot34, "vor/links" dreht Motor mathematisch positiv
    //              vor/li  zur/re  stop    brems   vor/zur = Rad-/Fortbewegung
    //      M41=    1       0       0       1       re / li = Motordrehrichtung
    //      M42=    0       1       0       1
    // - - - - - - - - - - - - - - -
    
    // ============================================================================= =
    
    
    //////////// Auszug aus der Headerdatei:
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    //           RXD0,       PD0  14 A   A  27  PC5, Mot34 _|-- 3,4 Guz  *) 
    //           TXD0,       PD1  15 A   A  26  PC4, Mot34 _|-- 3,4  uz  *) 
    //           JP5-INT0,   PD2  16 EU  EU 25  PC3, JP6-IencB1             
    //           JP6-INT1,   PD3  17 EU  EU 24  PC2, JP5-IencB0             
    //  OC1B-PWM4_f-MOT34,   PD4  18 A   E  23  PC1, SDA                    
    //  OC1A-PWM1_f-MOT12,   PD5  19 A   E  22  PC0, SCL                    
    //  Mot12 _|-- 1,2  uz,  PD6  20 A   A  21  PD7, Mot12 _|-- 1,2 Guz    
    // *) Guz (math pos) und uz (Uhrzeigersinn) ##>> auf Motor-Abtriebswelle bezogen !
    // - - - - - - - - - - - - - - - -
      #define       OCPWM1  OCR1A   // PWM1 auf PD5 für Motor 12
      #define       OCPWM4  OCR1B   // PWM4 auf PD4 für Motor 34
    
      #define       M11     PD6     // M1-IN1 auf PD6       ###>>> gleich wie 328
      #define       M12     PD7     // M1-IN2 auf PD7       ###>>> gleich wie 328
      #define       M41     PC4     // M4-IN1 auf PC5       ###>>> ÄNDERUNG
      #define       M42     PC5     // M4-IN2 auf PC4       ###>>> ÄNDERUNG
      
    /* ******************    War auf MotoControl mega328:
     #define        M11     PD6     // M1-IN1 auf PD6
     #define        M12     PD7     // M1-IN2 auf PD7
     #define        M41     PB0     // M4-IN1 auf PB0
     #define        M42     PB5     // M4-IN2 auf PB5 **************************** */
    Ciao sagt der JoeamBerg

  4. #4
    Hallo Geistesblitz!
    Erst einmal vielen Dank für die schnelle Antwort. Ich habe deinen Tipp mit Enable 1 auf High umgesetzt. Jetzt funktioniert es.
    Vielleicht kannst Du mir noch folgende Frage beantworten. Wie ist die Grundeinstellung betreffend Stromabschaltung.
    Ich beabsichtige zwei Motoren anzutreiben und wenn der Strom zu hoch wird, sollen die Motoren abschalten.Die Motoren setzen zwei Hubstützen in Bewegung. Wenn die Stützen auf Widerstand stoßen und der Motor bzw. die Motoren blockieren, soll automatisch abgeschaltet werden. Benötige hierfür unbedingt das Controllerboard (z.B. RN-Control) um die Abschaltstromhöhe festzulegen oder ist RN-VN2 DualMotor-Modul schon so programmiert, das es bei einem Strom, zB. 10 Ampere automatisch abschaltet.

    Gruß
    Scalla

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    36
    Beiträge
    1.937
    Keine Ahnung, was für ein Programm benutzt du denn? An sich sollte das aber nicht schwer sein, da sich ja der Motorstrom über die Rückmeldungs-Pins auslesen lässt. Dazu musst du die aber mit einem ADC verbinden können (weiß gerade nicht, wie es mit dem Controller verschaltet ist). Im Programm sollte man dann festlegen können, ab welchem ADC-Wert die Motoren abgeschaltet werden. Dazu empfielt sich aber auch eine gescheite Filterung, außerdem ziehen DC-Motoren beim Anfahren auch schon recht viel Strom, nicht dass die gleich beim Anfahren wieder abgeschaltet werden. Kommt auch drauf an, welche Referenzspannung eingestellt ist (entweder Vcc, Aref oder die interne Referenzspannung von 2,56V). Musst dich mal mit deinem Programm auseinandersetzen, wie es dort gemacht wird, das wird doch sicher irgendwo dokumentiert sein. Wenn du selber programmierst, ist hier das Datenblatt des Atmega32 dein Freund.
    AI - Artificial Idiocy

  6. #6
    Hallo

    Ich muss mich auch mal hier melden, denn ich habe ein Problem mit RN-MotorControl und RN-VH2DualMotor Platine.
    Die beiden sind aufeinander gesteckt, genauso wie das im Shop von Robotikhardware beschrieben ist - wenn das so ist muss man ja eigentlich
    nichts mehr miteinander verbinden (von RS232 für PC mal ganz abgesehen).
    Leider funktioniert es nicht, ich habe ein Programm (in py) geschrieben welches bereits existiert und fröhlich Befehle sendet (funktioniert auch, genauso wie in der Dokumentation beschrieben) - hier habe ich schon alles überprüft.
    Der µC nimmt schon alle Befehle entgegen, nur leider dreht sich kein Motor ... es tut sich nichts.
    Wenn ich Pin1 Motor 1 IN 1 mit einem der PWM Pins verbinde, fängt er sich an zudrehen (dreht sich dann immer) - das kann ja nicht richtig sein,
    der µC soll das ja schalten.

    Ich habe mir jetzt schon min. 3x das PDF durchgelesen und viel Doku dazu, werde aber nicht schlauer.
    Was kann ich hier vergessen habe, bzw. wie wäre die Minimal Konfiguration um einen Motor einfach mal via RS232 Befehl einzuschalten/auszuschalten?

Ähnliche Themen

  1. PWM VN2 Dualmotor-Brücke für Peltier mit 18A
    Von MEA im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 1
    Letzter Beitrag: 24.11.2008, 13:01
  2. RN-VN2 DualMotor geschrottet !?!
    Von yamato1703 im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 6
    Letzter Beitrag: 25.07.2008, 18:11
  3. RN-VN2 DualMotor Frage
    Von Lunarman im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 3
    Letzter Beitrag: 04.06.2007, 14:36
  4. 2 RN-VN2 DualMotor Platinen
    Von CodeWarrior im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 4
    Letzter Beitrag: 11.07.2006, 13:08
  5. rn-vn2 Dualmotor getötet
    Von cve im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 23.06.2006, 09:49

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad