AndreasMüler
29.06.2010, 11:10
Hi Leute
Ich besitze ein rncontrol1.4 board. Dafür habe ich mir eine erweiterungsplatine für den HIGH Power Motortreiber gekauft um 2 zusätzliche Motoren anzusteuern.
Um Jetzt die Platine anzusprechen habe ich den V+ Pol mit dem Positiven Pol des Netzteiles Vrbunden. Auf dem PIN PWm hab ich den 7Pin des C-Portes angeschlossen. AUF dem Pin DIR den 8 Pin und GND habe ich mit dem 9 Pin verbunden sowie auch mit dem negativen Pol des Netzteiles.
http://www.robotikhardware.de/download/rncontrol14.pdf
http://www.robotikhardware.de/download/High_PowerMotortreiber18V15.pdf
Das ist jetzt noch der Code den ich am Mikrokntroller gespeichert habe:
'################################################# ##
'rncontroltest.BAS
'für
'RoboterNetz Board RN-CONTROL 1.4
'Das neue preiswerte Controllerboard zum experimentieren
'
'Aufgabe:
' Dieses Testprogramm testet gleich mehrere Eigenschaften auf dem Board
' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Zeigt Batteriespannung über RS232 an
' Taste 2: Angeschlossene Motoren beschleunigen und abbremsen
' Taste 3: Einige male Lauflicht über LED´s anzeigen. Am I2C-Bus
' darf in diesem Moment nichts angeschlossen sein
' Taste 4: Zeigt analoge Messwerte an allen Port A PIN´s über RS232 an
''Taste 5: Zeigt digitalen I/O Zustand von PA0 bis PA5 an
' Ser gut kann man aus dem Demo auch entnehmen wie Sound ausgegeben wird,
' wie Tasten abgefragt werden und wie Subroutinen und Funktionen angelegt werden
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'################################################# ######
Declare Sub Motortest()
Declare Sub Motorboard
Declare Function Tastenabfrage() As Byte
$regfile = "m32def.dat"
Dim I As Integer
Dim N As Integer
DIM Ton As Integer
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Const Ref = 5 / 1023 'Für Batteriespannungsberechnung
Dim Taste As Byte
Dim Volt As Single
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-CONTROL 1.1 *****"
Print "Das neue Experimentier- und Roboterboard"
Print
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 2
Call Motortest 'Taste 2 Motoren beschleunigen und abbremsen
'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein
Case 4
Call Motorboard
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
If Ws < 1010 Then
Select Case Ws
Case 410 To 450
Tastenabfrage = 1
Ton = 550
Case 340 To 380
Tastenabfrage = 2
Ton = 500
Case 265 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
'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 1023
Wait 1
End Sub
'Nebencode
$regfile = "m32def.dat" '
$framesize = 40
$swstack = 40
$hwstack = 40
$crystal = 16000000
'Quarzfrequenz
Config Pinc.7 = Output
Motorboard_richtung Alias Portc.0
Config Pinc.6 = Output
Motorboard_pwm Alias Portc.4
Dim Compare As Word
Dim B As Word
Dim Down As Word
Pwm = 40
' Für Motorboardtest
'Ports für linken Motor
Config Pinc.7 = Output 'PWM-Signal
Config Pinc.6 = Output 'DIR-Pin
Dim Motorboard As Word
Sub Motorboard()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portc.4 = 1 'Linker Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 1023
End Sub
Dim P As Word
Dim Count As Integer
Count = 1
Do
For P = 1 To 1023
Dim Led_rot As Integer
Toggle Led_rot
Waitms 25
Next P
Wait 2
Dim Led_gruen As Integer
Toggle Led_gruen
Toggle Motorboard_richtung
Loop
Bitte um Hilfe
Lg Andy
Ich besitze ein rncontrol1.4 board. Dafür habe ich mir eine erweiterungsplatine für den HIGH Power Motortreiber gekauft um 2 zusätzliche Motoren anzusteuern.
Um Jetzt die Platine anzusprechen habe ich den V+ Pol mit dem Positiven Pol des Netzteiles Vrbunden. Auf dem PIN PWm hab ich den 7Pin des C-Portes angeschlossen. AUF dem Pin DIR den 8 Pin und GND habe ich mit dem 9 Pin verbunden sowie auch mit dem negativen Pol des Netzteiles.
http://www.robotikhardware.de/download/rncontrol14.pdf
http://www.robotikhardware.de/download/High_PowerMotortreiber18V15.pdf
Das ist jetzt noch der Code den ich am Mikrokntroller gespeichert habe:
'################################################# ##
'rncontroltest.BAS
'für
'RoboterNetz Board RN-CONTROL 1.4
'Das neue preiswerte Controllerboard zum experimentieren
'
'Aufgabe:
' Dieses Testprogramm testet gleich mehrere Eigenschaften auf dem Board
' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Zeigt Batteriespannung über RS232 an
' Taste 2: Angeschlossene Motoren beschleunigen und abbremsen
' Taste 3: Einige male Lauflicht über LED´s anzeigen. Am I2C-Bus
' darf in diesem Moment nichts angeschlossen sein
' Taste 4: Zeigt analoge Messwerte an allen Port A PIN´s über RS232 an
''Taste 5: Zeigt digitalen I/O Zustand von PA0 bis PA5 an
' Ser gut kann man aus dem Demo auch entnehmen wie Sound ausgegeben wird,
' wie Tasten abgefragt werden und wie Subroutinen und Funktionen angelegt werden
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'################################################# ######
Declare Sub Motortest()
Declare Sub Motorboard
Declare Function Tastenabfrage() As Byte
$regfile = "m32def.dat"
Dim I As Integer
Dim N As Integer
DIM Ton As Integer
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Const Ref = 5 / 1023 'Für Batteriespannungsberechnung
Dim Taste As Byte
Dim Volt As Single
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print "**** RN-CONTROL 1.1 *****"
Print "Das neue Experimentier- und Roboterboard"
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 2
Call Motortest 'Taste 2 Motoren beschleunigen und abbremsen
'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein
Case 4
Call Motorboard
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
If Ws < 1010 Then
Select Case Ws
Case 410 To 450
Tastenabfrage = 1
Ton = 550
Case 340 To 380
Tastenabfrage = 2
Ton = 500
Case 265 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
'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 1023
Wait 1
End Sub
'Nebencode
$regfile = "m32def.dat" '
$framesize = 40
$swstack = 40
$hwstack = 40
$crystal = 16000000
'Quarzfrequenz
Config Pinc.7 = Output
Motorboard_richtung Alias Portc.0
Config Pinc.6 = Output
Motorboard_pwm Alias Portc.4
Dim Compare As Word
Dim B As Word
Dim Down As Word
Pwm = 40
' Für Motorboardtest
'Ports für linken Motor
Config Pinc.7 = Output 'PWM-Signal
Config Pinc.6 = Output 'DIR-Pin
Dim Motorboard As Word
Sub Motorboard()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portc.4 = 1 'Linker Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 1023
End Sub
Dim P As Word
Dim Count As Integer
Count = 1
Do
For P = 1 To 1023
Dim Led_rot As Integer
Toggle Led_rot
Waitms 25
Next P
Wait 2
Dim Led_gruen As Integer
Toggle Led_gruen
Toggle Motorboard_richtung
Loop
Bitte um Hilfe
Lg Andy