hi ehenkes,
habe nun den folgenden code versucht:
Code:
#include "asuro.h"
#include "inka.h"
int dist;
int abstand=0;
int i;
int main(void)
{
Init();
WaitforStart();
while(1)
{
{
/*SerWrite("\r\n --- georgs ultrasonic test ---",32);
Msleep(1000);*/
do
{
BackLED(ON,OFF);
abstand=Chirp();
/*SerWrite("\r\n distanz in cm: ",16);
SerWrite("\r\n",5);
Msleep(500);
StatusLED(RED);
PrintInt(abstand);*/
BackLED(OFF,ON);
if(abstand > 20) {
StatusLED(GREEN);
MotorDir(FWD, FWD);
MotorSpeed(200, 200);
}
else {
StatusLED(RED);
MotorDir(FWD, RWD);
MotorSpeed(0, 200);
for(i = 0; i<150; i++) { Sleep(200); }
}
}
while(1);
}
}
return 0;
}
wenn ich die auskomentiertn zeilen aktiviere wird auch in etwa die gemessene entfernung geschrieben (der asuro ist dabei hochgebockt). Wenn ich ihn mit dem originalprogramm einschalte (und in der hand halte) reagiert er auch entsprechend auf verkleinerung der entfernung mit wenden und weiterfahren. Wenn ich ihn aber normal fahren lasse dreht er sich eigentlich nur im kreis (stück drehend zurück, stück vor usw.) liegt es nun am programm - was ich nicht glaube - oder an den fahrgeräuschen, die die US-messung stören?
Lesezeichen