Hallo, habe ein Problem mit meinen Asuro, mit einem simplen Programm!
Kurz vorweg, unsere Asuros sind neu, frisch zusammengebaut und es sind unsere ersten Gehversuche damit. Löten und Mechnik alles kein Problem, Programmieren geht so für den Anfang, aber irgenwo ist der Wurm in meinem Asuro!!!
Es funktioniert super im Asuro meines Bruders, läuft bis die Akkus leer sind! Aber in meinem läuft es ca 15 Sekunden, dann hängt er sich irgendwie auf, es passiert nichts mehr, nur manchmal macht er das weiter wo er gerade war, also weiterfahren in irgend eine richtung! nach einem Neustart geht es wieder, für kurze zeit, dann wieder das selbe!
Auch mein Chip funktioniert super im anderen Asuro, nur bei mir nicht!
Also am Programm oder Chip kanns nicht liegen, funktioniert ja im anderen Asuro!
Irgenwo ist der Fehler auf der Platine oder bei Bauteilen! Aber ich brauche wohl nicht zu erwähnen, das wir ALLES schon mind. 15x kontrolliert haben!
Hat jemand ne Idee wo ich noch suchen könnte oder hatte jemand schonmal so eim Problem!
Hier das einfache Programm einer Linienverfolgung:
Code:
#include "asuro.h"
#define SPEED 175
int speedLeft,speedRight;
unsigned int lineData[2];
int ADOffset;
void LineLeft (void)
{
speedLeft += 1; /* links mehr Gas geben */
speedRight -= 1; /* rechts weniger Gas geben */
if (speedLeft > 200) speedLeft = 200;
if (speedRight < 75) speedRight = 75;
}
void LineRight (void)
{
speedRight += 1; /* rechts mehr Gas geben */
speedLeft -= 1; /* links weniger Gas geben */
if (speedRight > 200) speedRight = 200;
if (speedLeft < 75) speedLeft = 75;
}
int main(void)
{
int i;
unsigned char j;
Init();
for (j = 0; j < 255; j++);
LineData(lineData);
ADOffset = lineData[LEFT] - lineData[RIGHT];
speedLeft = speedRight = SPEED;
FrontLED(ON);
StatusLED(GREEN);
for (;;)
{
LineData(lineData);
i = (lineData[LEFT] - lineData[RIGHT]) - ADOffset;
if ( i >= 4)
{
BackLED(OFF,ON);
StatusLED(RED);
LineLeft();
}
else if ( i <= -4)
{
BackLED(ON,OFF);
StatusLED(RED);
LineRight();
}
else
{
BackLED(OFF,OFF);
StatusLED(GREEN);
speedLeft = speedRight = SPEED;
}
MotorSpeed(speedLeft,speedRight);
}
while(1);
Vielen Dank schonmal!
Gruß aus Paderborn!
Lesezeichen