- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 8 von 8

Thema: Motor - Geschwindigkeitssteuerung funktioniert nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Kannst du mit einem Oszi kontrollieren ob sich das PWM-Verhältnis auch entsprechend ändert.
    Wenn der Motor unbelastet ist, kann es auch sein das er auch bei einem geringerem PWM-Verhältnis die der Spannung entsprechende max. Drehzahl erreicht.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  2. #2
    Zitat Zitat von Hubert.G Beitrag anzeigen
    Kannst du mit einem Oszi kontrollieren ob sich das PWM-Verhältnis auch entsprechend ändert.
    Wenn der Motor unbelastet ist, kann es auch sein das er auch bei einem geringerem PWM-Verhältnis die der Spannung entsprechende max. Drehzahl erreicht.

    Hm leider besitze ich kein Oszilloskop... Ich denke aber, dass die PWM-Ausgabe in Ordnung ist. Ich habe hier einen 5V und einen 24V Motor. Bei beiden besteht das gleiche Problem ob unbelastet oder belastet. Die Spannung am Motor-Terminal Ausgang bleibt auch immer konstant.

    Welche Alternativen gäbe es noch um die Spannung mit PWM-Werten zu steuern? Dass ich zum Beispiel beim PWM-Wert 0, 0V habe und bei einem Wert von 255 24V.

    Danke für die Hilfe.


    Gruss Relaxed

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Die einfachste Art zu testen ob der PWM Ausgang vom µC funktioniert ist eine LED mit Vorwiderstand dran hängen. Die Helligkeit der LED ist zwar nicht propotional der PWM, aber man kann die Änderung erkennen.
    Das was du willst sollte sich schon mit PWM machen lassen, allerdings kenne ich weder Hardware noch Software von dir.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    Zitat Zitat von Relaxed
    ... denke aber, dass die PWM-Ausgabe in Ordnung ... 5V und einen 24V Motor. Bei beiden besteht das gleiche Problem ...
    Das klingt ja eher so, als sei die PWM eben nicht in Ordnung. Keine Ahnung wie Du den L293 am arduino angeschlossen hast. Aber ich habe hier (m)einen Schaltplan und dazu gibts auch den Code für die Ansteuerung von zwei Motoren. Im Schaltplan ist eine funktionierende Anbindung des L293D, der Controller ist ein m328 (mitunter ein m168er), im Code die dazugehörige Software. Möglicherweise hilft es Dir, wenn Du diesen Code mit Deinem vergleichst. . . . .

    Code:
    /* >> 
     . . . . . 
     ===================================================================================
      Target MCU        : siehe main
      Target Hardware   : MiniD0
      Target cpu-frequ. : In der Quelle wählbar
     ===================================================================================
            Enthaltene Routinen:        Alle Motorroutinen
    . . .
      void TC0PWM_init(void) //Init Timer/Counter0 für Erzeugung des PWM-Signals
      void setPWMrechts(uint8_t speed)        //Geschwindigkeit rechter Motor
      void setPWMlinks(uint8_t speed)         //Geschwindigkeit linker Motor
      void Mrechtsvor(void) //Motor dreht im mathematischer Drehsinn
      void Mrechtszur(void) //Motor 1,2 dreht im Uhrzeigersinn
      void Mrechtsstop(void) //Motor  aus
      void Mlinksvor(void) //Motor dreht im mathematischer Drehsinn
      void Mlinkszur(void) //Motor 3,4 dreht im Uhrzeigersinn
      void Mlinksstop(void) //Motor  aus 
     ===================================================================================
      *** Versionsgeschichte:
     ====================
     x32 11Okt10 1730 In ~tst~/RC5t_17: Bitanalyse "just in time" - LÄUFT gut
            Ausgabe nur als dezimale Darstellung von Adress- und Befehlsbyte
     x00 01Nov09 1910 Übernahme des Originals, aus dem Directory 
     . . .
     ===================================================================================
      *** Aufgabenstellung : Software für R3D01    
      Original:        . . . .
     ===================================================================================
     
     ================================================================================ */
     
    // =================================================================================
    // =================================================================================
     void TC0PWM_init(void) //Init Timer/Counter0 für Erzeugung des PWM-Signals
     {
       TCCR0A |= (1<<COM0A1)|(1<<COM0B1);   //Clear/set OC0A/OC0B on Compare Match,
                                            //    doc S102 , OC0A/OC0B ist Port PD6/D5
       TCCR0A |= (1<<WGM01)|(1<<WGM00);     // Fast PWM, TOP=0xFF=dez255,     doc S104
                    //  das ergibt aus 20 MHz mit Prescaler 1/64  1220 Hz
       TCCR0B |= (1<<CS01)|(1<<CS00);       // Prescaler ist clk/64           doc S106
       TIMSK0 &= ~(1<<OCIE0A)|(1<<OCIE0B); // Tmr/Cntr0 Oput CompB Match intrrpt dsabld
       TIMSK0 &= ~(1<<TOIE0);  // Tmr/Cntr0 Overflow interrupt disabled
       OCR0A     = 0;                       // PWM auf Null setzen
       OCR0B     = 0;                       // PWM auf Null setzen
    }            
    // =================================================================================
    void setPWMrechts(uint8_t speed)        //Geschwindigkeit Motor 12 (rechter)
    {OCR0B = speed;}                        //  PWM auf PD5/OC0B, korrig. 24mrz09
    // =================================================================================
    void setPWMlinks(uint8_t speed)         //Geschwindigkeit Motor 34 (linker)
    {OCR0A = speed;}                        //  PWM auf PD6/OC0A, korrig. 24mrz09
    // =================================================================================
     
    // =================================================================================
    // Motoransteuerung mit dem L293D, hier werden die Drehrichtungen gesetzt 
    //   Anschlüsse M168 für R3D01 für die Motoransteuerung (Stand 24mrz09 1410) :
    //   Motor 12 ist in Fahrtrichtung rechts (Kennzeichen 1 Punkt)
    //   Motor 34 ist in Fahrtrichtung links  (Kennzeichen 2 Punkte)
    /*                                 
      (E7)  _|-- 1,2 Guz, PD4___6   23___PC0, SFH 5110, IN irDME 1-2    
                          . . . . . . . . . . . .
                   XTAL1  PB6___9   20___VCC
                   XTAL2  PB7  10   19   PB5, SCK                           
      (E6) PWM 1,2 uz+Guz,PD5  11   18   PB4, MISO,  _|-- 1,2  uz, Taster1  
      (E5) PWM 3,4 uz+Guz,PD6__12   17___PB3, MOSI, Reserve 2               
      (E8)   _|-- 3,4  uz,PD7  13   16   PB2                                
      (E9)   _|-- 3,4 Guz,PB0  14   15   PB1                                          */
    //                -----------------------
    //  Drehrichtungsbefehle für Motor 1,2 = "rechter" Motor
     void M12pos (void)             // Mot12 dreht im Uhrzeigersinn = neg. math.
     { PORTB  |=  (1<<PB4);  PORTD  &= ~(1<<PD4);  mdir12 = 1; }
    //             r r r r r r r Motor 1,2 = rechter Motor r r r r r r
     void M12neg (void)             // Mot12 dreht im mathematisch positiven Drehsinn
     { PORTB  &= ~(1<<PB4);  PORTD  |=  (1<<PD4);  mdir12 = -1; }
    //             r r r r r r r Motor 1,2 = rechter Motor r r r r r r
     void M12stp (void)             // Motor 12 aus
     { PORTB  &= ~(1<<PB4);  PORTD  &= ~(1<<PD4); }
    //                -----------------------
    //  Drehrichtungsbefehle für Motor 3,4 = "linker" Motor
     void M34neg (void)             // Mot3,4 dreht im Uhrzeigersinn = neg. math.
     { PORTB  |=  (1<<PB0);  PORTD  &= ~(1<<PD7);  mdir34 = 1; }
    //             l l l l l l l Motor 3,4 = linker Motor l l l l l l
     void M34pos (void)             // Mot3,4 dreht im mathematisch positiven Drehsinn
     { PORTB  &= ~(1<<PB0);  PORTD  |=  (1<<PD7);  mdir34 = -1; }
    //             l l l l l l l Motor 3,4 = linker Motor l l l l l l
     void M34stp (void)             //  Motor 12 aus
     { PORTB  &= ~(1<<PB0);  PORTD  &= ~(1<<PD7); }
    //
    // - - - - - - - Übersetzungstabelle für "alten" Code
      void Mrechtsvor (void)        
      {  M12pos ();  return; }                    
      void Mrechtszur (void)        
      {  M12neg ();  return; }                    
      void Mrechtsstop (void)       
      {  M12stp ();  return; }                    
      void Mlinksvor (void)         
      {  M34neg ();  return; }                    
      void Mlinkszur (void)
      {  M34pos ();  return; }                    
      void Mlinksstop (void)
      {  M34stp ();  return; }                    
    // =================================================================================
     
    // =================================================================================
    // =====  ENDE    Subroutinen  =====================================================
    // =================================================================================
    Immerhin: dieser Antrieb in meine beiden autonomen Dosen R2D03 und R3D01/MiniD0 läuft und läuft und läu...
    Ciao sagt der JoeamBerg

  5. #5
    Ich hab das Problem gefunden! Ich habe den Enable-Eingang an einen Ausgang ohne PWM-Unterstützung angeschlossen...peinlich.
    Jetzt funktioniert alles wie es soll.

    Vielen Dank an euch!


    Mfg Relaxed

    PS: @oberallgeier: Danke für den Code und den Schlatplan.

Ähnliche Themen

  1. RP6 Motor funktioniert nicht
    Von ComFreek im Forum Motoren
    Antworten: 2
    Letzter Beitrag: 16.09.2010, 17:28
  2. Nibobee: Motor funktioniert nicht
    Von GoZu im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 11
    Letzter Beitrag: 27.01.2010, 13:22
  3. RN-Motor funktioniert nicht mehr!
    Von sitt im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 3
    Letzter Beitrag: 07.11.2005, 22:15
  4. RN - Motor funktioniert nicht
    Von Neonx im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 7
    Letzter Beitrag: 24.08.2005, 19:43
  5. PWM Motor Richtungswechsel funktioniert nicht
    Von Chris266 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 15.03.2005, 11:39

Berechtigungen

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

12V Akku bauen