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