Brauche Hilfe beim hacken von Modelcraft Servo MC-410 auf endlos Rotation
Hallo,
Habe 2 Servos vom Typ Modelcraft MC-410 die ich nach diversen
Anleitungen aus dem Netz auf endlos Rotation umgebaut haben.
Potentiometer entfernt , 2 Stk. 2.2K Ohm Wiederstände als Spannungsteiler
eingelötet und den Zahnrad Endanschlag entfernt , sowie
im großen Zahnrad die fehlenden Zähne mit einer Feile nachgefeilt.
(Zahnrad ist nur bis zum Anschlagspunkt mit Zähnen versehen!)
alles soweit so gut, Servos an PIC16F Microcontroller angeschlossen
und Software aufgespielt.
Servos drehen sich vor,zurück und bleiben auch stehen
wenn ich 1-2ms Impulse sende.
Sample Source der bei mir funktioniert:
__________________________________
#chip 16F628A, 4
#config OSC = INT
#config MCLR = OFF
DIR PORTB.5 OUT
main:
pulseout PORTB.5,100 10us
wait 20 ms
goto main
__________________________________
Jetzt zum Problem:
Wenn das Computer Programm komplexer wird, z.B
durch Unterprogramme mit Call Subroutine oder Gosub
Anweisungen , dann bleibt das Servo
nach ein paar Sekunden stehen und rührt sich
nicht mehr.
Sample Source der bei mir nicht funktioniert:
_______________________________________
'Chip und Takt
#chip 16F628A, 4
' Interner Takt
#config OSC = INT
' MCLR Pin as Digital Input Port nutzbar
#config MCLR = OFF
' Watchdog aus
#config WDT = OFF
'LED PIN
DIR PORTB.6 OUT
#define SoundOut PORTB.7
'Servo 1
DIR PORTB.4 OUT
'Sevo 2
DIR PORTB.5 OUT
dim za1 as integer
SET PORTB.6 ON
main:
call vor()
' wait 3000 ms
call re()
' wait 3000 ms
call re()
' wait 3000 ms
call vor()
' wait 3000 ms
call li()
' wait 3000 ms
call li()
' wait 3000 ms
goto main
sub vor
for za1 = 1 to 50
'Li vor
pulseout PORTB.5,200 10us
'Re vor
pulseout PORTB.4,100 10us
wait 20 ms
next
end sub
sub rue
for za1 = 1 to 50
'Li zurück
pulseout PORTB.5,100 10us
'Re zürück
pulseout PORTB.4,200 10us
wait 20 ms
next
end sub
sub re
for za1 = 1 to 50
'Li vor
pulseout PORTB.5,200 10us
'Re vor
'pulseout PORTB.4,100 10us
wait 20 ms
next
end sub
sub li
for za1 = 1 to 50
'Li vor
'pulseout PORTB.5,200 10us
'Re vor
pulseout PORTB.4,100 10us
wait 20 ms
next
end sub
__________________________________________________ __
Auch das ändern in gosub-return Anweisungen bringt leider nichts.
Ich benutze zur Programmierung
die Sprache Great Cow Basic (aktuelle Version)
Geprüft habe ich die Hard und Software mit einem
Oszilloskop das ein PWM Signal von ca. 20ms LOW
und 1-2ms High anzeigt.
Die Software wurde mit Oshonsoft Simulator IDE geprüft
und zeigt auch nornmales Verhalten.
Also: Servohardware funktioniert , Software funktioniert
wenn ein ganz simpler Sourcecode nur
die Motore ein und aus schaltet.
Was kann das Problem verursachen?
Hatte jemand schon mal den gleichen Fehler?
Bitte um Anregungen!
Vielen Dank!
Grüße Hermann
Liste der Anhänge anzeigen (Anzahl: 1)
Erster Erfolg beim servo hacken...
Hallo,
Vielen Dank für die zahlreichen Antworten.
Habe jetzt 2 alte Servos Typ Modelcraft S21 (auch gehackt) an die PIC16F Hardware angeschlossen
und siehe da, es läuft alles wunderbar.
Es kann also nur an den Servos Typ:MC-410 gelegen haben. (Modelcraft MC-410)
mit 1-2ms sind Pulse von 1 Millisekunden bis 2 Millisekunden gemeint
also Pulsweitenmodulation wie bei Standard Servos üblich.
Der Tip , das die Stromversorgung bei 2 Servos zusammenbricht scheint mir
wahrscheinlich. Es könnte sein das die MC-410 Servos mehr Strom brauchen
als die S21-Servos.
Zur Great Cow Basic Version, die ist Version 0.95
Testprogramm ist bei mir Oshonsoft PICSimulatorIDE von: www.oshonsoft.com
Stromlaufplan wie folgt
Anhang 32069
leider etwas unscharf durch das verkleinern.
(ich weis leider nicht wie man hier große Bilder reinstellt,
bitte um Aufklärung)
Vielen Dank
Grüße Hermann
- - - Aktualisiert - - -
P.S.
zum Sourcecode der mit den Modelcraft MC-410 Servos nicht funktioniert.
das erste Unterprogramm wird ausgeführt, nähmlich " Call vor()".
alle zwei Servos drehen sich vorwärts und
bleiben dann nach ca. 3 Sekunden stehen bis
ich den PIC16 neu aus und wieder ein schalte.
noch etwas zur Stromversorgung:
ich verwende 4 Akkus Ansmann 1,2Volt 1000mAh
und komme auf 5,2Volt im voll geladenen Zustand.
Grüße Hermann
- - - Aktualisiert - - -
P.S
Link zum Foto : Schaltplan1.jpg
Link
https://pl.vc/1mjs0x
Direct Link
https://picload.org/image/rddaawwo/schaltplan1.jpg
Notlösung für Modelcraft Servo Typ MC-410 programmierung gefunden.
Hallo,
nach vielem experimentierern mit dem Sourcecode
hab ich eine Notlösung gefunden
um die 2 Modelcraft Servos MC-410 zum laufen zu bringen.
Ich sende bei jeder Richtungsänderung durch ein Gosub-Return
Unterprogramm vorher einen Mitte-Pulse von 1,5 Millisekunden
und danach steuere ich die Servos wie gehabt.
Und sie laufen jetzt beide wie gewünscht.
Grüße Hermann