Hallo
Also mal ganz kurz, Laut Conrad Elektronic gibts kaum noch Fahrtenregler ohne Speicher. Ich habe durch Zufall einen RC Handel gefunden, der mir noch einen geben konnte ohne Speicher und mit dem geht es super. Am Donnerstag bekomme ich den zweiten dazu und kann dann testen ob es auch so bleibt.
Inzwischen hab ich mir Gedanken gemacht über den Code den mir Pr0gm4n gemacht hat. Ich wollte die Bumper hinzufügen, leider ohne Erfolg, was hab ich bloss schon wieder falsch gemacht. Ich habe den Code so umgeschrieben wie ich es mir erhofft habe, dass es gehen könnte rechts u. links, hab ich nur daweil dazu geschrieben aber bringt auch nicht wirklich was ohne die richtigen Fahrtenregler.
Code:
#include "RP6RobotBaseLib.h" //Code by Pr0gm4n© v1.0 Fahrtenregler/Servos an ADC0 und ADC1
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 rechts(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(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 initMotoren()
int main(void)
{
initRobotBase();
initMotoren();
pwerON();
while(true)
{
rueckwaerts,rechts,links,vorwaerts,(int geschwindigkeit, int zeit,true);
if (getBumperLeft)
{ rueckwaerts(1, 100);
rechts(2, 100);
}
if (getBumperRight)
{ rueckwaerts(1, 100);
links(1, 100);
}
vorwaerts(2, 1000);
vorwaerts(0, 100);
rueckwaerts(2, 1000);
vorwaerts(0, 100);
}
return (0);
}
Lesezeichen