task main () {
  int voltage = 0;

  nxtDisplayCenteredTextLine(0, "Mindsensors");
  nxtDisplayCenteredBigTextLine(1, "NXTServo");
  nxtDisplayCenteredTextLine(3, "Demo prog");
  nxtDisplayCenteredTextLine(5, "Connect NXServo");
  nxtDisplayCenteredTextLine(6, "to S1 and servo");
  nxtDisplayCenteredTextLine(7, "to connector 1");
  wait1Msec(2000);

  eraseDisplay();
  while (true) {

    // read the current voltage of the power supply for the
    // sevos
    voltage = NXTServoReadVoltage(NXTSERVO);
    nxtDisplayCenteredBigTextLine(1, "%dmV", voltage);

    // Move the servo to position "500" with max speed (0)
	  NXTServoSetPos(NXTSERVO, 1, 500, 0);
	  wait1Msec(1000);

	  // Move the servo to position "2500" with speed 30
	  NXTServoSetPos(NXTSERVO, 1, 2500, 30);

	  wait1Msec(1000);
  }
}
task main () {
  int position = 0;
  int voltage = 0;
  bool done = false;

  nxtDisplayCenteredTextLine(0, "Mindsensors");
  nxtDisplayCenteredBigTextLine(1, "NXTServo");
  nxtDisplayCenteredTextLine(3, "Demo prog");
  nxtDisplayCenteredTextLine(5, "Connect NXServo");
  nxtDisplayCenteredTextLine(6, "to S1 and servo");
  nxtDisplayCenteredTextLine(7, "to connector 1");
  wait1Msec(2000);

  eraseDisplay();
  while (true) {

    // read the current voltage of the power supply for the
    // sevos
    voltage = NXTServoReadVoltage(NXTSERVO);
    nxtDisplayCenteredBigTextLine(1, "%dmV", voltage);

    // Move the servo to position "500" with max speed (0)
	  NXTServoSetPos(NXTSERVO, 1, 500, 0);
	  wait1Msec(1000);

	  // Move the servo to position "2500" with speed 30
	  NXTServoSetPos(NXTSERVO, 1, 2500, 30);
	  done = false;
	  while (!done) {

	    // reading the position is a bit tricky and doesn't really work
	    position = NXTServoReadPos(NXTSERVO, 1);
	  	nxtDisplayCenteredBigTextLine(3, "%d", position);
      if (position == 2500) done = true;
	  }
	  wait1Msec(1000);
  }
}