-
-
Motoransteuern via RN CONTROL 1.4... Falscher Motor???
hallo,
ich habe ein problem und zwar möchte ich mit dem Controllerboard "rn control 1.4" zwei elektromotoren ansteuern.
das ganze klappt auch soweit, da es in der demo ein beispielt dazu gab.
nun ist es aber allerdings so, dass wenn ich den parameter PWM=1023 einstelle der motor alles gibt was er hat... (glaub ca. 16k upm) und genau da liegt das problem! sobald ich die PWM runterfahre fährt er vielleicht langsamer aber man erkennt es nicht da er immer noch viel zu schnell ist... bein der einstellung PWM=150 tut sich nichts mehr... (ist das die schwellstrom grenze)
die motoren sind keiner last ausgesetzt... sie sollen nur spiegel rotieren lassen die relativ klein sind (wie beim zahnarzt ^^)...
nun stellt sich mir die frage, hab ich evlt. falsche motoren oder was kann ich einstellen um den motor auch mit z.b. 100 upm zu fahren?
da ich ein absoluter rookie bin auf dem gebiet würde ich mich um hilfestellungen freuen =)
grüße
_blumenKinD_
-------------------------------------------------------------------------------
ich füge noch den quellcode ein evtl. mache ich auch was in sachen programmierung falsch... ich will eigentlich nur wissen, ob diese kleinen motoren auch langsam fahren können oder wenn sie anfahren gleich richtig abegehen ^^
Quellcode:
' Programm für Tastenabfrage und Motoransteuerung
Declare Sub Motorgeschw1()
Declare Sub Motorgeschw2()
Declare Sub Motorgeschw3()
Declare Sub Motorgeschw4()
Declare Sub Motorgeschw5()
Declare Function Tastenabfrage() As Byte
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
Dim I As Integer
Dim N As Integer 'wird N benötigt?
Dim Ton As Integer
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'Baudgeschwindigkeit
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Dim Taste As Byte
'Initialisierung der einzelnen Ports am Atmel für Motorsteuerung
Config Pinc.6 = Output 'Linker Motor Kanal1
Config Pinc.7 = Output 'Linker Motor Kanal2
Config Pind.4 = Output 'Linker Motor Puls-Weiten-Modulation (PWM)
Config Pinb.0 = Output 'Rechter Motor Kanal1
Config Pinb.1 = Output 'Rechter Motor Kanal2
Config Pind.5 = Output 'Rechter Motor Puls-Weiten-Modulation (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
Print "Motorsteuerungs Programm"
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Motorgeschw1 'Taste1 Motoren drehen mit Differenzgeschw. 1
Case 2
Call Motorgeschw2 'Taste2 Motoren drehen mit Differenzgeschw. 2
Case 3
Call Motorgeschw3 'Taste3 Motoren drehen mit Differenzgeschw. 3
Case 4
Call Motorgeschw4 'Taste4 Motoren drehen mit Differenzgeschw. 4
Case 5
Call Motorgeschw5 'Taste5 Motoren drehen mit Differenzgeschw. 5
End Select
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 < 500 Then
Select Case Ws
Case 400 To 450
Tastenabfrage = 1
Ton = 550
Case 330 To 380
Tastenabfrage = 2
Ton = 500
Case 260 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 90 To 130
Tastenabfrage = 5
Ton = 350
' Case Else
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
'Testet Motoren und Geschwindigkeitsreglung1
Sub Motorgeschw1()
'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
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub
'Testet Motoren und Geschwindigkeitsreglung2
Sub Motorgeschw2()
'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
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub
'Testet Motoren und Geschwindigkeitsreglung3
Sub Motorgeschw3()
'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
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub
'Testet Motoren und Geschwindigkeitsreglung4
Sub Motorgeschw4()
'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
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub
'Testet Motoren und Geschwindigkeitsreglung5
Sub Motorgeschw5()
'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
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen