Hallo
Ich hab jetzt mal eine vorabversion, ist noch nicht ganz Stabil und noch nicht vollsändig.
Das Tool Steuert mit dem RN-Control v1.4 übers I2C Kabel ein RN-Schrittmotorsteuerungsboard an, das RN-Controlboard wird über den RS232-port am Com-port1 des Pcs angeschlossen (Port auswahl gibt es bisher noch keine)
Bild
Bild hier
Tool
RN-SchrittmotorSteuerung.zip
AVR Code (RN-Control v1.4)
Tipps:Code:'===CHIP SETTINGS=== Declare Sub Abfrage() As Byte $regfile = "m32def.dat" $framesize = 64 $swstack = 64 $hwstack = 64 $crystal = 16000000 'Quarzfrequenz $baud = 38400 Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 '===CHIP SETTINGS END=== Config Serialin = Buffered , Size = 20 Enable Interrupts Dim Inputstring1 As Byte Dim Inputstring2 As Byte Dim Inputstring3 As Byte Dim Inputstring4 As Byte Const Inputstring5 = 0 Const I2crnmotorslaveadr = &H58 'I2C SlaveAdresse von RN-Schrittmotor Erweiterung Const I2crnmotorsreadlaveadr = &H59 'I2C SlaveAdresse von RN-Schrittmotor Erweiterung Dim I2cdaten(7) As Byte Dim Schritte As Long Dim Temp As Byte Dim Ltemp As Long Dim Umdrehungen As Single Dim Fahrstrecke As Word Dim Data_available As Byte Dim Endschalter As Byte Dim Motorstatus As Byte Do Data_available = Ischarwaiting() If Data_available = 1 Then Input "" , Inputstring1 , Inputstring2 , Inputstring3 , Inputstring4 ', Inputstring5 I2cdaten(1) = Inputstring1 I2cdaten(2) = Inputstring2 I2cdaten(3) = Inputstring3 I2cdaten(4) = Inputstring4 I2cdaten(5) = Inputstring5 I2csend I2crnmotorslaveadr , I2cdaten(1) , 7 If Inputstring1 = 101 Then If Inputstring2 = 1 Then I2cstart I2cwbyte I2crnmotorsreadlaveadr I2crbyte Motorstatus , Nack I2cstop Print "Motorstatus_Motor1" ; Motorstatus Else I2cstart I2cwbyte I2crnmotorsreadlaveadr I2crbyte Motorstatus , Nack I2cstop Print "Motorstatus_Motor2" ; Motorstatus End If End If End If I2cdaten(1) = 102 I2cdaten(2) = 1 I2csend I2crnmotorslaveadr , I2cdaten(1) , 7 I2cstart I2cwbyte I2crnmotorsreadlaveadr I2crbyte Temp , Ack Schritte = Temp I2crbyte Temp , Ack Ltemp = Temp * 256 Schritte = Schritte + Ltemp I2crbyte Temp , Ack Ltemp = Temp * 65536 Schritte = Schritte + Ltemp I2crbyte Temp , Nack Ltemp = Temp * 16777216 Schritte = Schritte + Ltemp I2cstop Print "A" ; Schritte ' Motor 1 Waitms 10 I2cdaten(1) = 102 I2cdaten(2) = 2 I2csend I2crnmotorslaveadr , I2cdaten(1) , 7 I2cstart I2cwbyte I2crnmotorsreadlaveadr I2crbyte Temp , Ack Schritte = Temp I2crbyte Temp , Ack Ltemp = Temp * 256 Schritte = Schritte + Ltemp I2crbyte Temp , Ack Ltemp = Temp * 65536 Schritte = Schritte + Ltemp I2crbyte Temp , Nack Ltemp = Temp * 16777216 Schritte = Schritte + Ltemp I2cstop Print "B" ; Schritte ' Motor 2 Waitms 10 Loop End
Bewegt die Regler nicht so schnell.
Sollte das Tool oder das Controlboard nicht reagieren Resetet beide Boards Manuell über den Tasten auf den Boards







Zitieren
Lesezeichen