banner left Boxtec Banner
Platzhalter BoxtecProdukteForumShopKontaktPlaygroundn/aJobs
 

HelvePic32

Servo Detailsteuerung

Wenn man sich die PWM Signale der normalen Servo Bibliothek anschaut, sieht man, dass die Puls-weite zwischen ca. 500 μs und 2300 μs variiert. Das bedeutet, dass man mit Hilfe der SoftPWMServo Bibliothek die Position eines Servos in Zehntel-Grad ansteuern kann. Da die Bibliothek aber in der Voreinstellung die Puls-weite auf 2 ms begrenzt, muss man diese Werte anpassen. Der zugehörige Code sieht so aus:

const uint8_t LEFT=0;
const uint8_t RIGHT=1;
uint8_t nP[2][8] = {{	0,17, 9,10,11,12,13,14},{18,17, 1, 2, 3, 6, 7, 8}};
const int Smax=1800;
const int Smin=500;
 
#include <SoftPWMServo.h> 
 
int pos = 0;         
const int pin = nP[RIGHT][7];  // Choose _any_ pin number on your board
 
void setup() 
{
	SoftPWMServoInit();
	SoftPWMServoSetFrameTime(100000); // 2500 us are 100000 tics for 40 MHz CPU!
	SoftPWMServoSetServoFrames(8);    // 8 frames make 20 ms wavelength
} 
 
void loop()
{ 
	for (pos=0; pos <= 1800; pos+=2) // use deci-degree in 0.2 degree steps
	{
		SetServoPos_decidegree(pos);
		delay(5);
	}
	for (pos=0; pos <= 1800; pos+=2) // use deci-degree in 0.2 degree steps
	{
		SetServoPos_decidegree(1800-pos);
		delay(5);
	}
	for (pos=0; pos <= 180; pos++) // use degree in 1 degree steps
	{
		SetServoPos_degree(pos);
		delay(25);
	}
	for (pos=0; pos <= 180; pos++) // use degree in 1 degree steps
	{
		SetServoPos_degree(180-pos);
		delay(25);
	}
	SetServoPos_degree(90);
	delay(1000);
	SetServoPos_degree(180);
	delay(1000);
	SetServoPos_degree(0);
	delay(1000);
}
 
void SetServoPos_degree(int degree)
{
	SoftPWMServoServoWrite(pin, 10*degree+Smin); 
}
 
void SetServoPos_decidegree(int decidegree)
{
	SoftPWMServoServoWrite(pin, decidegree+Smin); 
}

Der Code fährt einmal den Servo von 0 bis 180 Grad in 0.2 Grad Schritten und dann wieder zurück, danach die gleiche Aktion aber in Gradschritten. Zum Schluss werden die Positionen 90°, 180° und 0° für je eine Sekunde angefahren.

HelvePic32

 
helvepic32/bspservod/start.txt · Last modified: 2015/01/25 01:25 by mathiasw
 
 

zum Seitenanfang

Letzte Aktualisierung: © boxtec internet appliances · the better security products