Super Idee diese kleine Modifikation. Hab ich gleich mal probiert ^^
Aber naja, er macht nicht das was er machen soll. Er fährt immer nur Rückwärts im Kreis wobei immer mal der Linke Motor zuschaltet und abschaltet. Weiß irgendwie nicht weiter was ich da machen soll.
Kann es vielleichtt an dem "Spiegel" liegen welcher die Infrarot-Strahlen auf den Gegenstand richtet?
mein Quellcode mit lib 2.8rc1:
Code:
#include "asuro.h"
#include <stdlib.h>
int main(void)
{
unsigned char sw, speed;
unsigned char ir,ir1,ir2;
Init();
DDRD |= (1 << DDD1); // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
UCSRB = 0;
OCR2 = 0xFC;
speed=140;
while(1)
{
ir=PIND & (1 << PD0);
if (ir || ir1){
BackLED(OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(speed,speed);
} else {
BackLED(ON,ON);
MotorDir(RWD,RWD);
MotorSpeed(speed,speed);
if (speed > 0) Msleep(500);
MotorDir(BREAK,RWD);
MotorSpeed(0,speed);
if (speed > 0) Msleep(500);
}
ir2=ir1; ir1=ir;
sw = PollSwitch();
/*
if (sw & 0x01)
OCR2 = 0xFE;
if (sw & 0x02)
OCR2 = 0xFD;
*/
if (sw & 0x04)
OCR2 = 0xFC;
if (sw & 0x08)
OCR2 = 0xFB;
/*
if (sw & 0x10)
OCR2 = 0xFA;
if (sw & 0x20)
OCR2 = 0xF9;
*/
}
return 0;
}
Und noch was anderes. Fährt euer Asuro auch nicht gerade sondern fährt z.B. immer eine rechtskurve? Und wenn er Rückwärts fährt scheint der linke Motor schwerer zu gehen als der rechte. Jemand Tipps hierzu?
MfG
Ezalo
Lesezeichen