-
        

+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Bitte um Unterstützung bei MC33926 Dual Motor Controller an Arduino Micro

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.08.2006
    Beiträge
    17

    Bitte um Unterstützung bei MC33926 Dual Motor Controller an Arduino Micro

    Anzeige

    Anscheinend muss jeder Motor mit BEIDEN Anschlüssen auf je einen PWM-Ausgang. Aber mir ist unklar, ob die IN1 und 2 oder die PWM-Eingänge zu benutzen sind. Vielleicht hat jemand schon praktische Erfahrung, die er weitergeben kann.
    Danke für jeden Tip

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    Hier wird das ganze mit Grafik und Tabelle schön erklärt http://www.pololu.com/docs/0J55/4.b

    Allein aus der beschreibung bin ich auch nicht ganz schlau geworden

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    18.08.2006
    Beiträge
    17
    Zunächst mal vielen Dank für die Antwort. Leider habe ich den Controller nicht präzise genug beschrieben, es ist folgender, der etwas mehr Anschlussmöglichkeiten bietet: http://www.pololu.com/catalog/product/1213. Ich probier jetzt einfach mal ...

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    18.08.2006
    Beiträge
    17
    HELP - Wer hat Erfahrung mit dem MC33926 Dual Motor Driver CARRIER (NICHT Shield). Benötige genaue Anleitung der Mindestverbindung zum Arduino und am Besten einen Democode. Mit dem Democode für den Shield läuft nichts.
    Vielen Dank für Eure Tips und ein schönes Wochenende. Mein fällt anscheinend dem Frust zum Opfer

  5. #5
    Da steht zwar jetzt "ERLEDIGT" im Titel, aber da die Lösung nicht gepostet wurde und mir sie auch weitergeholfen hätte poste ich hier mal die Belegung für den Minimalbetrieb:

    Vin: Stromquelle Motoren

    Arduino +5V an:
    • VDD
    • EN(zum Aufwecken des Controllers, sonst stby Betrieb)


    GND an:
    • GND
    • M1D1
    • M2D1


    Geschwindigkeit über PWM an M1D2 / M2D2.
    Richtung über M1IN1=HIGH M1IN2=LOW oder umgekehrt.
    Code:
    const int M1D2 = 11; 
    const int M1IN1 = 12;
    const int M1IN2 = 13;
    int i;
    
    void setup(){
      pinMode(M1D2, OUTPUT);
      pinMode(M1IN1, OUTPUT);
      pinMode(M1IN2, OUTPUT);
      
      digitalWrite(M1IN1,HIGH);
      digitalWrite(M1IN2,LOW);
    
    
      analogWrite(M1D2,128);
    }
    
    void loop(){
      for (i=0; i<255;i=i+10){
        analogWrite(M1D2,i);
        delay(250);
      }
      delay(5000);
      for (i=255; i>0;i=i-5){
        analogWrite(M1D2,i);
        delay(100);
      }
      
      digitalWrite(M1IN1,LOW);
      digitalWrite(M1IN2,HIGH);
      analogWrite(M1D2,0);
      
      for (i=0; i<255;i=i+10){
        analogWrite(M1D2,i);
        delay(250);
      }
      delay(5000);
      for (i=255; i>0;i=i-5){
        analogWrite(M1D2,i);
        delay(100);
      }
      delay(1000);
      digitalWrite(M1IN1,HIGH);
      digitalWrite(M1IN2,LOW);
     
    }
    Aber eventuell hat einer von Euch schon eine Intelligentere/Portsparendere Belegung gefunden.
    "Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher."
    Albert Einstein

  6. #6
    Versuche gerade mit dem Controller zwei Motore über den Raspberry zu steuern, was jedoch nicht klappt.
    Mir ist nicht klar, wie ich den MC33926 mit dem PI konnekten muß.

    Mit einem Controller L298N klappt es und der Python-Code sieht so aus.

    import RPi.GPIO as GPIO
    from time import sleep

    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)

    rr1 = 19
    rr2 = 26
    lr1 = 27
    lr2 = 17
    GPIO.setup(rr1,GPIO.OUT)
    GPIO.setup(rr2,GPIO.OUT)
    GPIO.setup(lr1,GPIO.OUT)
    GPIO.setup(lr2,GPIO.OUT)
    GPIO.setup(pwm,GPIO.OUT)

    p = GPIO.PWM(27, 50)
    p.start(0)

    #Ein Rad läuft mit voller Geschwindigkeit, das zweite wird kontinuierlich schneller bis 100% erreicht sind
    def spirale():
    print("Spiralfahrt")
    GPIO.output(rr1, True)
    for i in range(20,100):
    p.ChangeDutyCycle(i)
    sleep(0.6)
    print("Ende")

  7. #7
    Mit dieser Konfiguration klappt es nun.
    mc33926.jpg
    import RPi.GPIO as GPIO
    #import distance as abstand
    from time import sleep

    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)

    rv = 10 #rechte Rad vorwärts
    rz = 9 #rechte Rad rückwärts
    rpwm = 25 #rechte Rad Geschwindigkeit
    lv = 17 #linke Rad vorwärts
    lz = 27 #linke Rad rückwärts
    lpwm = 24 #linke Rad Geschwindigkeit
    en = 22 #Motortreiber aktivieren

    GPIO.setup(rv,GPIO.OUT)
    GPIO.setup(rz,GPIO.OUT)
    GPIO.setup(lv,GPIO.OUT)
    GPIO.setup(lz,GPIO.OUT)
    GPIO.setup(en,GPIO.OUT)
    GPIO.setup(rpwm,GPIO.OUT)
    GPIO.setup(lpwm,GPIO.OUT)

    GPIO.output(en, True)

    pwmr = GPIO.PWM(rpwm, 50)
    pwmr.start(0)

    pwml = GPIO.PWM(lpwm, 50)
    pwml.start(0)

    def vor():
    GPIO.output(rv, True)
    GPIO.output(lv, True)
    GPIO.output(rz, False)
    GPIO.output(lz, False)
    pwml.ChangeDutyCycle(100)
    pwmr.ChangeDutyCycle(100)
    Wenn ich die Doku richtig verstanden habe, müßte man das PWM-Signal auch auf die N1 und N2 geben können um noch Verbindungen einzusparen.

+ Antworten

Ähnliche Themen

  1. USB-ATxmega-Controller für den Dual-In-Line-Sockel
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 04.04.2012, 14:30
  2. 2A Dual Motor Controller
    Von Projekt 2252 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 2
    Letzter Beitrag: 21.02.2011, 19:33
  3. Antworten: 0
    Letzter Beitrag: 15.03.2008, 18:28
  4. Antworten: 2
    Letzter Beitrag: 30.10.2007, 20:33
  5. Dual-Controller LCD mit Bascom?
    Von DarkNet im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 14.03.2006, 23:20

Stichworte

Berechtigungen

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