Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM Ausgänge
Hi Leute, ich hab mal wieder ne Frage und hoffe ihr habt ne antwort :-)
Ich hab nen 80c51 und möchte damit soviele Servos als möglich ansteuern. Das ganze sollte dann über I2C oder RS232 ansteuerbar sein. Ich weiß daß es so nen controller schon giebt ( ein Pic mit der bezeichnung SD20 , steuert 20 Servos ) aber ich hab keine lust mir so einen zu kaufen weil ich genug 8051er herumliegen hab
wenn jemand schon mal sowas gemacht hat wäre ich sehr dankbar für (viel) Hilfe.
Grüße Kalle
Tag Kalle,
wenn Du '51er mit PCA hast,dann hast Du 4 auf einen schlag....und die laufen im Hintergrund.
kannst mal hier reinschauen : http://members.iinet.net.au/~vanluynm/
:)
Ed
@ edgar, danke für die schnelle Antwort, werds gleich mal versuchen, wenn ich zeit hab!
p.s. funzt das auch mit nem 80c31, ich glaub ich hab mich vorhin etwas vertippt
Moin Kalle!
Mit oder ohne ext. Aufwand? Ich müßte zwar erst suchen gehen, habe sowas aber schon mal für 8 Servos gemacht - wenn auch nur für Versuchszwecke, lief aber.
80C31? Ja, mit sowas spiele ich auch noch teilweise :D . Wenn Du aber Ports sparen must, dann solltest Du mit einem 4017 arbeiten! Damit wird (wurde?) es auch in den RC-Empfängern gemacht die so 4 bis 8 Servos ansteuern. Es hat aber auch den Nachteil, das die Wiederholrate für jede Servo entsprechend sinkt, höhere Stellzeiten und ungenauigkeit sind meist die Folge! Ist dafür aber nicht so rechenlastig für den MC ohne integrierte PWM-Funktion. ;)
Die Platinen habe ich schon gefunden (siehe Anhang). Links die Variante mit dem 4017 rechts die Variante "für jeden sein eigenes PWM". Nur die Software muß ich nochmal suchen... :o Bei Bedarf versuche ich auch nochmal zu ergründen, wo der Plan mit 4017 geblieben ist und was ich da verändert habe.
Gruß,
Arne
Hi Arne,
danke für die Antwort,
mit den Ports muß ich nich sparen, da der controller voraussichtlich nur zum steuern der servos benutzt wird
Fällt mir grade noch ein:
Eine ausreichende Stromversorgung für die Servos ist sicherzustellen! Wenn sich beim Start mal eben 8 (oder auch weniger) Servos in Bewegung setzten, können schnell mal ein paar häftige Peek-Lasten entstehen. Anfänglich ist mir immer der MC abgestürzt. :mad:
Zuerst habe ich es mit einer Pufferung für den MC gelöst, wich dann aber auf eine separate Versorgung für die Servos aus und alles wurde bestens. :)
Gruß,
Arne
Hi Arne, wäre echt cool, wenn du die software noch irgendwo auftreiben könntest!
Hi Arne, wäre echt cool, wenn du die software noch irgendwo auftreiben könntest! Wie jetzt? Doch nicht selber machen???
Den ASM-Code (zumindest Teile) habe ich schon wiedergefunden. Den will ich aber vorher erstmal prüfen! Hatte hier mal bitter bösen Datenverlust und die Quelltexte sind Reste der Datenrettung...:( Do. spätestens Fr. sollte sich dafür etwas Zeit bieten. :D
Gruß,
Arne
Ed,
die Grundlagen kommen von der guten alten analogen Fernbedienung für ferngesteuerter Modelle. Die Hebelpositionen werden hierfür in ein PWM gewandelt und als Telegram zusammengefast. Am Empfänger sieht das dann etwa wie folgt aus:
Start, Servo1, Pause, Servo2, Pause usw. bis zur langen Pause (=Start-Signal)
Entscheidend ist, das nur die Länge des einen Pegels (0,5 bis 2,5ms) zur Positionsbestimmung verwendet wird. Der zweite Pegel dient als Trennung der Servos und zur Syncronisation. Hält der zweite Pegel etwas länger an, wird zur syncronisation ein Reset erzeugt, der gleich auf den CD4017B weitergeht. Das Telegram selbst wird also direkt auf den Clock vom CD4017B gelegt. Die PWM für jedes einzelne Servo kann so auf dessen entsprechendem Ausgang direkt abgegriffen werden.
Hier liegt dann auch der Nachteil, das die Wiederholrate für jedes einzelne Servo sich mit jeder weiteren verlängert (schlechtere Stellzeiten, Ungenauigkeit).
Ich hoffe, daß war soweit verständlich, sonst suche ich nochmal nach den Genauen Timings und Diagrammen, um dieses verständlicher zu machen. Gibts aber auch im Netz, wer also nicht googlefaul ist....;)
Gruß,
Arne
Hi Arne, wollt nur mal fragen ob du inzwischen schon etwas Zeit gefunden hast
Kalle,
glaube nicht.War er doch zuletzt stark mit forumstechnischer Verwaltungsstrategie beschaeftigt.
Gruss
:D
ed
@Ed
hat da wer 'n Knacks mitbekommen? Du schüttest doch nicht etwa Öl ins Feuer?? Hät' ich das geahnt, hät' ich Würstchen mitgebracht....:p
@Kalle
Jep hab' ich, nur nach meiner letzten Frage (mag wohl untergegangen sein) dachte ich, Du hättest Dein Interesse verloren... .
Im Anhang soweit ein lauffähiger Teil meiner alten ASM-Version. Erklärungen sind leider Mangelware - ist ja auch nie fertig geworden, sollte aber dennoch verständlich genug sein.
:alertred: Unsachgemäße Timings führen die Servo an ihre Begrenzung, was zur Zerstörung jener oder des Modells führen kann!
Kurzbeschreibung:
- Das Program beinhaltet die PWM-Erzeugung für 8 Servos an P1. Jede einzelne kann mit einem Enable-Bit ein- oder abgeschaltet werden. Die PWM wird einzelnd für jedes Servor (also nacheinander) erzeugt um Speicher zu sparen.
- Die erste Test-Routine aktiviert jedes Servo einzelnd und bringt es in die im Init voreingestellte Position.
- Die zweite Test-Routine bewegt jedes Servo nach links, rechts und zurück in Mittelposition. Zum Schluß verweilt das Hauptprogramm in einer Endlosschleife ohne Sinn... .
Der Text ist mit TAB = 4Space eingerückt, mag daher bei vielen etwas eigenartig im Editor aussehen. :D
Gruß,
Arne
nennt sich psy-beschleuniger :D tm
11 Abrufe (bzw. Downloads) ohne Komentar? Wundert mich, daß da keine Fragen offen sind - oder ist es so schlecht, daß da Hopfen und Malz verloren ist.... :D
@ed
hab ich was verpasst? Oder bekomm' ich einfach die Augen nicht mehr weit genug auf...:confused:
Dabei fällt mir ein, Dein Frage oben hätte ich auch einfacher beantworten können: Der 4017 arbeitet hier (aufgrund des Signals) als DeMux - das wars dann schon. ;)
Gruß,
Arne
Ed, Glueckwunsch, du hast das Maeuschen aus der Reserve gelockt! :D
@Arne, danke für den Code.
P.S. die Fragen werden schon noch kommen, hatte nur noch keine zeit daz ganze zu probieren
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.