-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Probleme mit PWM und L298N (RN-Control Board)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.03.2007
    Alter
    31
    Beiträge
    81

    Probleme mit PWM und L298N (RN-Control Board)

    Anzeige

    Hab mir für meinen Kettenbot eine Motoransteuerung mit dem L298N aufgebaut.verwendet hab ich die Schaltung aus dem Wiki mit den 8 dioden.Allerdings tritt bei der Ansteuerung, egal mit welcher PWM-Frequenz folgendes Problem auf: egal welchen wert ich für die geschwindigkeit eingebe ich bekomm nur 2V am motor heraus bei 12V Versorgungsspannung.Außerdem wird der l298 nach ca einer minute ziemlich heiß.
    Ich bin mir ziemlich sicher dass es nicht an der software liegt da ich an den pwm ausgängen des µC ja die richtigen werte messe. z.B. 2,47V für halbe geschwindigkeit.Deswegen müsste ja der Fehler bei der L298 Schaltung liegen, aber auch dort habe ich nichts entdecken können.
    Kann es sein das bei der Schaltung aus dem Wiki irgendwas fehlt (ich denk da an Kondensatoren) ?
    Die motoren haben bei meinen messungen nie mehr als 0,8 A /motor gezogen also sollte der l298n ja ausreichen.Bin momentan sehr planlos was der Fehler sein könnte.
    bei den motoren ist noch ein dünnes Kabel mit einigen Kondensatoren angelötet (soll wohl zur Entstörung dienen).Dieses kabel hab ich derweil nicht angelötet.Denke aber nicht dass das so viel ausmacht.

    hier mal mein programm in c:
    main.c
    Code:
    #include <avr/io.h>
    #include "pwmlib.h"
    
    int main(void)
    {
        PWMinit();
        changespeed(256,256,FORWARD,FORWARD);
        for(;;)	
        return 0;
    }
    pwmlib.h
    Code:
    #define  LEFT_HIGH  OCR1AH
    #define  LEFT_LOW   OCR1AL
    #define  RIGHT_HIGH OCR1BH
    #define  RIGHT_LOW  OCR1BL 
    #define  FORWARD    1
    #define  BACKWARD   0  
    #define  BRAKE      2
    
    
    void PWMinit(void);
    void changespeed(unsigned int,unsigned int,char,char);
    
    void PWMinit ()
    {
         TCCR1A|=(1<<WGM11) | (1<<COM1A1) | (1<<COM1B1) ; 
         TCCR1B|=(1<<WGM12) | (1<<CS10 )  | (1<<CS11); 
         DDRD|=(1<<DDD4)|(1<<DDD5);
         DDRB|=(1<<DDB0)|(1<<DDB1);
         DDRC|=(1<<DDC6)|(1<<DDC7);
         //DDRB = _BV(DDB0) | _BV(DDB1);
         //DDRC = _BV(DDC6) | _BV(DDC7); 
    }
    
    void changespeed(unsigned int speedleft,unsigned int speedright,char dir_right,char dir_left)
    {
         if(speedleft>511)speedleft=511; if(speedright>511)speedright=511;
         if(speedleft<0   )speedleft=0   ; if(speedright<0   )speedright=0   ;
         if(dir_right==0) {PORTB|=(0<<PB0)|(1<<PB1);}  if(dir_right==1)   {PORTB|=(1<<PB0)|(0<<PB1);} if(dir_right==2) {PORTB|=(0<<PB0)|(0<<PB1);} else {}
         if(dir_left==0)  {PORTC|=(0<<PC6)|(1<<PC7);}  if(dir_left ==1)   {PORTC|=(1<<PC6)|(0<<PC7);} if(dir_left ==2) {PORTC|=(0<<PC6)|(0<<PC7);} else {}
         LEFT_HIGH   = speedleft/256  ;
         LEFT_LOW    = speedleft%256  ;
         RIGHT_HIGH  = speedright/256 ;
         RIGHT_LOW   = speedright%256 ; 
    }
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken hbrueckel298.gif  

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Spannungen an einem PWM-Ausgang zu messen ist ziemlich Sinnfrei, da die meisten Meßgeräte bei höheren Frequenzen ohnehin Unsinn anzeigen. Da nützt nur ein Oszi.
    Schon mal ohne µC probiert? Dann weist du was Schuld ist.
    In der Schaltung fehlt ausser den üblichen Kondensatoren von VCC und VS nach GND nichts, die sind aber kaum für das fehlverhalten verantwortlich.
    Hubert

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Hi!
    Habe Deinen Code nicht geprüft.
    Hast Du schnelle Dioden verwendet?
    Prüfe mal, ob die SensEingänge wirklich auf GND liegen und löte sie am besten nochmal nach.
    Dreht sich der Motor denn oder pfeift er wenigstens mit der PWM Frequenz?
    Stell' doch die Frequenz mal auf zb 0,5 Hz runter und messe den Strom dann.
    Gruß

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    23.03.2007
    Alter
    31
    Beiträge
    81
    Spannungen an einem PWM-Ausgang zu messen ist ziemlich Sinnfrei
    wieso stimmen dann die werte, wenn ich direkt am controller messe ? wenn ich zum beispiel halbe geschwindigkeit einstelle hab ich 2,5V. bei 1/4 mess ich 1,25V usw.Also direkt am portpin gehts auf jedenfall mit dem Multimeter.
    Ein Oszi hab ich aber eh schon bei ebay ersteigert.Sollte bald ankommen.
    Ohne Mikrokontroller hab ichs noch nicht versucht, danke für den tipp.

    Ich verwende bvy28 dioden, hoffe die sind schnell genug ?
    der motor dreht bzw. piepst , darum glaub ich auch, dass die messung von 2v halbwegs stimmt, da das die spannung ist bei der der Motor gerade genügend kraft hat um das getriebe zu drehen.Senseingänge sind sicher auf GND hab ich schon kontrolliert.

    Stell' doch die Frequenz mal auf zb 0,5 Hz runter und messe den Strom dann.
    Wie stell ich die frequenz auf 0,5Hz ? so niedrige frequenzen kann ich ja nur per software pwm einstellen oder ?

    danke für die antworten

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Hi!
    Wenn Du mit Deinem Multimeter das misst wie Du schreibst, dann ist das Ok, es geht aber nicht mit jedem so gut, vor allem bei niedrigen Frequenzen.

    Um die Frequenz runterzustellen, musst Du dir wohl ein kleines Testprogramm schreiben. Ich hielt das für gut, weil DU dann für 2s Gleichstrom hast und Du die einzelnen Schritte besser überwachen kannst.
    Gruß

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    könnte daran liegen, dass kondensatoren fehlen:
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken l298edit.jpg  

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    23.03.2007
    Alter
    31
    Beiträge
    81
    mhh hab leider nur Ko's mit 1µF hier. geht das auch ?

    noch eine frage: muss die masse vom pin 8 des l298 mit der masse von der versorgungsspg des motors verbunden werden oder nicht (ich habs bis jetzt so dass ich sie auf den massepin des RN-Control board zurückführe)?

    übrigens hab ich jetzt mal den l298 ohne µC(nur mit Gleichspannung) angesteuert ,der l298 funktioniert er dürfte also nicht kaputt sein.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Ja, Massen müssen verbunden sein!
    Gruß

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    23.03.2007
    Alter
    31
    Beiträge
    81
    ok habs jetzt mal am motoransteuerboard verbunden, wahrscheinlich wären die massen aber sowieso schon am RN-Control board verbunden gewesen.

    mfg

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.111
    Hast Du eine niedrigere Frequenz probiert? Vielleicht hast Du einen sehr trägen Motor mit hoher Induktivität.
    Liefert Deine Sannungsversorgung geug Saft?
    Sind die Zuleitungen in Ordnung?
    GRuß

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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