Habe das ganze gerade auch mal ausprobiert.. und nach einigen Schwierigkeiten (habe die 2.8 Lib) habe ich den Code von malediction genommen und siehe da es hat geklappt und die LED leuchtet Rot jedoch bei einem Abstand der ganz knapp vor der Alufolie ist also wäre der Asuro schon längst gegen das Hindernis gefahren..
Da ich neu in C bin hab ich einfach ein bisschen rumprobiert und bin dann auf das hier gekommen:
Code:
#include "asuro.h"
#include <stdlib.h>
int main(void)
{
Init();
DDRD |= (1 << DDD1); // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
UCSRB = 0;
OCR2 = 0x90; //Anfangswert (entspricht Pulsbreite 110)
while(1){
if (PIND & (1 << PD0)){
StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(150,150);
}
else{
MotorSpeed(0,0);
StatusLED(RED);
Msleep(800);
MotorDir(RWD,BREAK);
MotorSpeed(150,0);
Msleep(500);
MotorSpeed(0,0);
}
}
return 0;
}
Jedoch bemekerkt er das Hindernis trotzdem erst 1 - 2 cm vor sich und dreht dann um.. Das ganze ist mir viel zu nah.. Gibt es eine Möglichkeit das ganze irgendwie noch weiter hochzuschrauben??
MfG. mtzE
Lesezeichen