-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: telco2108 bei 7,2V und 3500 mA ?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.10.2004
    Ort
    Stuttgart
    Alter
    30
    Beiträge
    59

    telco2108 bei 7,2V und 3500 mA ?

    Anzeige

    hi RN-Control und rn-motor funktionieren inzwischen *freu*

    hab an dem rn-motor einen 7,2V akku hängen, wenn ich jetzt versuche einen Schrittmotor anzusteuern, leuchtet die led.
    das bedeutet, das die spannung zu niedrig liegt?
    oder lieg ich da falsch *gg*

    danke schonmal
    gruß phreak

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    07.10.2004
    Ort
    Stuttgart
    Alter
    30
    Beiträge
    59
    hmmm komisch selbst wenn garkein motor am RN-Motor angeschlossen ist leuchtet die kontroll led oO ???
    gruß phreak

  3. #3
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.989
    Blog-Einträge
    1
    Das ist logisch, denn wenn nix dran hängt fließt klein Strom. Da die LED immer leuchtet wenn Strom niedriger als Sollwert ist, leuchtet diese in diesem Fall auch (0 < Soll).
    Wenn der Motor stark genug für dich dreht, ist übrigens eine leuchtende LED auch ok.

  4. #4
    Gast

    Nochmalige ausfühliche erklärung und problembeschreibung

    Also ich werde nochmal kurz auf alles eingehen was wir aufgebaut haben...und das Problem das sich ergiebt.

    Das RN-Control ist per I2C mit dem RN-Motor verbunden. RS232 hängt am RN-Motor. Und ich programmier per ISP, das Steuerboard. Soweit funktioniert alles. Ich kann programmieren, ich kann das Programm uploaden und einige Befehle schon ausprobieren, mithilfe der taster. Hier das Programm welches ich benutze....

    Code:
    Declare Sub Motortest()
    Declare Sub Lauflicht()
    Declare Sub Aendereslaveid()
    Declare Sub Motoran()
    Declare Function Tastenabfrage() As Byte
    
    
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    
    Dim I As Integer
    Dim N As Integer
    Dim Ton As Integer
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600
    
    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
    
    Const Befehl_maxstrom = 1
    Const Befehl_referenzspannung = 2
    Const Befehl_stop = 3
    Const Befehl_drehrichtung = 4
    Const Befehl_schrittanzahl_drehen = 5
    Const Befehl_endlos_drehen = 6
    Const Befehl_einzigen_schritt = 7
    Const Befehl_geschwindigkeit = 8
    Const Befehl_ausschalten = 9
    Const Befehl_einschalten = 10
    Const Befehl_konfiguration_zeigen = 11
    Const Befehl_sleep_modus = 12
    Const Befehl_motor_selektieren = 13
    Const Befehl_schrittmotormodus = 14
    
    Const Motor_links = 0
     Const Motor_rechts = 1
    
    Const I2crnmotorslaveadr = &H56                             'I2C SlaveAdresse von RN-Motor Erweiterung
    Const I2crnmotorsreadlaveadr = &H57
    
    Dim Taste As Byte
    Dim Volt As Single
    
    Dim I2cdaten(6) As Byte                                     'Array um Befehlsfolge auszunehmen
    Dim Lowbyte As Byte
    Dim Highbyte As Byte
    Dim Schritte As Long
    Dim Temp As Byte
    Dim Ltemp As Long
    Dim Umdrehungen As Single
    Dim Fahrstrecke As Word
    
    Dim Geschwindigkeit As Byte
    
    
    
    
    
    ' 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
    
    Config Scl = Portc.0                                        'Ports fuer IIC-Bus
    Config Sda = Portc.1
    
    Geschwindigkeit = 250
    I2cinit
    
    Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
    Config Pina.7 = Input                                       'Für Tastenabfrage
    Porta.7 = 1                                                 'Pullup Widerstand ein
    
    
    I = 0
    Sound Portd.7 , 400 , 450                                   'BEEP
    Sound Portd.7 , 400 , 250                                   'BEEP
    Sound Portd.7 , 400 , 450                                   'BEEP
    Print
    Print "**** RN-Control 1.4 *****"
    Print "Das neue Experimentier- und Roboterboard"
    Print "Weitere passende Zusatzboards bei www.robotikhardware.de"
    Print
    Do
    
    
    
    
       Taste = Tastenabfrage()
       If Taste <> 0 Then
    
          Select Case Taste
             Case 1
                'Motorstrom auf 200mA begrenzen
                I2cdaten(1) = 10                                'Kennung muss bei RN-Motor immer 10 sein
                I2cdaten(2) = Befehl_maxstrom                   'Befehlscode
                I2cdaten(3) = Motor_links                       '1 Parameter
                I2cdaten(4) = 900 / 10                          '2 Parameter (hier Milliampere /10 in diesem Fall wird 200mA eingestellt)
                I2csend I2crnmotorslaveadr , I2cdaten(1) , 5    'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
                I2cstop
    
                'Halbschrittmodus
    '            I2cdaten(1) = 10                                'Kennung muss bei RN-Motor immer 10 sein
    '            I2cdaten(2) = Befehl_schrittmotormodus          'Befehlscode
    '            I2cdaten(3) = 1                                 'Beide Motoren Halbschrittmodus
    '            I2csend I2crnmotorslaveadr , I2cdaten(1) , 5    'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
    
    
                'Motor einschalten
                I2cdaten(1) = 10                                'Kennung muss bei RN-Motor immer 10 sein
                I2cdaten(2) = Befehl_einschalten                'Befehlscode
                I2cdaten(3) = Motor_links                       '1 Parameter
                I2csend I2crnmotorslaveadr , I2cdaten(1) , 5    'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
    
                                       'Taste 1 Zeigt Bateriespannung über RS232 an
             Case 2
                Call Motortest                                  'Taste 2 Motoren beschleunigen und abbremsen
             Case 3
                Call Lauflicht                                  'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein
    
    
          End Select
          Sound Portd.7 , 400 , 500                             'BEEP
       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)
      ' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
       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
    '              Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
          End Select
          Sound Portd.7 , 400 , Ton                             'BEEP
    
       End If
    
    '   If Ws < 1023 Then
    '      Select Case Ws
    '         Case 895 To 910
    '            Tastenabfrage = 1
    '            Ton = 550
    '         Case 870 To 894
    '            Tastenabfrage = 2
    '            Ton = 500
    '         Case 650 To 690
    '            Tastenabfrage = 3
    '            Ton = 450
    '         Case 450 To 480
    '            Tastenabfrage = 4
    '            Ton = 400
    '         Case 220 To 280
    '            Tastenabfrage = 5
    '            Ton = 350
    '      End Select
    '      Sound Portd.7 , 400 , Ton                             'BEEP
    '    End If
    
    End Function
    
    
    Sub Aendereslaveid()
       I2cdaten(1) = 10                                         'Kennung muss bei RN-Motor immer 10 sein
       I2cdaten(2) = 15
       I2cdaten(3) = 99                                         '1 Parameter Sicherheitskennung
       I2cdaten(4) = 99                                         '2 Parameter Sicherheitskennung
       I2cdaten(5) = &H58                                       'Hier neue Slave ID Eintragen
       I2csend I2crnmotorslaveadr , I2cdaten(1) , 5             'Befehl wird gesendet (es müssen immer 5 Bytes gesendet werden, auch wenn weniger Parameter notwendig sind)
    End Sub
    
    
    '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
    
    
          Pwm1a = 1000
          Pwm1b = 1000
          Waitms 5000
       Pwm1a = 0                                                'Linker Motor aus
       Pwm1b = 0                                                'rechter Motor aus
    End Sub
    
    
    'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein
    Sub Lauflicht()
    
       Config Portc = Output
       Portd = 0
       For N = 1 To 10
          For I = 0 To 7
             Portc.i = 0
             Waitms 100
             Portc.i = 1
          Next I
       Next N
       Config Portc = Input
    End Sub
    Taste 2, funktioniert. Taste 3 ebenfalls. Bei Taste 1, also der ansteuerung des Motorboards ist im Hyperterminal folgendes zu lesen:

    Code:
    RN-Motor ST I2C- Firmware 1.6c (c) robotikhardware.de
    
    Referenzspannung = 2.5
    SlaveId = Hex 56
    Linker Motor Drehrichtung: 0
    Linker Motor maximaler Strom : 0.09999996
    Linker Motor Geschwindigkeit:5
    Linker Motor PWM-Vorgabe im Stillstand:0
    Linker Motor aktueller PWM-Wert :0
    
    Rechter Motor Drehrichtung: 0
    Rechter Motor maximaler Strom : 0.09999996
    Rechter Motor Geschwindigkeit:5
    Rechter Motor PWM-Vorgabe im Stillstand:0
    Rechter Motor aktueller PWM-Wert :0
    Motor:0 Max. Strom:0.899999973 Max-ADC=188
    OK
    Motor:0 ein
    OK
    RN-Motor liefert also ein OK zurück. Der Strom mit 900mA müsste ja passen. Was mir sorgen macht ist die Spannung. Heisst "Max-ADC=188" das die Spannung bei 1,88 Volt liegt? Wie kann ich die den ändern? Mit meinem Programm? Jedes Board ist mit einem Akkupack mit 7,3 Volt und 3300mA versehen. Ich will meine Motoren mit mindestens 6 Volt ansteuern. Wo geht das jetzt.

    Hoffe ich hab alles erklärt,
    danke für die Aufmerksamkeit.
    Nimrott

  5. #5
    Gast
    Nein ADC=188 ist mehr ein interner Wert der nur für mich bei der Fehlerdiagnose wichtig ist/war. Du solltest nur auf die eingestellten Stromwerte achten, dann stimmt das schon. Auf die Spannungen musst du garnicht achten, denn der Strom ist bei Schrittmotoren entscheident. Die richtige Spannung ergibt sich automatisch.

    Gruß Frank

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    23.03.2005
    Beiträge
    30
    sollte ich jetzt also bei der Stromstärke von 900mA
    also "I2cdaten(4) = 900 / 10" mal höher gehen ? Damit die Spannung höher wird ? Da trau ich mich eigentlich nicht ran, weil der Motor wie gesagt nur mit 1000mA laufen soll.

  7. #7
    Gast
    Ich kenn den Motor nicht. Aber wenn er 900mA verträgt, dann kannst du auch 900 mA einstellen (also I2cdaten(4) = 900 / 10)

    Man muss die Motoren aber nicht mit vollem Strom ansteuern. Wenn er seine Arbeit auch mit ca. dem halben Strom schafft, dann nimm erstmal die Hälfte. Erhöht Akkus-Fahrzeit

  8. #8
    Gast
    Aber er fährt ja ÜBERHAUPT NICHT,
    nicht bei 200mA, und nicht bei 900mA.
    nur das gelbe LED leuchtet

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    23.03.2005
    Beiträge
    30

    An was kann denn das noch liegen, das meine Motoren n

    An was kann denn das noch liegen, das meine Motoren nicht laufen?
    Frank du hast phreak mal geschrieben dass
    rot -- 10
    schwarz -- 20
    gelb -- 30
    grün -- 40

    gelb und grün hab ich auch schon vertauscht. Ich stecke gerade einfach, weil ich nicht weis was ich noch machen soll...soll ich irgendwas messen oder überprüfen? Oder liegts an der programmierung ?
    das rn-motor meldet ja aber zurück das der motor angeschalten wurde.....

  10. #10
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.989
    Blog-Einträge
    1
    Ach ja, du hattest das hier gepostet:



    Du kannst auch nochmal folgenden Anschluss ausprobieren:

    rot -- 10
    schwarz/weiss -- 20
    grün -- 30
    gelb/weiss -- 40

    Verbinden musst du rot/weiss+schwarz
    und grün/weiss + gelb

    So könnte es auch gehen wenn sich bislang nix tut.

    Gruß Frank

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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