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







Zitieren

Lesezeichen