Ich hab da jetzt schon ein wenig ausprobiert aber ohne erfolg irgendwie funkt. es nicht so bei meinen Motoren kann eventuell noch mal jemand schauen und muss mann erst die neue Firmware auf die Motorsteuerung spielen oder fehlt mir da einfach nur ein Befehl .
einfach nur drehen dann gehts schon würde erts mal reichen
Code:
$regfile = "m128def.dat" ' Bei Mega 128
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
$baud = 9600
Config Scl = Portd.0
Config Sda = Portd.1
Config I2cdelay = 10
Open "com2:" For Binary As #2
I2cinit
Start Adc
Sound Portg.2 , 400 , 450
Sound Portg.2 , 400 , 250
Sound Portg.2 , 400 , 450
' ---------------------------------------------------
Const Befehl_motor_an_aus = 50
Const Befehl_ausschalten = 51
Const Befehl_drehrichtung = 52
Const Befehl_geschwindigkeit = 53
Const Befehl_endlosdrehung = 54
Const Befehl_slave_id_aendern = 202
Const Motor_1 = 1
Const Motor_2 = 2
Const Motor_3 = 3
Const I2crnmotorslaveadr = &H58 '
Const I2crnmotorsreadlaveadr = &H59
Dim I2cdaten(7) As Byte
Dim Lowbyte As Byte
Dim Highbyte As Byte
Dim Richtung As Bit
Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word
Dim Geschwindigkeit As Byte
Richtung = 0
Geschwindigkeit = 150
Do
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
I2cdaten(1) = Befehl_slave_id_aendern
I2cdaten(2) = 88
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
I2cdaten(1) = Befehl_motor_an_aus
I2cdaten(2) = Motor_2
Waitms 10
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
I2cdaten(1) = Befehl_endlosdrehung
I2cdaten(2) = Motor_2
Waitms 10
Toggle Richtung
I2cdaten(1) = Befehl_drehrichtung
I2cdaten(2) = Motor_2
I2cdaten(3) = Richtung
If Geschwindigkeit > 40 Then
Geschwindigkeit = Geschwindigkeit - 20
Else
Geschwindigkeit = Geschwindigkeit - 1
End If
I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
I2cdaten(2) = Motor_2
I2cdaten(3) = Geschwindigkeit
I2cdaten(4) = 0
Loop
Lesezeichen