Archiv verlassen und diese Seite im Standarddesign anzeigen : Grundlegende Fragen zur Servoansteuerung und PWM
Hallo an alle da draussen,
ich habe da mal ein Paar grundlegende fragen zur Servoansteuerung:
Ich habe den ATMEGA32, BASCOM AVR.
Jetzt will ich einen Servomotor(auf dem eine minikamera montiert ist) rechts und linksrum drehen lassen je nachdem welchen wert ich eingebe.
Ich habe mich schon soweit eingelesen, dass ich weis, das ich dafür verschiedene Frequenzen brauche, nämlich zwischen 1ms und 2ms. Richtig?
Jetzt zu meinen Fragen:
Wie mache ich das am simpelsten?
Über die PWM pins am Controller?
Wenn ja, könnte mir jemand ein Testprogramm schreiben und es mit mir stück für stück durchanalysieren, ich glaube so verstehe ich das am besten.
Die PWM pins sind: PortB.0 und PortB.1
Meine Frequenz ist 4MHz.
Der Controller ein ATMega32
Danke schon mal im voraus
$regfile = "m32def.dat"
'Servo-Funktion von Bascom konfigurieren
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
'Port B als Output schalten
Config Portb = Output
'Alle Interrupts anmachen, da nen Timer benutzt wird
Enable Interrupts
'Einmal in die eine Richtung
Servo(1) = 100
'und einmal in die andere
Servo(1) = 200
'so, datt solltes gewesen sein
End
Martin ^^
Acha, danke erst mal. So kompliziert schaut das jetzt ja nicht aus.
Aber was soll ich machen damit mein Servo jetzt nach recht dreht?
Wie gesagt, bin ein VollNoob!!
also die 200 steht glaubich für rechts, musste testen, das 200 iss 2 ms puls, und 100 iss 1 ms puls, also sollte es ja 200 sein ^^
Martin
wenn ich das genauso abkopiere wie du mir das aufgeschrieben hast. Müsste sich da schon was drehen? Oder muss ich das eine "Servo(1) = 200" auskomentieren?
Verstehe ich das richtig:
Wert kleiner 150 -->eine Richtung
Wert größer 150 --> andere Richtung
Also zB so:
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
Config Portb = Output
Servo(1) = 120
End
Nu soll er halt links bis zu einer bestimmten Position (120) drehen!?
Oder bin ich da auf dem Holzweg?
jepp, das iss richtig, also bei meinem programm sollte sich schon was bewegen, aber ich entnehme deinem post, dass sich nichts bewegt, aber duz hast das prinzip schon richtig verstanden ^^
Martin
Ok, danke. Also habe ich irgendwo sch***e gebaut. Bei mir dreht sich nichts.
Ein Oszi wäre jetzt nicht schlecht ^^
ich hab einen *oszischick* siehst du was? ^^
so, also wieder fehlerbehebung, aber die verlagern wa nach morgen, ich penn jetzt ^^
Martin
ES TUT ES TUT, juhu, Stecker war falschrum drufff, Vielen Dank nochmal x-ryder..
looooooooooooooooooool, bitte, wie immer eben :-P
Martin
ja, das selbe kann ich auch sagen^^ gute nacht
Hallo,
ich habe dazu auch mal eine Frage. ich habe einen robbe Futaba Servo.
Mit deinem Code oben dreht er sich immer linksrum egal welchen wert(100/200) ich eingebe.
Dieser Servo hat drei Anschlüsse:
weiß habe ich an den ATmega8
schwarz an GND
und rot an VCC 5+
muss ich dies umpolen oder wie funktioniert das ??(:
bei mir hat der wert auch nicht so funktionier, be imir dreht er sich zwischen 22 und 102 wobei 22linksauschlag ist und 102 rechtsauschlag. ausserdem musste ich den gesammten code in eine do loop schleife packen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.