Hi,
so hab mal den Code bearbeitet:
Code:
#include "RP6RobotBaseLib.h" //Code by Pr0gm4n© v1.1 Fahrtenregler/Servos an ADC0 und ADC1 die entgegengesetzt drehen
void vorwaerts(int geschwindigkeit, int zeit)//geschwindigkeit zwischen 0 und 5, bei 0 = stillstand; zeit in ms
{
if(geschwindigkeit > 5)geschwindigkeit = 5;
if(geschwindigkeit < 0)geschwindigkeit = 0;
int x = 15+geschwindigkeit;
int i;
for(i=0;i<(zeit/20);i++)
{
PORTA |= 1;
sleep(x);
PORTA &= ~1;
PORTA |= 2;
sleep(30-x);
PORTA &= ~2;
sleep(170);
}
}
void rueckwaerts(int geschwindigkeit, int zeit)//geschwindigkeit zwischen 1 und 5; zeit in ms
{
if(geschwindigkeit > 5)geschwindigkeit = 5;
if(geschwindigkeit < 1)geschwindigkeit = 1;
int x = 15-geschwindigkeit;
int i;
for(i=0;i<(zeit/20);i++)
{
PORTA |= 1;
sleep(x);
PORTA &= ~1;
PORTA |= 2;
sleep(30-x);
PORTA &= ~2;
sleep(170);
}
}
void links() // oder rechts, das musst du testen, hängt davon ab, was an adc0 oder adc1 hängt
{
int x= 17; // hier kannst du an der geschwindigkeit in der kurve rumprobieren (15 < x <= 20)
int y= 20; // hier kannst du am Winkel der Drehung rumprobieren, das hängt von den Motoren ab, einfach ausprobieren dann siehst du was gut iss xD
int i;
for(i=0; i<y ;i++)
{
PORTA |= 1;
sleep(x);
PORTA &= ~1;
sleep(200-x);
}
}
void rechts() // oder links, das musst du testen, hängt davon ab, was an adc0 oder adc1 hängt
{
int x= 17; // hier kannst du an der geschwindigkeit in der kurve rumprobieren (15 < x <= 20)
int y= 20; // hier kannst du am Winkel der Drehung rumprobieren, das hängt von den Motoren ab, einfach ausprobieren dann siehst du was gut iss xD
int i;
for(i=0; i<y ;i++)
{
PORTA |= 2;
sleep(x);
PORTA &= ~2;
sleep(200-x);
}
}
void initMotoren()
{
DDRA |=3;
vorwaerts(0, 10000);
}
int main(void)
{
initRobotBase();
initMotoren();
while(true)
{
vorwaerts(2, 1000);
vorwaerts(0, 100);
rueckwaerts(2, 1000);
vorwaerts(0, 100);
}
return(0);
}
musst in links(); und rechts(); noch rumprobieren was bei deinen Motoren eine schöne Kurve verursacht xD
LG Pr0gm4n
Lesezeichen