- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 6 von 6

Thema: Rn Control Motoransteuern

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2009
    Beiträge
    15

    Rn Control Motoransteuern

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo ich bin recht neu auf demm gebiet microcontroler
    und habe mir daher ein Rn control zugelegt nun versuche ich schon den ganzen tag
    ein motor zum drehen zu bekommen der motor ist ein 0815 standert modelmotor so wie in fast jeden kleinen modelauto zu finden.
    Ich versuche die motor geschwindigkeit zu steuern
    mittels 2 taster und durch einen 3ten soll der motor angehalten werden.
    Bis dahin klapt das ganze auch ganz gut aber wie pole ich nun die drehrichtung vom motor um ?

    hier mal mein Bascom code
    Es ist übrigens nur ein motor am linken anschluss angeschlossen.
    Das ändern von Portc.6 und 7 also 1 oder 0 bewirkt irgendwie garnix -.-
    auch das ändern von Portd.4 schaltet den motor weder aus noch ein.
    Bin völlig ratlos wie das gehen soll ?

    Code:
     $regfile = "m32def.dat"                                    'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32
     $framesize = 32                                            'Stackanweisungen, die eigentlich nur bei größeren Programmen
     $swstack = 32                                              'wirklich nötig werden
     $hwstack = 32
     $crystal = 16000000                                        'Die Frequenz des verwendeten Quarzes
     $baud = 9600                                               'Die Baudrate für RS232 Ausgabe.
                                                                 'Sie muss auch bei PC Terminalprogramm identisch sein
    
    
    
    
    Dim I As Integer
    
    
    'Ports für linken Motor
    Config Portc.6 = Output                                     'Linker Motor Kanal 1
    Config Portc.7 = Output                                     'Linker Motor Kanal 2
    Config Portd.4 = Output                                     'Linker Motor PWM
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Pwm1a = 0
    Tccr1b = Tccr1b Or &H02
    'Linker Motor ein
    Portc.6 = 0                                                 'bestimmt Richtung
    Portc.7 = 1                                                 'bestimmt Richtung
    Portd.4 = 1                                                 'Linker Motor EIN
    I = 200
    
    Config Pinb.4 = Input
    Config Pinb.6 = Input
    Config Pinb.5 = Input
    
    Taster1 Alias Pinb.4
    Taster2 Alias Pinb.6
    Taster3 Alias Pinb.5
    Portb.4 = 1
    Portb.6 = 1
    Portb.5 = 1
    
    
    
    
    
    
    
    
    
    Do
    
     If Taster1 = 0 Then
     I = I + 10
     Else
     I = I
    End If
    Waitms 30
    
     If Taster2 = 0 Then
     I = I - 10
     Else
     I = I
    End If
    Waitms 30
    
     If Taster3 = 0 Then
     I = 0
     Else
     I = I
     Waitms 20
    End If
    Pwm1a = I
    
    
    Loop
    
    
    
    End
    Mfg marcus
    Das Leben ist ein scheiß Spiel aber die Grafik Rockt

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Ich würde erst einmal das mitgelieferte Testprogramm versuchen, dor werden auch die Motoren getestet.

    Code:
    '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
    Do
    Pwm1a = I
    Pwm1b = I
    Waitms 40
    I = I - 5
    Loop Until I < 1
    Pwm1a = 0 'Linker Motor aus
    Pwm1b = 0 '
    Das kann man dann vorsichtig an eigene Bedürfnisse anpassen.

    Gruß Richard

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2009
    Beiträge
    15
    genau das habe ich genommen nur war ich da schon das erste mal plat weil dort
    mit Config pinc.6 ein ausgang configuriert wird
    jedoch überall wo ich nachgucke ausgänge immer mit
    config portc.6 = output
    und eingänge mit
    config pinx.x configuriert werden
    Code:
    ' 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
    oder ist das egal ob config PINx.x oder PORTx.x genommen wird ?
    Das Leben ist ein scheiß Spiel aber die Grafik Rockt

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von Mars 018 Beitrag anzeigen
    genau das habe ich genommen nur war ich da schon das erste mal plat weil dort
    mit Config pinc.6 ein ausgang configuriert wird
    jedoch überall wo ich nachgucke ausgänge immer mit
    config portc.6 = output
    und eingänge mit
    config pinx.x configuriert werden
    Code:
    ' 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
    oder ist das egal ob config PINx.x oder PORTx.x genommen wird ?
    Bescheuerte Syntax, da muss ich auch immer wieder überlegen auch weil ich eher selten Programmiere und jedesmal wieder neu lerne. So in Erinnerung habe ich jetzt das mit den Port.x Befehl der Pull-Up ein/aus geschaltet wird und mit dem Pin.x Befehl der Pin gesetzt/gelöscht/gelesen wird. Aber bitte nagel mich jetzt nicht darauf fest.

    Gruß Richard

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    jedoch überall wo ich nachgucke ausgänge immer mit
    config portc.6 = output
    und eingänge mit
    config pinx.x configuriert werden
    Also - als Eingänge braucht man die I/O-Ports nicht extra zu konfigurieren - das sind sie nach dem Einschalten des Controllers automatisch. Ganz einfach deshalb, weil ein hochohmiger Eingang keinen Schaden anrichten kann, auf welchen Pegel er auch immer gelegt wird - das wäre bei einem H oder L führendem Ausgang schon anders.

    Im auswendig lernen war ich auch noch nie besonders gut - und deshalb benutze ich die DDR-Register (DDR = "Data Direction Register"), um I/O-Pins als Ausgang zu konfigurieren. Das hat auch den Vorteil, dass Du nur eine einzige Zeile Code brauchst, und alle einzelnen gewünschten "Beinchen" auf einmal als Ausgänge konfigurieren kannst.

    Um wie in Deinem Beispiel die Anschlüsse C.6 und C.7 als Ausgänge zu konfigurieren, reicht diese Zeile:

    DDRC = &B11000000

    Alternativ könntest Du es auch "einzeln" machen:

    DDRC.7 = 1
    DDRC.6 = 1

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2009
    Beiträge
    15
    ah okay danke das heisst das alle pins immer eingänge sind und ich im prinzip nur die ausgänge devinieren muss ^^ okay das vereinfacht die ganze sache ja mal erheblich ^^
    danke aber mit demm motor drehrichtung wechseln bin ich leider noch immer nicht weiter -.-

    mfg marcus

    so hab jetzt noch mal das tastprogramm zerflückt

    Code:
    $regfile = "m32def.dat"                                    'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32
     $framesize = 32                                            'Stackanweisungen, die eigentlich nur bei größeren Programmen
     $swstack = 32                                              'wirklich nötig werden
     $hwstack = 32
     $crystal = 16000000                                        'Die Frequenz des verwendeten Quarzes
     $baud = 9600
    
    
     Dim I As Integer
     '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
    
    
    
    
    'Testet Motoren und Geschwindigkeitsreglung1
    
    
    '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
    
    Wait 3
    
    'Testet Motoren und Geschwindigkeitsreglung2
    
    
    'Linker Motor ein
    Portc.6 = 0                                                 'bestimmt Richtung
    Portc.7 = 1                                                 'bestimmt Richtung
    Portd.4 = 1                                                 'Linker Motor EIN
    
    'Rechter Motor ein
    Portb.0 = 0                                                 'bestimmt Richtung rechter Motor
    Portb.1 = 1                                                 '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
    und siehe da der rechte motor macht auch das was er soll nur der linke motor macht nichts und dreht sich nur in eine richtung ? das doch nicht normal kann da der motortreiber baustein dingens kaput sein ? oder vil falschherum drinne an denn motoren liegts nicht hab sie vertauscht geht trotzdem immer nur der rechte -.-

    mfg marcus
    Geändert von Mars 018 (07.06.2011 um 13:38 Uhr)
    Das Leben ist ein scheiß Spiel aber die Grafik Rockt

Ähnliche Themen

  1. C-Control Mega128 über das Programm "C-Control Pro"
    Von Hagen_tb im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 1
    Letzter Beitrag: 11.10.2009, 09:09
  2. Motoransteuern via RN CONTROL 1.4... Falscher Motor???
    Von _blumenKinD_ im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 14.09.2009, 10:41
  3. Was ist besser zum Motoransteuern
    Von Skynet im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 01.03.2007, 16:25
  4. C-Control Main Unit & C-Control M-Unit verbinden?
    Von Speed im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 1
    Letzter Beitrag: 18.06.2005, 09:05
  5. Discovery Bot oder RN-Control 1.4 vs. C-Control
    Von Xtreme im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 14
    Letzter Beitrag: 06.06.2005, 18:15

Berechtigungen

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

Solar Speicher und Akkus Tests