- LiFePO4 Speicher Test         
Ergebnis 1 bis 7 von 7

Thema: Prob.: RNControl 1.4 rechter Motor kann nur Vorwärts drehen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    01.05.2006
    Beiträge
    56

    Prob.: RNControl 1.4 rechter Motor kann nur Vorwärts drehen

    Anzeige

    Powerstation Test
    Hi Leute..
    nachdem ich sogar die Motoren gewechselt habe, bzw auch Softwareseitig (Bascom) verschiedene Kombinationen ausprobiert habe, weiß ich nicht mehr weiter.

    Ich habe ein Raupenmodell dass sich beim Ausweichen auf der Stelle drehen soll... je nach dem wo mehr Platz ist nach links oder nach rechts.

    Beim Linksdrehen kann der linke Motor sich rückwärts drehen, der rechte vorwärts..

    Beim Rechtsdrehen bewegt sich nur der links vorwärts.. der rechte Motor sollte sich dabei rückwärts drehen, tut er aber nicht.. bleibt stehen..

    wie gesagt hab auch schon die Motoren andersrum angeschlossen.. dann gehts halt in die andere Richtung nicht -- > Motoren OK -- > Software OK

    ich nehme an das liegt nun am Board...

    kann ich den Motortreiber wechseln?? der ist doch gesockelt hab ich mal gelesen..


    Bitte helft mir

    Grüße, Flo

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    was heisst hier gelesen ? Wenn Du ein RN-Control hast, sieht man das doch
    Also der ist gesockelt,
    Du kannst auch evtl. mit einem Multimeter die Ausgänge direkt am Mega messen, ob die Richtungs-Pins richtig geschalten werden,
    beim PWM-Signal wirds schwieriger zu messen, kann man aber auch erkennen, ob was kommt.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    01.05.2006
    Beiträge
    56
    ja düüü ich bin doch grad noch einsteiger

    ja dann werd ich mal mein multimeter dranhängen und schauen was so ankommt..

    kann man sonst sagen, dass ein neuer motortreiber diesen fehler beheben wird?

    gruß, flo

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Sagen kann man das nicht,
    wenn Du allerdings einen reserve L293 da hättest ist das soweit am einfachsten diesen einfach mal zu tauschen, ansonsten ist messen angesagt, und dann wird es nur helfen ein paar Programmzeilen hier zu posten damit weitergeholfen werden kann.

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Kannst du sonst vorwärts und rückwärts fahren, oder ist der Fehler nur beim drehen. Wenn das ist würde ich eher auf einen Softwarefehler tippen.
    Wenn der L293 heraussen ist kannst du auf dem Sockel ja leicht messen, die Pin 9,10,15 gehören zu den Motorer 1,2 und die Pin 1,2,7 zu den Motoren 3,4

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    01.05.2006
    Beiträge
    56
    ich werd das demnächst mal messen, software fehler würde ich eigentlich ausschliessen, da ich da schon 2 monate dran rumdoktor..
    sonst rückwärtsfahren geht mit dem rechten motor auch nicht (also mit dem rechten anschluss). Wenn ich die motoren tausche geht halt der linke motor nicht rückwärts.. bzw umgepolt geht derjenige der an diesem anschluss ist nicht vorwärts..

    hier mal der code
    Code:
    
    
    $regfile = "m32def.dat"
    
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    
    
    
    Sound Portd.7 , 200 , 900                                   'BEEP
    
    'Servo Config
    Config Servos = 2 , Servo1 = Portd.3 , Servo2 = Portb.3 , Reload = 10       'Turmservo x
    Config Portd = Output
    Config Pinb.3 = Output
    
    
    Enable Interrupts
    'Ende Servo Config
    
    Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
    
    Config Pina.7 = Input                                       'Für Tastenabfrage
    Porta.7 = 1                                                 'Pullup Widerstand ein
    
    
    Const Ref = 5 / 1023                                        'Für Batteriespannungsberechnung
    
    Dim Volt As Single
    Dim D As Integer
    Dim I As Byte
    
    Dim A0 As Integer
    Dim A1 As Integer
    Dim A2 As Integer
    Dim A3 As Integer
    Dim A2_l As Integer
    Dim A2_r As Integer
    
    
    
    
    
    Dim Center As Integer
    Dim Servopos As Integer
    Dim Left As Integer
    Dim Right As Integer
    Left = 50
    Right = 150
    Center = 100
    Servopos = Center
    Servo(1) = Servopos
    
    Dim Center2 As Integer
    Dim Servopos2 As Integer
    Dim Oben As Integer
    Dim Unten As Integer
    Oben = 80
    Unten = 120
    Center2 = 100
    Servopos2 = Center2
    Servo(2) = Servopos2
    
    
    ' 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
    
    
    
    
    
    
    
    
    
    
    
    Wait 4
    
    Sound Portd.7 , 300 , 200
    Sound Portd.7 , 1000 , 500
    Sound Portd.7 , 100 , 500                                   'BEEP
    Sound Portd.7 , 100 , 600                                   'BEEP
    Sound Portd.7 , 100 , 700                                   'BEEP
    
    
    '### Hier startet Scout-Schleife  ################################################################################
    Do
    
     Servopos = Center
       Servo(1) = Servopos
      Servo(2) = Center2
    '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
    
    
    Pwm1b = 1023
    Pwm1a = 1023
    
    
    
    
    'Messung der Abstände
     Start Adc
       A0 = Getadc(0)
       A1 = Getadc(1)
       A2 = Getadc(2)
       D = Getadc(6)
    
    
    
       Volt = D * Ref
       Volt = Volt * 5.2941
    
       If Volt < 6 Then
    
       Do
    
       Pwm1a = 0
       Pwm1b = 0
    
       Sound Portd.7 , 200 , 400
       Waitms 100
       Sound Portd.7 , 200 , 400
       Waitms 100
       Sound Portd.7 , 200 , 400
       Waitms 100
       Sound Portd.7 , 1000 , 400
       Waitms 200
       Sound Portd.7 , 1000 , 400
       Waitms 200
       Sound Portd.7 , 1000 , 400
       Waitms 200
       Sound Portd.7 , 200 , 400
       Waitms 100
       Sound Portd.7 , 200 , 400
       Waitms 100
       Sound Portd.7 , 200 , 400
    
    
       D = Getadc(6)
    
    
    
       Volt = D * Ref
       Volt = Volt * 5.2941
    
       Wait 3
    
        For I = 100 To 150
       Servo(1) = I
       Waitms 100
       Next
    
       For I = 100 To 120
       Servo(2) = I
       Waitms 100
       Next
    
       For I = 150 To 50
       Servo(1) = I
       Waitms 100
       Next
    
       For I = 120 To 80
       Servo(2) = I
       Waitms 100
       Next
    
       For I = 50 To 100
       Servo(1) = I
       Waitms 100
       Next
    
       For I = 80 To 100
       Servo(2) = I
       Waitms 100
       Next
    
       Loop
    
       End If
    
    
    
    
    
    
    
    
    
     'nur ausweich-algorithmus während der Fahrt!
    
    
    If A1 > A0 Then
    If A1 > 250 Then
    If A1 < 290 Then
    
    Servo(1) = 70
    Servo(2) = Oben
    Pwm1b = 1010
    Pwm1a = 350
    
    
    
    Waitms 300
    
    Pwm1a = 1023
    Pwm1b = 1023
    
    
    
    Servo(1) = 100
    
     End If
     End If
     End If
    
    '##################################
    
    
    If A0 > A1 Then
    If A0 > 250 Then
    If A0 < 290 Then
    
    
    Servo(1) = 130
    
    Pwm1a = 1010
    Pwm1b = 350
    
    Waitms 300
    
    Pwm1a = 1023
    Pwm1b = 1023
    Servo(1) = 100
    
    
    End If
     End If
     End If
    
    
    '###############################
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    'If Schleife für Frontal Wand
    '********
    If A0 > 290 Or A1 > 290 Or A2 > 350 Then
    
    
    
    
    
    
    '## STOP
    Pwm1a = 0
    Pwm1b = 0
    
    Servo(2) = Oben
    
    '### BEEEPILEEEP
    Sound Portd.7 , 300 , 200
    Sound Portd.7 , 300 , 800
    Sound Portd.7 , 300 , 400
    Sound Portd.7 , 300 , 500
    Sound Portd.7 , 300 , 200
    Sound Portd.7 , 700 , 800
    
    
    
    
    
    'Servo kopf drehen, rechts links vermessen.
    '##########################################
    
    
      'Servopos = Center
      'Servo(1) = Servopos
       'Waitms 250
    
      Servopos = Left                                           'Servo nach links drehen
      Servo(1) = Servopos
    
    Waitms 250
      A2_r = Getadc(2)                                          'Sensor links auslesen und A2_l zuweisen
    'Sound Portd.7 , 300 , 200
    'Sound Portd.7 , 300 , 800
    
    Delay
    
     Servopos = Right                                           'Servo nach links drehen
      Servo(1) = Servopos
    
    
    
    Waitms 450
      A2_l = Getadc(2)                                          'Sensor rechts auslesen und A2_r zuweisen
     ' Sound Portd.7 , 300 , 800
      'Sound Portd.7 , 300 , 200
    Delay
    
    
    
    
    
        Servopos = Center
       Servo(1) = Servopos
      Servo(2) = Center2
    
    
    
    
    
    'Sound Portd.7 , 300 , 400
    'Sound Portd.7 , 700 , 800
    
    
    
    '####################################################
    If A2_l > A2_r Then                                         'wenn rechts mehr platz als links dann zurückfahren und nach rechts drehen
    
    
    
    'stop
    Pwm1a = 0
    Pwm1b = 0
    
    Servo(2) = Unten
    
    
    'Rechter Motor rückwärts
       Portb.0 = 0                                              'bestimmt Richtung rechter Motor
       Portb.1 = 1                                              'bestimmt Richtung rechter Motor
       Portd.5 = 1                                              'rechter Motor EIN
    
    
    'Linker Motor vorwärts
       Portc.6 = 1                                              'bestimmt Richtung
       Portc.7 = 0                                              'bestimmt Richtung
       Portd.4 = 1                                              'Linker Motor EIN
    
    
    
    '###########
    'nach rechts drehen
    
    
    
    Pwm1a = 1023
    Pwm1b = 1023
    
    Waitms 550
    
    'stop
    Pwm1a = 0
    Pwm1b = 0
    
    
    
    
    End If
    
    '####################################################
    
    
    
    If A2_r > A2_l Then                                         'wenn links mehr platz als rechts dann zurückfahren und nach links drehen
    
    
    
    'stop
    Pwm1a = 0
    Pwm1b = 0
    
    Servo(2) = Unten
    
    
    'Linker Motor rückwärts
       Portc.6 = 0                                              'bestimmt Richtung
       Portc.7 = 1                                              'bestimmt Richtung
       Portd.4 = 1                                              'Linker Motor EIN
    
    'Rechter Motor vorwärts
       Portb.0 = 1                                              'bestimmt Richtung rechter Motor
       Portb.1 = 0                                              'bestimmt Richtung rechter Motor
       Portd.5 = 1                                              'rechter Motor EIN
    
    
    
    
    '###########
    'nach links drehen
    
    Pwm1a = 1023
    Pwm1b = 1023
    
    Waitms 350
    
    'stop
    Pwm1a = 0
    Pwm1b = 0
    
    
    
    End If
    End If
    
    
    '####################################################
    
    
    
    
    
    
     Loop


    im endeffekt kann man ja einfach in dieser zeile die nullen zu einsen machen und umgekehrt (außer portd.4 und d.5), damit rückwärtsgefahren wird..
    das hat aber immer nur bei einem motor funktioniert..

    Code:
    '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

    bitte schaut mal drüber.. is zwar jetzt viel code.. und an einigen stellen hätte man das sicher geschickter machen können , aber ich denke besser alles gepostet bevor ich irgendwo was übersehen hab..

    bin aber grad auch schon am umstricken mit SUBS und Labels und so..
    aber das problem mit dem rückwärtsfahren bleibt halt :-\

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    01.05.2006
    Beiträge
    56
    zur besseren verständlichkeit des quelltextes oder meines problems
    hier die linksdrehung als video, bei der alles funktioniert:

    http://www.youtube.com/watch?v=XBVWv5dpz2I



    rechtsdrehung:

    http://www.youtube.com/watch?v=_I9JJUT6ZRY

    hier kann man dann erkennen dass sich die rechte kette nicht rückwärts dreht..



    PS: ton is bei den videos versetzt.. am besten ausmachen

Berechtigungen

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

Solar Speicher und Akkus Tests