mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Motorsteuerung mit L293D


Autor: roboter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, irgendwie komme ich mit der Richtund nicht klar.
Machmal habe ich den Eindruck , das ein Motor bremst beim drehen.
Die Drehrichtung stimmt auch nicht.
Der L293d funktioniert.
Motor 4 Volt(3Volt Nennangabe)
Atmega 5 Volt
Kann mir einer mal die Belegung nennen für die unteren Fahrzustände.
Ich verzweifele schon.

Die steuerung

Atmega 32 :

Atmega > L293D(nummer gemäss Anhang)

PD 4  >  Pin 1
PD 5  > Pin 9

PC 2/3  > Pin 7/2
PC 4/5 > Pin 10/15

Definierung der Steuerung :
$regfile = "M32def.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 32
$framesize = 64
$baud = 19200

Declare Sub Robby_vor()
Declare Sub Robby_zurueck()
Declare Sub Robby_links()
Declare Sub Robby_rechts()
Declare Sub Robby_aus()
Declare Sub L293_pin()

Dim A As Byte
Dim B As Byte



Call L293_pin()

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B 
Pwm = Clear Down , Prescale = 256

Start Timer1


Wait 1


Call Robby_vor()
Wait 2
Call Robby_aus()

Call Robby_zurueck()
Wait 1
Call Robby_aus()

Call Robby_links()
Wait 1
Call Robby_aus()

Call Robby_rechts()
Wait 1
Call Robby_aus()


End

Sub L293_pin()
   Ddrc.2 = 1
   Ddrc.3 = 1
   Ddrc.4 = 1
   Ddrc.5 = 1
   Ddrd.4 = 1
   Ddrd.5 = 1
End Sub

Sub Robby_vor()
   Portc.2 = 1
   Portc.3 = 0
   Portc.4 = 0
   Portc.5 = 1

   Portd.4 = 1
   Portd.5 = 1
   Pwm1a = 200
   Pwm1b = 200
End Sub

Sub Robby_zurueck()
   Portc.2 = 0
   Portc.3 = 1
   Portc.4 = 1
   Portc.5 = 0

   Portd.4 = 1
   Portd.5 = 1
   Pwm1a = 200
   Pwm1b = 200
End Sub

Sub Robby_aus()
   Portc.2 = 0
   Portc.3 = 0
   Portc.4 = 0
   Portc.5 = 0

   Portd.4 = 0
   Portd.5 = 0
   Pwm1a = 200
   Pwm1b = 200
End Sub

Sub Robby_rechts()
   Portc.2 = 0
   Portc.3 = 0
   Portc.4 = 0
   Portc.5 = 1

   Portd.4 = 1
   Portd.5 = 1
   Pwm1a = 200
   Pwm1b = 200
End Sub

Sub Robby_links()
   Portc.2 = 0
   Portc.3 = 1
   Portc.4 = 0
   Portc.5 = 0

   Portd.4 = 1
   Portd.5 = 1
   Pwm1a = 200
   Pwm1b = 200
End Sub

Autor: roboter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier hatte ich mich vertippt,da muss null rein:
Pwm1a = 0
Pwm1b = 0

Sub Robby_aus()
   Portc.2 = 0
   Portc.3 = 0
   Portc.4 = 0
   Portc.5 = 0

   Portd.4 = 0
   Portd.5 = 0
   Pwm1a = 0
   Pwm1b = 0
End Sub

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.