Ansteuerung von Motor-Treiber mit PWM

Gast #1336766
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
Angehängte Dateien:
Gast #1336861
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.