Hi,
so hab mal den Code bearbeitet:
musst in links(); und rechts(); noch rumprobieren was bei deinen Motoren eine schöne Kurve verursacht xDCode:#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); }
LG Pr0gm4n







Zitieren
Lesezeichen