Limit Anahtarlarının Programlanması

Limit anahtarları genellikle robotlardaki mekanizmaları kontrol etmek için kullanılır. Limit anahtarlarının kullanımı basit olsa da, hareketli bir parçanın yalnızca tek bir konumunu algılayabilirler. Bu, hareketin bir sınırı aşmamasını sağlamak için onları ideal kılar, ancak sınıra yaklaştıkça hareketin hızını kontrol etmede çok iyi değildir. Örneğin, bir robot kolundaki bir rotasyonel omuz eklemi, bir potansiyometre veya mutlak bir kodlayıcı kullanılarak en iyi şekilde kontrol edilir; limit anahtarı, potansiyometre başarısız olursa, limit anahtarının robotun uzağa gitmesini ve hasara neden olmasını durdurmasını sağlayabilir. .

Limit anahtarlarının “normally open-normalde açık” veya “normally closed-normalde kapalı” çıkışları olabilir. Bu, yüksek bir sinyalin anahtarın açık veya kapalı olduğu anlamına gelip gelmediğini kontrol edecektir. Limit anahtarı donanımı hakkında daha fazla bilgi edinmek için şuna bakın: article.

Bir Motoru İki Limit Anahtarla Kontrol Etme

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);
        }
    }
}