PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servosteuerung mit pics



nitro32
02.12.2006, 08:24
Hallo! habe ein problem...bin ziemlich neu im umgang mit pics und wollte mal fragen ob hier irgendwer erfahrung (oder vill sogar ein fertiges programm in assembler) mit dem programmieren von Pics um Servos zu steuern in diesem Bereich hat. Würde mich über Feedback freuen
greez nitro32

phaidros
02.12.2006, 10:14
Ja, sicher. Man kann es einfach oder auch kompliziert machen. Das hängt davon ab, welchen PIC bei welcher Taktfrequenz man beutzen will und wieviele Servos er ansteuern soll.
Viele PICs haben fertige PWM-Kanäle, die man einfach ansteuern kann. Das reicht aber oft nur für 2 Servos. Der PIC selber hat dann allerdings fast nichts zu tun und kann komplexe Berechnungen ausführen oder sich einfach schlafen legen (stromsparend).
Braucht man viele Servos, dann müssen es schnelle und große PICs sein und man benutzt Bit-Banging, d. h . die PWM-Signale werden softwaregesteuert zur richtigen Zeit an die richtigen Pins gegeben. Aufwendig aber machbar. Schreib mal genauer, was du vorhast.

Gruß
Phaidros

nitro32
03.12.2006, 07:58
Naja wäre schon besser mehrer servos mit einenm pic anzusteuern...fraglich ist nur ob mein Brenner diese auch unterstützt...was für Bezeichnungen hätten diese "größeren" Pics denn dann?

Mobius
03.12.2006, 11:14
Hum, naja, größer ist relativ :). Eigentlich kann man einen Bit-Bang-PWM mit 8 Kanälen (maximal ~1kHz PWM-Frequenz) sehr gut auch in einem PIC16F84A unterbringen. Nur ist dieser dann voll ausgelastet und kann eigentlich nicht mehr viel machen, außer die Servos anzusteuern (das Ding ist halt all exklusive, kein USART und nur ein Timer). Bei einem PIC16F688 hättest du schon einen Hardware-USART dabei und dann anschließend das PWM wieder per "Hand". Damit wären auch die 12 IOs des Chips fast zu 100% ausgelastet, kannst dann noch 2 LEDs für Status oder so anhängen.
Beide PICs sind halt aus der unteren/mittleren Preisklasse und eigentlich sollten alle Brenner sie packen (zumindest alle von sprut, ka, welchen du hast).

Ein 16F877 oder dergleichen fände ich für eine Servosteuerung eigentlich ein wenig übertrieben, außer natürlich, du willst auch noch weitere Sachen in dem einen PIC unterbrigen (wie zB. Matrix-Tastatur+LCD), weil dann kommst du einfach mit den Pins der kleineren Chips nicht mehr aus (oder nur sehr, sehr knapp).

Wenn du eine gute Liste mit vielen PICs und dessen Interfaces suchst, kann ich dir diese (http://www.sprut.de/electronic/pic/typen.htm#typen) von sprut nur empfehlen. Da kannst du auch gleich schauen, was die Chips allgemein können und, vor allem, in welcher Preisklasse sie bei Reichelt/Conrad zu haben sind.

MfG
Mobius

nitro32
04.12.2006, 04:52
Das klingt doch schon mal ganz gut... und dass der pic am ende ziemlich ausgelastet ist wäre auch nicht weiter schlimm, da ich sowiso zum steuern des "Servo pics" eigentlich nen anderen Controller vorgesehen hatte....jetzt is die frege nur noch wie ich das als "totaler Anfänger" in Assembler realisiere...?
mfg nitro32

Stromi
06.12.2006, 21:06
http://www.mikroe.com/en/projects/mikrobasic.php
Schau dir mal MBasic an, hat auch ein USB 8fach Servo Beispielprogramm.
ist zwar in Basic, aber gibt es sicher auch in C.