www.mikrocontroller.net

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


Autor: Daniel F. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Axel Foley (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.