Hallo,
als ein Projekt in der Ausbildung habe wir die Aufgabe bekommen eine Solarzelle mittels Servos nach dem Sonnensatnd auszurichten.
Zur Verfügung stehen uns ein C167 MC-board sowie
2 Servos.
Die Servos sind:
Ein 180° Servo:
SERVO S-751 BB FUTABA
Artikel-Nr.: 223082 - 62
und
ein 90°
TOP LINE STANDARD SERVO ES-35 MPX
Artikel-Nr.: 228774 - 62
beide von Conrad gekauft.
Wie sind die Servos angeschlossen:
Für den Test wurde immer nur einer der Servos angeschlossen und angesteuert.
Servo ist mit Signal an MC angeschlossen und Masse und Spannung am Netzteil.
Problem:
Die Servos drehen von "rechts" nach "links" und versuchen beim Anschlag weiterhin zu drehen.
Mögliche Ursachen:
An den eigentlichen Einstellungen kann es nicht liegen denke ich ( 20ms Periode 1-2ms Puls), die Werte wurden auch schon mehrmals nachgerechnet.
Hier mal der Basiscode:
Code:
#include <reg167.h>
// PWM1 20ms, puls/periode0 1/1
// Als Ausgang wird der Port 7.1 verwendet
// Zum testen einfach jewails einen der PW1 Werte aus dem Kommentar entfernen ( also // vor einem entfernen)
void main()
{
DP7=DP7|2; //PWM 1-Bit Ausgang
P7=P7|2; //P7.1 Invertiert
PWMIC=0; //Kein Interrupt
PP1=6249; //6250 Takte für eine Periode (Fcpu*64 Modus)
//PW1=312; //1ms High Puls
//PW1=625; //2ms High Puls
//PW1=469; //1,5ms High Puls
PT1=0; //Zähler Startwert
PWMCON1=2; //edge aligned,PWM1 out enabled
PWMCON0=22; //kein Int., f=fcpu*64, Timer PTR1 run)
while(1);
}
So ich hoffe jemand kann mir da etwas weiterhelfen, da das alles Neuland für mich ist
Ich habe ähnliche Posts hier im Forum gefunden, bin mir aber nicht sicher inwieweit sie auf unser Problem zutreffen.
Momantan versuchen wir mit der Pulsweite zu experimentieren.
Danke schonmal im Vorraus.[/code]
Lesezeichen