PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro zickt nach umbau



Big.B
05.09.2009, 09:12
Hallo Miteinander
Nach dem ich meinen asuro für den US sensor vorbereitet habe will er jetzt nicht mehr so richtig um die fehler quelle Code auszuschließen wollte ich euch mal fragen ob mein code bei euch funst.



#include "asuro.h"

int main(void){
unsigned int data[2];

Init();
FrontLED(ON);
MotorDir(FWD,FWD);

while(1){

LineData(data);

if(data[0]>data[1])

{MotorSpeed(150,200);
BackLED(ON,OFF);}
else
{MotorSpeed(200,150);
BackLED(OFF,ON);}

}

return 0;
}


Mfg Michael

radbruch
05.09.2009, 09:53
Hallo

Ich habe dein Programm (noch) nicht getestet, ich nehme aber an, dein asuro soll einer schwarzen Linie nachfahren. Wenn der asuro mittig auf der Linie steht sind beide Sensoren gleich beleuchtet. Wenn er mit dem rechten Sensor auf der Linie steht, sich also zu weit links befindet, ist data[0] größer als data[1]. Um wieder zur Linie zurückzufinden sollte er nun links mehr Power geben. In deinem Programm gibt er aber rechts mehr Power:


if(data[0]>data[1])

{MotorSpeed(150,200);
BackLED(ON,OFF);}
else


Wenn das dein Problem nicht löst solltest du mehr Angaben zur Aufgabe, zur gewünschen Funktion und zum Fehler machen:

ob mein code bei euch funst?

Gruß

mic

Big.B
05.09.2009, 11:14
Hallo radbruch danke für die schnelle antwort!

Ich möchte mit diesem code eigentlich nur die funktion testen da mein asuro gerade überhaupt nicht reagiert, nach dem einschalten Leuchtet die Front LED der rechte motor dreht sich schneller als der linke und die Linke Back LED leuchtet und das wars :-s ???

radbruch
05.09.2009, 15:14
Na prima, genau das sollte bei deinem Programm passieren, wenn der linke Fototransistor heller beleuchtet wird als der rechte (data[0]>data[1]). Leuchte mal mit einer Taschenlampe in den rechten Fototransistor oder decke den Linken ab. Oder zaubere noch eine kleine Ausgabe in die Hauptschleife:

PrintInt(data[0]);
SerWrite("- ", 2);
PrintInt(data[1]);
SerWrite("\n\r", 2);
Msleep(100);

Funktionen die in der orginalen CD-Library fehlen:

void PrintInt(int wert)
{ char text[6]=" ";
itoa(wert,text,10);
SerWrite(text,5);
}
void Msleep(unsigned int dauer)
{
while(dauer--) Sleep(72);
}



Gruß

mic

Big.B
05.09.2009, 16:30
Aber das ist doch das Problem ich kann die Fototransistoren anleuchten oder zuhalten aber es passiert nichts :-s (hat vor dem umbau funktioniert)


Und wenn ich schon dabei bin,wenn ich von Out- zu Out+ messe habe ich durchgang obwohl sich die kontakte nicht berühren?

Big.B
08.09.2009, 14:03
So ich habe jetzt noch etwas getestet leider habe ich ausser der verbindung zwischen out+ und out- nichts mehr gefunden könnte es sein das sich teile des ATMEGA 8 verabschiedet haben ? oder würde dann gar nichts mehr gehen?
Kann man die funktion des ATMEGA 8 testen.

Mfg Michael

Valen
08.09.2009, 16:46
Wenn out+ und out- verbunden sind (lot fehler oder etwas) hast du einer kurzschluss. Dann gehts nichts. (spannung brichts zusammen) Es solte aber auch ganz schnell rauch machen und den batterien/akkus gehen schnell kaput. Ist die verbindung schwischen out+ und out- auch mit den batterien raus?