- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 22

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

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.03.2007
    Alter
    39
    Beiträge
    81

    Probleme mit PWM und L298N (RN-Control Board)

    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  

Berechtigungen

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

12V Akku bauen