- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: PWM und Rn.control

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2005
    Alter
    37
    Beiträge
    140

    PWM und Rn.control

    Anzeige

    Powerstation Test
    Also ich habe berits verstanden was PWM ist. nur ist mir nur nicht klar wie ich jetzt die Spannung an den Motorausgängen schalten kann.
    Ich habe eine Rn Control 1.4 Dort gibts es ja diese Motorkanäle die will ich ansteuern doch wie ?

    Code:
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
    
    Do
     Compare1a = 50
     Compare1b = 250
    Loop
    
    End
    Wo kommt die PWM Spannung raus . welcher Ports sind die Motorkänale oder wie funzt das ganze

    greetz Larzarus...

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    schau Dir dazu am besten das Beispielprogramm an, das auf der CD dabei ist,
    da gibt es diesen Teil:

    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                                      'Rechter Motor PWM
    
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Pwm1a = 0
    Pwm1b = 0
    Mit PWM kannst Du nun schon mal eine Geschwindikeit regeln,
    nur bis jetzt dreht sich kein Motor.
    Damit beim Motor auch was ankommt, muss Du die Richtung vorgeben,
    das geht mit den anderen beiden Ausgängen.
    Das sich der Motor in eine bestimmte Richtung dreht einen der beiden Ausgänge auf 1, den anderen auf 0,
    für die andere Richtung eben anders rum.

    zB. so:
    Code:
       'Linker Motor ein
       Portc.6 = 1                                              'bestimmt Richtung
       Portc.7 = 0                                              'bestimmt Richtung
    Die Richtung hängt natürlich davon ab wie Du den angeklemmt hast, kann man hier aus der ferne ned sehen

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2005
    Alter
    37
    Beiträge
    140
    Ja wenn ich das auf das board lade ist nur die led an weil die an portc.7 und portc.6 hängt also wie bekomme ich die spannung nun an den motorkanal


    THX aber schonmal

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2005
    Alter
    37
    Beiträge
    140
    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 'Rechter Motor PWM
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Pwm1a = 255
    Pwm1b = 500
    
    
    
    Tccr1b = Tccr1b Or &H02                                     'Prescaler = 8
    
    
    
    '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
    Hier leuchtet definitiv nur die eine LEd und an den Motorkanälen kommt nix

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Wenn die LED leuchtet, muss auch was am Motor ankommen, wenn PWM höher eingestellt wird, denn PWM geht bis 1024, bei 255 tut sich noch nicht allzuviel.
    Bei 1024 muss die volle Eingangsspannung(Netzteil) an den Motorklemmen anliegen.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2005
    Alter
    37
    Beiträge
    140
    Auch hier wieder die musterlösung die funktioniert aber ich verstehe jetzt nicht wo der unterschied zu dem proggi oben ist Vielen dank ....

    und was ist das hier ?
    Tccr1b = Tccr1b Or &H02
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    
    ' 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
    
    
    
    '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
    
    
    Pwm1a = 1023
    Pwm1b = 1023
    
    
    
    
    
    
    End

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Zitat Zitat von Larzarus
    und was ist das hier ?
    Tccr1b = Tccr1b Or &H02
    bei mir gehts auch ohne diese Zeile, anscheinend gabs da mal einen Bug in Bascom, deshalb wurde der Prescaler nochmal von Hand gesetzt.

    Der Unterschied zum anderen Programm, hattest Du vorher schon die Geschwindigkeit angegeben mit $crystal =, denn darauf wird der Timer eingerichtet ?
    Und den Controller mit $regfile = ?
    Wenn diese beiden Zeilen nicht im Programm stehen, wird die Einstellung verwendet, die man in Bascom macht, und das war dann bestimmt nicht der M32 mit 16MHz !?

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2005
    Alter
    37
    Beiträge
    140
    stimmt nun jetzt habe ich schon wieder ein neues problem
    ICh will das der roboter rum fährt und sobald er einem hindernis näher kommt so er abbremsen und ausweichen...
    meine frage ist jetzt wie progge ich das
    denke mal I ist dann eine varibale die immer weniger wird
    I = 700
    I = 600
    ....
    aber wie mache ich das denn wenn es in der schleife läuft dann ist die spannung nicht immer konstant ...
    hoffe ihr versteht mein problem...

    wie mache ich sowas
    If A > 65 Then Portc.7 = 1 Else Portc.7 = 0 I = 100 K= 1023
    If A > 140 Then Portc.6 = 1 Else Portc.6 = 0 I = 200 K= 1023
    If A > 180 Then Portc.5 = 1 Else Portc.5 = 0 I = 350K= 1023
    If A > 220 Then Portc.4 = 1 Else Portc.4 = 0 I = 450 K= 1023
    If A > 270 Then Portc.3 = 1 Else Portc.3 = 0 I = 550 K= 1023
    If A > 350 Then Portc.2 = 1 Else Portc.2 = 0 I = 700 K= 1023
    If A > 400 Then Portc.1 = 1 Else Portc.1 = 0 I = 900 K= 1023
    If A > 530 Then Portc.0 = 1 Else Portc.0 = 0 I = 1023 K= 1023

    Pwm1a = I
    Pwm1b = K

    Das ich deklarieren muss ist klar doch zeigt er mir immer fehler an denke muss irgenwie logisch verknüpft werden plz help me

    Danke ihr seit echt super Greetz linux


    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    
    ' 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
    
    
    'ADC
    Config Porta = Input
    Config Portc = Output
    Config Adc = Single , Prescaler = Auto
    Dim A As Word
    
    
    
    '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
    
    
    
    Enable Interrupts
    
    Start Adc
    
    Do
      '1 = aus
      '0 = an
    
    
    A = Getadc(0)
    
    If A > 65 Then Portc.7 = 1 Else Portc.7 = 0
    If A > 140 Then Portc.6 = 1 Else Portc.6 = 0
    If A > 180 Then Portc.5 = 1 Else Portc.5 = 0
    If A > 220 Then Portc.4 = 1 Else Portc.4 = 0
    If A > 270 Then Portc.3 = 1 Else Portc.3 = 0
    If A > 350 Then Portc.2 = 1 Else Portc.2 = 0
    If A > 400 Then Portc.1 = 1 Else Portc.1 = 0
    If A > 530 Then Portc.0 = 1 Else Portc.0 = 0
    
    Pwm1a = 1023
    Pwm1b = 512
    
    
    Waitms 1
    Loop
    
    
    
    
    
    
    
    
    
    End

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    30
    Beiträge
    1.641
    Woher kommt A? Ist das der Sensor? Außerdem möchte Bascom glaub ich end ifs und soweiter.
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2005
    Alter
    37
    Beiträge
    140
    hat sich schon erledigt doch trotzdem danke.
    das mit den endif ist klar mir ging es nur um die realsisierung..
    ja a ist vom sensor

    If A > 65 Then Portc.7 = 1 Else Portc.7 = 0"""""" I = 100 K= 1023 """"""

    wie mach ich sowas wie in den klammern das ich zwei variablen werte zu weise da muss was getrennt oder so werden

    GREETZ & THX

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests