Witam
Mam taki problem.
Zbudowałem ostatnio automatyczną nawijarkę cewek z zestawu AVT, i wszystko było by ładnie pięknie gdyby nie to, że za żadne skarby nie mogę dobrać silników (układ zlicza obroty albo co 1/2 obrotu albo w innym silniku co np 2 obroty).
Stwierdziłem, że najlepiej będzie sprawdzić ile kroków potrzebuje dany silnik na wykonanie pełnego obrotu i zmienić to w programie.
I tu pojawił się problem, w źródle zamieszczonym na stronie AVT jest błąd.
Program załadowany do procesora w zestawie działa poprawnie, natomiast pobrany ze strony i po skompilowaniu nie obsługuje drugiego silnika.
W związku z tym miałbym prośbę do Szanownych kolegów o pomoc.
Może będzie ktoś w stanie powiedzieć mi co i gdzie należy dopisać aby układ zaczął poprawnie działać.
Tu jest opis tej nawijarki AVT-896 i kod żródłowy (ten błędny)
Mam taki problem.
Zbudowałem ostatnio automatyczną nawijarkę cewek z zestawu AVT, i wszystko było by ładnie pięknie gdyby nie to, że za żadne skarby nie mogę dobrać silników (układ zlicza obroty albo co 1/2 obrotu albo w innym silniku co np 2 obroty).
Stwierdziłem, że najlepiej będzie sprawdzić ile kroków potrzebuje dany silnik na wykonanie pełnego obrotu i zmienić to w programie.
I tu pojawił się problem, w źródle zamieszczonym na stronie AVT jest błąd.
Program załadowany do procesora w zestawie działa poprawnie, natomiast pobrany ze strony i po skompilowaniu nie obsługuje drugiego silnika.
W związku z tym miałbym prośbę do Szanownych kolegów o pomoc.
Może będzie ktoś w stanie powiedzieć mi co i gdzie należy dopisać aby układ zaczął poprawnie działać.
Tu jest opis tej nawijarki AVT-896 i kod żródłowy (ten błędny)
$large
Config Sda = P3.1
Config Scl = P3.0
Config Lcd = 16 * 1a
Cursor Off
I2csend 112 , 0
Dim R As Byte
Dim Directionflag As Bit
Dim Layers As Byte
Dim Warstwa As Word
Dim Srednica As Byte
Dim Motor1 As Byte
Dim Turns As Long
Dim Turning As Long
Declare Sub 1 Turn
Declare Sub Programowanie
Declare Sub Work
Declare Sub Wybor
Declare Sub 1turn_motor2
S1 Alias P3.7
S2 Alias P3.5
S3 Alias P3.4
S4 Alias P3.3
Cls
Lcd "AVT-xxx"
Wait 1
Cls
Lcd "Programowanie"
Wait 2
Cls
Turns = 24
Srednica = 10
Warstwa = 10
Sub Programowanie
Cls
Lcd "Zwoje:" ;
Do
Locate 1 , 11
Lcd " "
Locate 1 , 11
Lcd Turns
Waitms 250
Set S1
If S1 = 0 Then
Incr Turns
End If
Set S2
If S2 = 0 Then
Decr Turns
If Turns = 5 Then
Turns = 6
End If
End If
Set S4
If S4 = 0 Then
Exit Do
End If
Loop
Cls
Lcd "Warstwa:" ;
Do
Locate 1 , 11
Lcd " "
Locate 1 , 11
Lcd Warstwa
Waitms 250
Set S1
If S1 = 0 Then
Incr Warstwa
End If
Set S2
If S2 = 0 Then
Decr Warstwa
If Warstwa = 5 Then
Warstwa = 6
End If
End If
Set S4
If S4 = 0 Then
Exit Do
End If
Loop
Cls
Lcd "Srednica:" ;
Waitms 250
Do
Locate 1 , 11
Lcd " "
Locate 1 , 11
Lcd Srednica
Waitms 250
Set S1
If S1 = 0 Then
Incr Srednica
If Srednica = 101 Then
Srednica = 100
End If
End If
Set S2
If S2 = 0 Then
Decr Srednica
If Srednica = 0 Then
Srednica = 1
End If
End If
Set S4
If S4 = 0 Then
Exit Do
End If
Loop
Call Wybor
End Sub
Sub Work
Cls
Lcd "Working...";
For Turning = 1 To Turns
Locate 1 , 12
Lcd Turning
Call 1turn
Next R
I2csend 112 , 0
Call Wybor
End Sub
Sub Wybor
Cls
Lcd "GO- S4, Prg.- S3"
Waitms 250
Do
Set S4 : Set S3
If S3 = 0 Then
Call Programowanie
End If
If S4 = 0 Then
Call Work
End If
Loop
End Sub
Sub 1turn
For R = 1 To 25
Motor1 = 128
I2csend 112 , Motor1
Waitms 7
Shift Motor1 , Right , 1
I2csend 112 , Motor1
Waitms 7
Shift Motor1 , Right , 1
I2csend 112 , Motor1
Waitms 7
Shift Motor1 , Right , 1
I2csend 112 , Motor1
Waitms 7
Next R
End Sub
Sub 1turn_motor2
For R = 1 To 25
Motor1 = 128
I2csend 112 , Motor1
Waitms 7
Shift Motor1 , Right , 1
I2csend 112 , Motor1
Waitms 7
Shift Motor1 , Right , 1
I2csend 112 , Motor1
Waitms 7
Shift Motor1 , Right , 1
I2csend 112 , Motor1
Waitms 7
Next R
End Sub