- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 41

Thema: Alles PWM oder wie?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180

    Alles PWM oder wie?

    hallo allerseits,

    diese teile werden vielerorts angeboten, sie würden für manche anwendung ja auch reichen...

    In der überschrift wird auch PWM versprochen, weiter im text aber nicht mehr erwähnt. Auch fehlen mir die "EN" pinns irgendwie...

    Habe ich was übersehen? Hat jemand die dinger schon mal eingesetzt?
    gruß inka

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von witkatz
    Registriert seit
    24.05.2006
    Ort
    NRW
    Alter
    54
    Beiträge
    542
    Blog-Einträge
    17
    Zitat Zitat von inka Beitrag anzeigen
    Auch fehlen mir die "EN" pinns irgendwie
    "En" Pin brauchst du für PWM nicht zwingend. Auch mit In1/In2 kannst du PWM ausgeben, sogar einfacher als mit In1/In2/En. Ich nehme gerne z.B. den L9110, der so angesteuert wird.
    Was mir fehlt, ist eine vollständige Beschreibung mit Wahrheitstabelle und Timing Diagramm. Hinter dem Hinweis auf Truth Table und function diagram sehe ich in der Beschreibung nichts, wahrscheinlich nicht vollständig kopiert.
    Ein gescheites Datenblatt zu diesem MXL508 oder wie auch immer der Chip heißt wäre wahrscheinlich bei dem Preis zu viel verlangt. Was der L298N in der Beschreibung zu suchen hat habe ich auch nicht begriffen.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Sieh dir mal die Breakouts für den TB6612FNG an. Die haben je einen expliziten PWM-Eingang pro H-Brücke und kosten aus China genauso unverschämt wenig.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Mit den selben Bildern wird das auch als L298N Modul angeboten.
    https://www.banggood.com/de/5pcs-Dua...p-1167075.html

    Demnach hat der Chip 2 En Eingänge. Die sind einfach fest auf High gelegt.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von witkatz
    Registriert seit
    24.05.2006
    Ort
    NRW
    Alter
    54
    Beiträge
    542
    Blog-Einträge
    17
    Zitat Zitat von i_make_it Beitrag anzeigen
    Mit den selben Bildern wird das auch als L298N Modul angeboten.
    Mit dem L298N hat dieser Chip aber nichts zu tun, ist vielleicht nur ein Suchbegriff.
    Ich vermute, dass hier der fernöstliche MX1508 oder so was ähnliches verbaut ist.

    - - - Aktualisiert - - -

    Zitat Zitat von inka Beitrag anzeigen
    hast Du da evtl. ein codebeispiel?
    so in der Art mache ich das:
    Code:
    void Motor1Forw(char velo){
        Motor1_In1 = 0;
        Motor1_Pwm = velo;
    }
    void Motor1Backw(char velo){
        Motor1_In1 = 1;
        Motor1_Pwm = 255 - velo;
    }

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    @Witzkatz: stimmte das Pinout von dem MX1508 passt zumindest auf das was man auf der Platine sieht.

    @inka: Enable braucht man nicht unbedingt.
    Bei größeren Motorreglern nimmt man das halt, um sicherzustellen das die Steuerung bereit ist bevor die Motoren bestromt werden.
    Das verhindert, daß beim Einschalten die Motoren rucken weil unbestimmte Pegel irgendwo anliegen, die der Regler als Fahrbefehl versteht.
    Pro Motor braucht es halt bei dem Teil je ein PWM für Clockwise und ein PWM für Counter Clockwise.
    Ob man das Richtungssignal auf 1 legt und per Enable ein PWM ausgibt oder ob man das PWM direkt an den Richtungsausgängen ausgibt ist eine reine Software Sache.
    So spart man halt pro Motor einen Pin (bei DIR-CW plus DIR-CCW).

    Wenn man so eine Treiber mit einem DIR und einem PWM ansteuern will, braucht man zwei UND und ein NICHT Gatter.
    PWM je auf IN1 der beiden UND's und DIR einmal auf IN2 des einen UND und einmal auf das NICHT und von da auf IN2 des zweiten UND.
    Dann kann man die Ausgänge der Beiden UND's auf den Treiber legen.

    Coden ist aber schneller und braucht keine Hardware.
    Geändert von i_make_it (20.02.2018 um 16:26 Uhr)

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von witkatz Beitrag anzeigen
    so in der Art mache ich das:
    Code:
    void Motor1Forw(char velo)
    {
        Motor1_In1 = 0;
        Motor1_Pwm = velo;
    }
    void Motor1Backw(char velo){
        Motor1_In1 = 1;
        Motor1_Pwm = 255 - velo;
    }
    so habe ich versucht das umzusetzen:

    Code:
    int Motor_1_Pwm;
    .
    .
    .
    
    void Motor_1_Backw(char velo)
    {
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      Motor_1_Pwm = 255 - velo;
    }
    mit dem aufruf von "Motor_1_Backw(200);"

    dreht der motor zwar, allerdings unabhängig von der zahl "velo", also immer voll power...
    gruß inka

  8. #8
    HaWe
    Gast
    Zitat Zitat von inka Beitrag anzeigen
    so habe ich versucht das umzusetzen:

    Code:
    int Motor_1_Pwm;
    .
    .
    .
    
    void Motor_1_Backw(char velo)
    {
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      Motor_1_Pwm = 255 - velo;
    }
    mit dem aufruf von "Motor_1_Backw(200);"

    dreht der motor zwar, allerdings unabhängig von der zahl "velo", also immer voll power...
    du übergibst doch auch überhaupt keinen velo-Wert an irgendeienen Pin - wie soll es dann was bewirken?
    Stattdessen musst du 1 pin HIGH oder LOW setzen für die Richtung und den anderen per PWM (velo) für die Geschwindigkeit.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Du übergibst fest "200"?
    Dann kann aber auch nur der Wert verarbeitet werden.

    Schon mal Versucht einfach eine Geschwindigkeitsrampe zu erzeugen?
    0 bis max. Rückwärts und zurück zu 0 und bis max. Vorwärts und zurück zu 0.

    Bsp.:
    Code:
    int speed;
    
    void loop(){
      for (int speed=0; speed <=255; speed++){
        void Motor_1_Backw(speed);
        delay(10);
      }
      for (int speed=255; speed >=0; speed--){
        void Motor_1_Backw(speed);
        delay(10);
      }
      for (int speed=0; speed <=255; speed++){
        void Motor_1_Forw(speed);
        delay(10);
      }
      for (int speed=255; speed >=0; speed--){
        void Motor_1_Forw(speed);
        delay(10);
      }
    }
    
    void Motor1Forw(char velo){
      Motor1_In1 = 0;
        Motor1_Pwm = velo;
    }
    
    void Motor1Backw(char velo){
      Motor1_In1 = 1;
      Motor1_Pwm = 255 - velo;
    }
    Was macht er denn mit diesem Code?

    Wenn es zu langsam ist die "delay" rauswerfen.

  10. #10
    Erfahrener Benutzer Roboter-Spezialist Avatar von witkatz
    Registriert seit
    24.05.2006
    Ort
    NRW
    Alter
    54
    Beiträge
    542
    Blog-Einträge
    17
    Zitat Zitat von inka Beitrag anzeigen
    so habe ich versucht das umzusetzen:

    Code:
    int Motor_1_Pwm;
    .
    .
    .
    
    void Motor_1_Backw(char velo)
    {
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      Motor_1_Pwm = 255 - velo;
    }
    Ich hätte vielleicht etwas Erklärung dabei schreiben sollen, sorry. Also du wählt bspsw. IN1 für Richtung und IN2 für speed. Dann musst du auch IN1 an einen Digitalausgang und IN2 an den PWM Ausgang anschließen.
    Wenn IN1 == 0 dann geht der PWM Wert proportional zu velo
    Wenn IN1 == 1 dann (Richtungsumkehr) geht der PWM Wert umgekehrt proportional zu velo, von 100% auf 0.
    Bei mir ist der PWM Wert vom typ char, daher diese 255 - velo für Richtungsumkehr. Bei int oder anderen Wertebereichen muss man die Funktion entspr. anpassen.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. 2 Atmegas verwenden oder doch alles in einem
    Von moritz31 im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 12.03.2014, 18:02
  2. Alles Matrix, oder?
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 1
    Letzter Beitrag: 21.12.2012, 22:30
  3. Real Time Clock oder Uhrenquarz? Alles möglichst stromarm
    Von MelMan im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 08.06.2011, 18:01
  4. Was brauche ich alles
    Von Haveaniceday im Forum AVR Hardwarethemen
    Antworten: 17
    Letzter Beitrag: 02.08.2007, 13:07
  5. Ist in dem BAusatz alles drin, oder braucht man noch was ???
    Von michiE im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 3
    Letzter Beitrag: 07.03.2005, 17:10

Berechtigungen

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

12V Akku bauen