PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Motor Dreht nur in eine richtung... teil 2 ;D



Razzorhead
26.03.2010, 00:40
Hi leute,
Nachdem ich dachte das problem lag an den falschen Pins, hab ich nun die wahre ursache herrausgefunden.
Also mein motor dreht nur in eine richtung, bzw lässt sich nach der ersten änderung nichtmehr ändern.
Aber NUR wenn ich auch die geschwindigkeit durch PWM verändern will



$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40

Config Portb.1 = Output 'PWM
Config Portc.0 = Output 'motor
Config Portc.1 = Output 'motor
Config Portd.5 = Output ' LED

M1 Alias Portc.0
M2 Alias Portc.1
Led Alias Portd.5
Speed Alias Compare1a
Declare Sub Drive(byval Direction As Byte , Byval Geschwindigkeit As Byte)

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1

Do
Call Drive(1 , 1)
Wait 1
Call Drive(0 , 1)
Wait 1
Loop
End


Sub Drive(byval Direction As Byte , Byval Geschwindigkeit As Byte)

Waitms 200
If Direction = 0 Then
M1 = 0
M2 = 1
End If

If Direction = 1 Then
M1 = 1
M2 = 0
End If

If Direction = 3 Then
M1 = 0
M2 = 0
Waitms 5
M1 = 1
M2 = 0
endif


End Sub

Sobald irgendwo Speed= x steht, bzw Compare1a = x, dreht der motor nurnoch in eine richtung.
Weiss jemand woran das liegt?

LG Raz

Razzorhead
26.03.2010, 21:23
Über 30 leute angeschaut und keiner die geringste idee? ](*,)
Wie steuert ihr denn eure motoren?
Gibts bei euch nicht das selbe problem? Wie siehts bei euch also aus?

LG Raz

raggy
27.03.2010, 17:46
Hallo Raz
Welchen Motortreiber verwendest DU,man sollte schon mal was mehr schreiben.
Wen es der L293D ist
http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_Treibe r_IC_L293_D
An Enable kommt dan PWM

raggy
27.03.2010, 20:19
Hallo Raze


$regfile = "M8DEF.DAT"
$baud = 19200
$hwstack = 32
$swstack = 32
$framesize = 32
$crystal = 8000000 '7372800

Config Portc.0 = Output
Config Portc.1 = Output


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Enable Interrupts

Do

Portc.0 = 1 'Pin 2 = 1A am L293D z.B rechts (je nach Anschluß)
Portc.1 = 0 'Pin 7 = 2A am L293D
Pwm1a = 80 'Pin1 = Enable am L293D
Wait 4

Portc.0 = 1 ' Halt
Portc.1 = 0
Pwm1a = 0
Wait 4

Portc.0 = 0 'z.B Links (je nach Anschluß)
Portc.1 = 1
Pwm1a = 80
Wait 4

Portc.0 = 1 ' Halt
Portc.1 = 0
Pwm1a = 0
Wait 4

Portc.0 = 0 'z.B Links (je nach Anschluß)
Portc.1 = 1
Pwm1a = 60 ' Umdrehungen aendern
Wait 4

Loop

So sollte es funktionieren
Solltest Du zwei Stromquellen haben eine fuer den Treiber und eine fuer Atmega8 unbedingt Gnd verbinden!
Gruß raggy

021aet04
28.03.2010, 09:13
Solltest Du zwei Stromquellen haben eine fuer den Treiber und eine fuer Atmega8 unbedingt Gnd verbinden!
Bitte Spannungsquellen, keine Stromquellen. Es gibt einen Unterscchied.

MfG Hannes

raggy
28.03.2010, 09:35
Hallo 021aet04
Es ist immer gut zu wissen das es solche Schlauberger gibt!
DANKE

repi64
28.03.2010, 19:15
Hallo Razzorhead,

wieso öffnest Du zum gleichen Thema einen neuen thread?
Dies ist doch wirklich nicht nötig!