sledge77
18.02.2007, 14:41
Ich habe da ein Problem.
Vor längerem habe ich mal mit MCs angefangen. Bisher mit mäßigem erfolg. Mal eine kleine Schaltung mit einem LCD, ein wenig mit LEDs und so weiter. Da dachte ich mir das kombiniere ich mal und mach noch was bewegliches dazu. Also Motoren dazu. Habe zwei Motoren bei Conrad gekauft. Und zwar die RB35. Habe diese erst an einem L293D betrieben, diese sind mir bei PWM Betrieb aber immer durchgebrannt. Also nach viel Rücksprache mit dem Forum musste ein L298 her. Gekauft, Schaltung inkl Freilaufdioden fertig gemacht und gestartet. Aber irgendwie.... Beim ersten Test habe ich einfach mit Fullspeed vorwärts bzw. rückwärts fahren lassen. Lief auch, L298 wurde nicht warm. Dann noch den PWM dazu. Kurz danach wurde der L298 zu heiß und funktionierte nicht mehr richtig.
Ich gestehe, danach hatte ich erstmal die Schn... voll..... Bisher keine Motorschaltung richtig hinbekommen. Nun, nachdem fast 2 Monate ins Land gegangen sind will, ich mich dieser Sache wieder annehmen.
Jetzt ist Fehlersuche angesagt. Also die Schaltung für meinen L298 habe ich nach dem Wiki aufgabaut. Die Freilaufdioden sind auch richtig herum drin. Daran kann (sollte) es nicht liegen. Als Dioden habe ich die Standard 1N4001 genommen, laut mehreren Foreneinträgen auch OK.
So. Was kann noch falsch sein? Das PWM Signal oder der Motor nicht i.O.
Hier mein Programm. Eine Vermutung ist noch das das PWM Signal nicht i.O. ist. Also die PWM Frequenz falsch konfiguriert ist und der L298 nicht nur beim "starten" den Anlaufstrom verkraften muss. Kann das sein?
Der AT16 läuft mit internem Takt, bei 1Mhz.
' Hardware PWM mit Timer1
$regfile = "m16def.dat"
$crystal = 1000000
Config Pind.4 = Output
Config Pind.5 = Output
Config Portc = Output
A2 Alias Portc.0
A1 Alias Portc.1
A3 Alias Portc.2
A4 Alias Portc.3
Dim Temp As Bit
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64
Compare1a = 50
Compare1b = 50
Temp = 1
Do
Geradeaus:
A1 = 1 : A2 = 0 : A3 = 1 : A4 = 0
Wait 5
Gosub Stoprout
Rueck:
A1 = 0 : A2 = 1 : A3 = 0 : A4 = 1
Wait 5
Gosub Stoprout
Loop
End
Stoprout:
A1 = 0
A2 = 0
A3 = 0
A4 = 0
Wait 2
Return
Danke
Sledge77
Vor längerem habe ich mal mit MCs angefangen. Bisher mit mäßigem erfolg. Mal eine kleine Schaltung mit einem LCD, ein wenig mit LEDs und so weiter. Da dachte ich mir das kombiniere ich mal und mach noch was bewegliches dazu. Also Motoren dazu. Habe zwei Motoren bei Conrad gekauft. Und zwar die RB35. Habe diese erst an einem L293D betrieben, diese sind mir bei PWM Betrieb aber immer durchgebrannt. Also nach viel Rücksprache mit dem Forum musste ein L298 her. Gekauft, Schaltung inkl Freilaufdioden fertig gemacht und gestartet. Aber irgendwie.... Beim ersten Test habe ich einfach mit Fullspeed vorwärts bzw. rückwärts fahren lassen. Lief auch, L298 wurde nicht warm. Dann noch den PWM dazu. Kurz danach wurde der L298 zu heiß und funktionierte nicht mehr richtig.
Ich gestehe, danach hatte ich erstmal die Schn... voll..... Bisher keine Motorschaltung richtig hinbekommen. Nun, nachdem fast 2 Monate ins Land gegangen sind will, ich mich dieser Sache wieder annehmen.
Jetzt ist Fehlersuche angesagt. Also die Schaltung für meinen L298 habe ich nach dem Wiki aufgabaut. Die Freilaufdioden sind auch richtig herum drin. Daran kann (sollte) es nicht liegen. Als Dioden habe ich die Standard 1N4001 genommen, laut mehreren Foreneinträgen auch OK.
So. Was kann noch falsch sein? Das PWM Signal oder der Motor nicht i.O.
Hier mein Programm. Eine Vermutung ist noch das das PWM Signal nicht i.O. ist. Also die PWM Frequenz falsch konfiguriert ist und der L298 nicht nur beim "starten" den Anlaufstrom verkraften muss. Kann das sein?
Der AT16 läuft mit internem Takt, bei 1Mhz.
' Hardware PWM mit Timer1
$regfile = "m16def.dat"
$crystal = 1000000
Config Pind.4 = Output
Config Pind.5 = Output
Config Portc = Output
A2 Alias Portc.0
A1 Alias Portc.1
A3 Alias Portc.2
A4 Alias Portc.3
Dim Temp As Bit
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64
Compare1a = 50
Compare1b = 50
Temp = 1
Do
Geradeaus:
A1 = 1 : A2 = 0 : A3 = 1 : A4 = 0
Wait 5
Gosub Stoprout
Rueck:
A1 = 0 : A2 = 1 : A3 = 0 : A4 = 1
Wait 5
Gosub Stoprout
Loop
End
Stoprout:
A1 = 0
A2 = 0
A3 = 0
A4 = 0
Wait 2
Return
Danke
Sledge77