Forum: Mikrocontroller und Digitale Elektronik Ansteuerung von Motor-Treiber mit PWM


von Daniel F. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebe Forenleutz,

habe seit 2 Tagen das Problem, dass ich meinen Motortreiber(siehe Anhang 
PDF) nicht mit einer PWM Ansteuern kann.

Die PWM-Ansteuerung ist bis 20 Khz möglich. Kann sein das ich mich da 
vielleicht verrechnet habe.

Als Controller verwende ich einen Mega2560 der über die nötigen PWM 
Ports verfügt.

Könnte sich jemand mal meinen Bascom-Quellcode anschauen und mir eine 
eventuelle Lösung sagen. Vielleicht verwende ich auch den falschen Port.

Hier der CODE:

$regfile = "m2560def.dat"
$crystal = 16000000          'Quarzfrequenz
$baud = 9600
$hwstack = 34
$framesize = 34
$swstack = 34
Config Pinb.1 = Output
Motor1_pwm Alias Portb.1
Config Pind.6 = Output
Motor1_in1 Alias Portd.6
Config Pind.7 = Output
Motor1_in2 Alias Portd.7
Config Pinb.2 = Output
Motor2_pwm Alias Portb.2
Config Pinb.0 = Output
Motor2_in1 Alias Portb.0
Config Pinb.5 = Output
Motor2_in2 Alias Portb.5
'PWM Frequenz Initialisieren
Tccr1a = &B10100010                '9 Bit PWM Voller Takt
Tccr1b = &B10000011                'Teiler = 8 PWM = 1951Hz bei 9 Bit
Dim I As Word
'Wait 10
Do
Print " Richtung1"
Motor1_in1 = 0                     'Drehrichtung Motor 1
Motor1_in2 = 1                     'Drehrichtung Motor 1
Motor2_in1 = 1                     'Drehrichtung Motor 2
Motor2_in2 = 0                     'Drehrichtung Motor 2
For I = 250 To 511
Pwm1a = I
Pwm1b = I
Waitms 1
Next I
Wait 1200
'Bremsen
Pwm1a = 0
Pwm1b = 0
Wait 20
Motor1_in1 = 0                      'Drehrichtung Motor 1
Motor1_in2 = 0                      'Drehrichtung Motor 1
Motor2_in1 = 0                      'Drehrichtung Motor 2
Motor2_in2 = 0
Print " Richtung2"
Motor1_in1 = 1                      'Drehrichtung Motor 1
Motor1_in2 = 0                      'Drehrichtung Motor 1
Motor2_in1 = 0                      'Drehrichtung Motor 2
Motor2_in2 = 1                      'Drehrichtung Motor 2
For I = 0 To 511
Pwm1a = I
Pwm1b = I
Waitms 250
Next I
Wait 1200
'Bremsen
Pwm1a = 0
Pwm1b = 0
Wait 20
Motor1_in1 = 0                      'Drehrichtung Motor 1
Motor1_in2 = 0                      'Drehrichtung Motor 1
Motor2_in1 = 0                      'Drehrichtung Motor 2
Motor2_in2 = 0
Loop
End



------------------------------------------------------------------------ 
------

Vielen Dank

von Axel Foley (Gast)


Lesenswert?

Hallo Daniel,

da hast du aber mal einen wirklich kniffligen Fall. Soweit sieht dein 
Code ganz gut aus. vielleicht versuchtst du es mit einer anderen 
Frequenz. Was sagt denn das Oszilloskop? Hast du da ein Bild des PWM 
Ports?

Grüße

Axel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.