-
        

Ergebnis 1 bis 8 von 8

Thema: Motoransteuern via RN CONTROL 1.4... Falscher Motor???

  1. #1

    Motoransteuern via RN CONTROL 1.4... Falscher Motor???

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.11.2006
    Ort
    Wien
    Beiträge
    120
    Der Motor funktioniert auch nur in einem gewissen Bereich.
    Wenn die maximale drehzahl bei 16000 liegt bekommst du den wahrscheinlich nicht unter 5000-6000.

    Um den auf 100U/min zu bekommen musst du ein Getriebe verwenden, welches natürlich auch die maximale Drehzahl herabsetzt.
    mfg
    Lync

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Einen Tipp zu den Spiegeln hätte ich noch. Du könntest einen Spiegel von einer Scannerkassa (Strichcode) oder von einem Messgerät, dass mit einem Laserstrahl misst, nehmen. Vielleicht kommst du an soetwas ran (vielleicht als Ersatzteil). Oder du könntest auch eine PC Lüfter umbauen. Lüfterflügel ab, Motor aus dem Rahmen und auf den Motor die Spiegel kleben. Bei den Varianten sind Motoren drauf. In der Firma, in der ich arbeite, haben wir Durchmessermessgeräte, indem sich ein Spiegel rotiert. Der Spiegel ist fix am Motor montiert.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Je nachdem waqs du genau vor hast, könnten Schritmotoren die bessere Wahl für dich sein. Die wrst du zwar nicht auf do hohe Drehzahlen wie 16kU/min bekommen, dafür kannst du sie bei kleineren Drehzahlen aber genau mit der Geschwindigkeit laufen lassen, die du benötigst.
    Wenn keine grosse Last benötigt wird reichen auch kleine Schrittmotore und die bekommst du z.B. bei www.pollin.de oder www.reichelt.de wahrscheinlich billiger als Getriebemotoren. Da Schrittmotore anders angesteuert werden, reicht der Motortreiber auf dem RN Control allerdings nicht für beide Motoren.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    30
    Beiträge
    1.400
    schrittmotoren machen alerdings auhc "schritte" wie der name ja sagt dies führt dann ja auhc zum ruckeln der spiegels. welches duerchaus unerwünscht sein könnte. man könnte sowas zwar durch mikroschritt minimieren dies ist dann aber schonwieder net ganz so einfach.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Als Tipp BLDC. Die sind für kontinuierliches Drehen ausgelegt, wie bei CD/DVD Laufwerken (und HDD)

  7. #7
    vielen dank für die vielen anregungen =)

    ja Schrittmotoren waren auch in überlegung, allerdings wollten wir kosten sparen und da wir unbedingt zwei motoren brauchen (soll ne lasershow werden). Das RN ControlBoard 1.4 kann zwei e-motoren oder ein Schrittmotor ansteuern, somit haben wir uns für die elektormotoren entschieden.

    Ein getriebe wäre ne möglichkeit... und E-motoren, die einfach einen kleineren grenzstrom besitzten und evlt. geringere drehzahlen aufweisen gibt es nicht?

    ich habe auf diversen modellbau seiten geschaut, alledings gilt da, desto schneller desto besser...? hmm...

    die im rechner verbauten FANs sind auch schrittmotoren? den die drehen teilweise recht langsam...

    auch dachte ich, dass ich mit der PWM sogut wie alle geschwindigkeiten fahren könnte...


    grüße

    _blumenKinD_

    --------------------------------------

    zu den BLDC motoren, laufen die praktisch immer nur bei verschiedenen geschwindigkeiten? den wir bräuchten einen motor, bei dem wir die drehzahl per einlesen einer analogen spannung (poti) regeln... d.h. man soll die geschwindigkeiten regeln können von beiden motoren und somit geometrische figuren mit der lasershow projezieren können...

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    In PC-Lüftern sind BLDC Motoren verbaut. Die haben die Elektronik schon integriert, da BLDC Motoren 3 Anschlüsse haben (wie bei Drehstrommotoren). Bei so niedrigen Drehzahlen würde ich ein Getriebe verwenden. Wenn du die Steuerung schon hast kannst du BLDC schon vergessen oder eine neue Steuerung kaufen (bauen). Ich würde es so machen, wie ich oben geschrieben habe. einen PC Lüfter nehmen. Die Flügel abschneiden und kleine Spiegel auf den Motor kleben (wo die Flügel befestigt waren). Den Rahmen solltest du ganz entfernen, dann musst du eine Befestigung basteln oder einen Teil des Rahmens entfernen, damit du die originalen Befestigungen nehmen kannst.

    Wie willst du mit einer konstanten Drehzahl Figuren projezieren? Irgendwo habe ich einmal einen Bausatz gesehen, der 2 Spiegel mit Servos verstellt. Ich glaube es war bei Conrad, bin mir nicht sicher, es ist schon länger her.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •