Hallo
Ich hab mal etwas an deinem Programm rumgefummelt:
Code:
// asuro steuert Sortieranlage
// https://www.roboternetz.de/community/threads/58103-Asuro-Helligkeitsbestimmung
#include "asuro.h"
unsigned int data[2]; //Initialisiert zwei Int-werte hintereinander
int main(void)
{
Init();
MotorDir(BREAK,FWD); //Abwerfen des Steines
MotorSpeed(0,240);
Msleep(1900);
MotorSpeed(0,0); // Motor abbremsen
Msleep(500);
StatusLED(YELLOW); //Bewegung des Förderbands
MotorDir(FWD,BREAK);
MotorSpeed(240,0);
do
LineData(data);
while ((data[0]>90) && (data[0]<110)); // solange Helligkeit zwischen 90 und 110
Msleep(100); // Gegenstand erkannt. Noch etwas weiterfahren (wegen Kante)...
LineData(data); // und erneut den Wert einlesen
if (data[0] >= 400) // heller als 399? Richtigen Gegenstand erkannt, weiterfördern
{
StatusLED(GREEN);
// MotorSpeed(240,0);
Msleep(10000);
}
else // falsche Farbe, zurückfördern
{
StatusLED(RED);
MotorSpeed(0,0);
Msleep(500);
MotorDir(RWD,BREAK);
MotorSpeed(240,0);
Msleep(10000);
}
MotorSpeed(0,0); // Band anhalten
while(1){StatusLED(RED); Msleep(100); StatusLED(OFF); Msleep(300);} // Programmende
return 0;
}
(ungetestet)
Ich hoffe, dass funzt so.
Gruß
mic
Lesezeichen