Forum: Mikrocontroller und Digitale Elektronik Motorsteuerung mit L293D


von roboter (Gast)


Angehängte Dateien:

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

von roboter (Gast)


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

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.