Programación de interruptores de límite

Los interruptores de Límite normalmente son usados para controlar el mecanismo de los robots. Mientras que los interruptores de Límite son fáciles de usar, estos sólo pueden tener sentido a una simple posición para mover una parte. Este los vuelve ideales para asegurar que el movimiento no exceda algún límite pero no tan buenos al controlar la velocidad de algo en movimiento aproximado al límite. Ejemplo en el brazo del robot el hombro rotador será mejor controlado usando un potenciómetro un codificador absoluto el interruptor de Límite puede puede asegurar que si él potenciómetro llega a fallar el interruptor de Límite detendrá al robot de ir más allá y causar algún daño

Los interruptores de límite pueden tener salidas «normalmente abiertas» o «normalmente cerradas». Esto controlará si una señal alta significa que el interruptor está abierto o cerrado. Para obtener más información sobre el hardware del interruptor de límite, consulte este artículo.

Control de un motor con dos interruptores de límite

DigitalInput toplimitSwitch = new DigitalInput(0);
DigitalInput bottomlimitSwitch = new DigitalInput(1);
PWMVictorSPX motor = new PWMVictorSPX(0);
Joystick joystick = new Joystick(0);

@Override
public void teleopPeriodic() {
    setMotorSpeed(joystick.getRawAxis(2));
}

public void setMotorSpeed(double speed) {
    if (speed > 0) {
        if (toplimitSwitch.get()) {
            // We are going up and top limit is tripped so stop
            motor.set(0);
        } else {
            // We are going up but top limit is not tripped so go at commanded speed
            motor.set(speed);
        }
    } else {
        if (bottomlimitSwitch.get()) {
            // We are going down and bottom limit is tripped so stop
            motor.set(0);
        } else {
            // We are going down but bottom limit is not tripped so go at commanded speed
            motor.set(speed);
        }
    }
}