So, hab mal schnell ein kleines Beispiel für die RS232-Version von RN-Motor geschrieben.
Hie rsieht man wie einfach RN-Control Schrittmotoren übe rdie RS232-Schnittstelle steuert
Ich hab das Beispiel noch nicht testen können, weil ich in meiner Testumgebung gerade kein RN-Motor habe. Es läßt sich aber compilieren und sollte auch funktionieren
Gruß Frank
RN-Control -> RN-Motor ST RS232 Beispiel:
Code:
'###################################################
'Schrittmotoransteuerung mit RN-Control und
'Ansteuerungsboard RN-MOTOR über RS232
'
' DIESES BEISPIEL IST NUR FÜR DIE RS232 VERSION von RN-MOTOR
'
'
'Aufgabe:
' Dieses Testprogramm beschreibt die Motorboard I2C-Funktionen
' und legt einige der Befehle auf die 5 Tasten
' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Stellt für den linken Motor den Motorstrom auf 200mA ein und schaltet Motor danach ein
' Taste 2: Lässt den linken Motor endlos drehen
' Taste 3: nicht belegt
' Taste 4: Ändert die Geschwindigkeit des linken Motors mit jedem Tastendruck
''Taste 5: Schaltet den linken Motor wieder aus
' Beispiel wurde noch nicht getestet - sollte jedoch klappen
'Autor: Frank Brall
'Weitere Beispiele und Beschreibung der Hardware
'in der Anleitung zu RN-Motor
'Anleitung findet man unter http://www.Roboternetz.de im Download Bereich
'oder www.robotikhardware.de
'Weitere Beispiele sind im Roboternetz gerne willkommen!
'##############################################################
Declare Function Tastenabfrage() As Byte
'$regfile = "m16def.dat"
$regfile = "m32def.dat"
Dim Lowbyte As Byte
Dim Highbyte As Byte
Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word
Dim Geschwindigkeit As Byte
Dim I As Integer
Dim N As Integer
Dim Ton As Integer
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
Geschwindigkeit = 250
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Dim Taste As Byte
I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-Control V1.4 *****"
Print "Demoprogramm um Zusatzkarte RN-Motor ST RS232 Version im Schrittmotormodus zu testen"
Print
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
'Motorstrom auf 200mA begrenzen
Print "#rmi" ; Chr(0) ; Chr(20)
'Motor einschalten
Print "#rmo" ; Chr(0)
Case 2
'Motor endlos drehen
Print "#rme" ; Chr(0)
Case 4
'Geschwindigkeit ändern
If Geschwindigkeit > 40 Then
Geschwindigkeit = Geschwindigkeit - 20
Else
Geschwindigkeit = Geschwindigkeit - 1
End If
Print "#rmg" ; Chr(0) ; Chr(geschwindigkeit)
Case 5
'Motor ausschalten
Print "#rma" ; Chr(0)
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
' Diese Unterfunktion fragt die Tastatur am analogen Port ab
' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
' muss die die Tastenabfrage (Select Case Anweisung in Funktion )
' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
Print "ws= " ; Ws
If Ws < 1010 Then
Select Case Ws
Case 400 To 455
Tastenabfrage = 1
Ton = 550
Case 335 To 380
Tastenabfrage = 2
Ton = 500
Case 250 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 100 To 130
Tastenabfrage = 5
Ton = 350
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
Lesezeichen