Hilfe zu Lejos bzw. NXT

Up^^
Kann mir jemand helfen mein Programm zu erweitern, habe natürlich selber schon 2-3 Tage probiert, aber komme net weiter und zwar wollte ich das so machen, dass wenn man auf den Touchsensor drückt, das Auto stehen bleibt und man dann auf der NXT-Konsole ENTER drücken kann, damit man aus dem Programm heraus kommt.
Die Befehle hab ich ja schon, aber weiß net warum der das net einbindet...bitte helft mir weiter ;-)

public Nexttest(){
ts = new TouchSensor(SensorPort.S3);
ls = new LightSensor(SensorPort.S1);
us = new UltrasonicSensor(SensorPort.S2);
motA = new Motor(MotorPort.A);
motB = new Motor(MotorPort.B);
motC = new Motor(MotorPort.C);

}

public void start() throws InterruptedException{


us.continuous();

boolean sensorPressed = false;
boolean minDisReached = false;

final int MINDISTANCE = 15;

while(true){

/* while(!ts.isPressed){ <--- Das ist fürn Touchsensor (ts), solange
motA.backward(); man ihn nicht drückt fährt Motor A,C
motC.forward(); und wenn man ihn drückt, dann stoppen
if(ts.isPressed()){ beide, ist aber nicht richtig eingebaut
motA.stop(); und weiß net wie
motC.stop();
}
} */

while(!minDisReached || !sensorPressed){
sensorPressed = ts.isPressed();
minDisReached = us.getDistance() <= MINDISTANCE;
motA.setSpeed(720);
motA.backward();
motC.setSpeed(820);
motC.forward();

}
motA.stop();

if(minDisReached){
motB.setSpeed(650);
Delay.msDelay(2000);
motB.backward();
motB.stop();
motA.setSpeed(450);
motA.forward();
Delay.msDelay(2000);
motB.setSpeed(650);
Delay.msDelay(2000);
motB.forward();
motB.stop();
motA.setSpeed(720);
motA.backward();
}
else{
motB.setSpeed(650);
Delay.msDelay(2000);
motB.forward();
motB.stop();
motA.setSpeed(450);
motA.forward();
Delay.msDelay(2000);
motB.setSpeed(650);
Delay.msDelay(2000);
motB.backward();
motB.stop();
motA.setSpeed(720);
motA.backward();
}

sensorPressed = false;
minDisReached = false;


}

LCD.drawString("Ende = Enter",1,5); <--- das ist der Befehl, wenn das Auto steht, dass man ausm
Button.ENTER.waitForPress(); Programm kommt, wenn ich das ans Ende mache, dann
Thread.sleep(100); kommt unreachable statement :huh:


}

public static void main(String[] args) throws InterruptedException {
new Nexttest().start();
}
}
 
Zuletzt bearbeitet:
sorry habe ich gerade nicht. ist schon einige monate her als ich das getestet habe.

such einfach mal nach sensorportlistener. mit denen habe ich das damals gemacht.


als beispiel:

[FONT=&quot] SensorPort.S4.addSensorPortListener(new SensorPortListener() {[/FONT]

[FONT=&quot] public void stateChanged(SensorPort port, int oldValue, int newValue){[/FONT]

[FONT=&quot] // this part just displays the value - you should add your own logic code here[/FONT]
[FONT=&quot] LCD.clear();[/FONT]
[FONT=&quot] LCD.drawInt(oldValue, 0, 0);[/FONT]
[FONT=&quot] LCD.drawInt(newValue, 7, 1);[/FONT]
[FONT=&quot] LCD.refresh(); [/FONT]

[FONT=&quot] //hier könnest du den thread schließen, wenn du das möchtest 🙂[/FONT]
//ich habe messwerte ausgegeben :-D


[FONT=&quot] }[/FONT]
was du an den port anschließt ist deine sache und was dann passieren soll, schreibst du da einfach rein. ich hoffe das hilft dir weiter. 🙂

edith sagt noch: das ist dann wir eine art interrupt, der ausgelöst wird, wenn sich an dem sensor etwas verändert. also schön passiv. 😎