-         

Ergebnis 1 bis 6 von 6

Thema: [Gelöst] Hab Probleme mit dem Servo Mg995

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451

    [Gelöst] Hab Probleme mit dem Servo Mg995

    Anzeige

    Hallo,

    Ich hab hier 4 Stk von den dingern rumliegen und keiner will sich so bewegen wie er soll.

    Ich habe meinen Servo wie folgt angeschlossen:


    Der Akku ist ein Racingpack aus dem Modellbau mit 7.2V und 3A.

    Das komische ist, dass die billigen 5€ Servos vom "C" mit damit klar kommen und auch mit dem Programm, dass ich geschrieben hab, die funktionieren ohne Probleme.

    Nur die mg995 wollen einfach nicht. wenn sie sich mal bewegen, dann bewegen sie sich zu einem der beiden enden (kann jetzt nicht Sagen, ob max oder min).

    Mein Programm habe ich in assembler geschrieben. Es liest 8Bit werte über den ADC ein und gibt dann ein Signal von 0,6 -2,2 ms länge aus und wiederholt sich nach 19,2ms, was also passen sollte (kann das programm auch posten).

    Testen kann ich die Signale leider nicht, da ich kein oszi hab.
    Am Servo liegen laut meinem Messgerät 7,6V an und ich kann keinen Spannungseinbruch feststellen, is aber auch nur ein billiges Messgerät.

    Hoffe ihr könnt mir helfen

    mfg robin

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    hallo robin,

    - nur einen servo zur zeit testen, 3A sind nicht viel für diese Servos
    - ms verkürzen auf z.b. 15 ms
    - programm posten
    - auch einige einfache multimeter haben zumindest frequenzmessung, das kann schon eine nette hilfe sein. gibts schon für unter 40Euro
    - auch ein soundkarten-oszi kann bei sowas enorm helfen und kostet so gut wie nichts. sollte man sich mal anschauen, grade wenn man mit Servos zu tun hat

    Daumendrückend

    MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Hier ist der code:

    Code:
    Main:					
    		rcall Berechnung
    		rcall Ausgabe
    		push A1
    		ldi	A1,17
    		rcall WaitMs
    		pop A1
    rjmp Main
    
    ;-----------------------------------------------
    ;		UP zur ansteuerung der Servos
    ;-----------------------------------------------
    Ausgabe:
    		push A1
    		push A2
    		push B1
    		push B2
    		clr X1
    		ser A1
    		cli
    		ser B1
    		out Portd,B1
    		out Portb,A1
    		push B1
    		ldi B1,250
    loopp:	ldi B2,6
    loop:	dec B2
    		brne loop
    		dec B1
    		brne loopp
    		pop B1
    
    
    Se1:	
    		cp X1,var1
    		brne wait1
    		clr B1
    		subi A1,0b00000001
    		nop
    		rjmp Se2
    wait1:	
    		nop
    		nop
    		nop
    Se2:	
    		cp X1,var2
    		brne wait2
    		subi A1,0b00000010
    		nop
    		rjmp se3
    wait2:		
    		nop
    		nop
    		nop				
    Se3:	
    		cp X1,var3
    		brne wait3
    		subi A1,0b00000100
    		nop
    		rjmp se4
    wait3:
    		nop
    		nop
    		nop
    
    Se4:	
    		cp X1,var4
    		brne wait4
    		subi A1,0b00001000
    		nop
    		rjmp se5
    wait4:
    		nop
    		nop
    		nop
    
    Se5:	
    		cp X1,var5
    		brne wait5
    		subi A1,0b00010000
    		nop
    		rjmp se6
    wait5:
    		nop
    		nop
    		nop
    Se6:	
    		cp X1,var6
    		brne wait6
    		subi A1,0b00100000
    		nop
    		rjmp se7
    wait6:
    		nop
    		nop
    		nop
    Se7:	
    		nop
    		out Portd,B1
    		out portb,A1
    		nop
    		ser A2
    		cp X1,A2
    		brne se8
    		sei
    		pop B2
    		pop B1
    		pop A2
    		pop A1
    		ret
    se8:	
    		inc X1
    		rjmp Se1
    
    
    ;-----------------------------------------------
    
    waitMs:	push A2
    		push B1
    		push B2
    loop1:	ldi	r17,10	
    loop2:	ldi	r18,159	
    		nop
    		nop
    loop3:	dec	r18
    		nop
    		nop
    		brne	loop3
    		dec	r17
    		brne	loop2
    		dec	r16
    		brne	loop1
    		pop B2
    		pop B1
    		pop A2
    		ret		;Rücksprung
    Das Up Berechnung ist nur eine Abfrage des ADC Ports und speichert den Wert in var1 (servo1).

    Ich verwende nen Mega168 und die Routine dauert 19,2ms, Kann aber recht schnell runtergedreht werden, werd ich auch mal testen.

    edit: habs gad mit ner wait schleife mit 15 ms ausprobiert, will aber auch nicht.

    mfg robin

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Hab das problem endlich behoben.

    hab die initialisierung vergessen.

    Hätt ich vlt auch früher drauf kommen können.... aber da ich nur mit analogen Servos oder billigen Servos arbeite, hab ich nie dran gedacht, dem servo minimal und maximal werte am anfang zu senden.

    hätt mir des niemand sagen können?

    mfg robin

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    Interessant!

    Was für eine Initialisierung führst du nun durch?

    Die MG995 brauchen jedenfalls keine Initialisierung, vielleicht hat das, was du jetzt machst einen Nebeneffekt, der für die Lösung deines Problems verantwortlich ist.

    Gruß MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    hi,

    ich hab doch auch keine ahnung, warum des jetzt funktioniert.

    Och geb denen Servos zu begin einen 1ms impuls, dann einen 2 ms impuls, und dann kann ich sie ohne Probleme ansteuern.

    Ich hab immer nur Analoge Servos verwendet und diese funktionierten immer auf anhieb.

    In meiner Verzweiflung hab ich mir dann einfach gedacht, versuch ich des mal, da jedes mal, wenn ich nach dem MG995 gegoogled hab, irgentetwas von einem Motortreiber kam. Da ich ein bischen ahnung von Modellbau hab( hab ein RC Auto) und ma da auch die digitalen Motorregler initialisieren muss, hab ich mir einfach mal gedacht, versuch ich des mal. und siehe da, es klappt.

    mfg robin

Berechtigungen

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