Analog Potentiometers - Yazılım

Not

Bu bölüm, yazılımdaki analog potansiyometreleri kapsar. Analog potansiyometreler için bir donanım kılavuzu için bkz Analog Potansiyometreler - Donanım.

Potansiyometreler, konum hakkındaki bilgilerin analog voltaj sinyaline dönüştürülmesini sağlayan değişken dirençlerdir. Bu sinyal, potansiyometreye bağlı olan cihazı kontrol etmek için roboRIO tarafından okunabilir.

Bir potansiyometreden bilgileri doğrudan bir Analog Inputs - Yazılım ile okumak mümkün olsa da, WPILib bir AnalogPotentiometer sınıfı (Java, C++) Değerlerin kullanıcı için anlamlı birimlere yeniden ölçeklendirilmesini sağlayan bu sınıfı kullanmanız şiddetle tavsiye edilir.

Aslında AnalogPotentiometer adı yanlış bir isimdir - bu sınıf, sinyallerini basit, doğrusal ölçeklendirilmiş bir analog voltaj olarak döndüren sensörlerin büyük çoğunluğu için kullanılmalıdır.

AnalogPotentiometer class-sınıfı

Not

AnalogPotentiometer yapıcısındaki “full range” veya “scale” parametreleri, 0-5 arası değil, 0-1 aralığından gerçek aralığa kadar ölçek faktörleridir. Yani, bir voltaj ölçeği yerine yerel bir kesirli ölçeği temsil ederler.

Bir Analog Potansiyometre aşağıdaki şekilde başlatılabilir:

// Initializes an AnalogPotentiometer on analog port 0
// The full range of motion (in meaningful external units) is 0-180 (this could be degrees, for instance)
// The "starting point" of the motion, i.e. where the mechanism is located when the potentiometer reads 0v, is 30.

AnalogPotentiometer pot = new AnalogPotentiometer(0, 180, 30);

Temeldeki AnalogInput’u özelleştirme

Not

Kullanıcı: code:`AnalogInput” ‘un ölçeklendirmesini yüksek hızda örnekleme ile değiştirirse, bu,: code:`AnalogPotentiometer” e iletilen ölçek ayarına yansıtılmalıdır.

Kullanıcı, AnalogPotentiometer tarafından kullanılan temel AnalogInput öğesine özel ayarlar uygulamak isterse, içinde AnalogInput öğesinin enjekte edildiği alternatif bir constrtuctor kullanılabilir:

// Initializes an AnalogInput on port 0, and enables 2-bit averaging
AnalogInput input = new AnalogInput(0);
input.setAverageBits(2);

// Initializes an AnalogPotentiometer with the given AnalogInput
// The full range of motion (in meaningful external units) is 0-180 (this could be degrees, for instance)
// The "starting point" of the motion, i.e. where the mechanism is located when the potentiometer reads 0v, is 30.

AnalogPotentiometer pot = new AnalogPotentiometer(input, 180, 30);

AnalogPotentiometer den değerleri okuma

Ölçeklenmiş değer, basitçe: code: get yöntemi çağrılarak okunabilir:

pot.get();

Using AnalogPotentiometers in code

Analog sensörler, aynı şeyi ölçen diğer sensörlerin olabileceği şekilde kodda kullanılabilir. Analog sensör bir kol açısını ölçen bir potansiyometre ise, bir encoder’e benzer şekilde kullanılabilir. Ultrasonik bir sensör ise, diğerine benzer şekilde kullanılabilir ultrasonics.

Gerçek, fiziksel potansiyometrelerin genellikle sınırlı bir hareket aralığına sahip olduğunu akılda tutmak çok önemlidir. Korumalar, mekanizmanın maksimum atışını geçerek sensörü kırmamasını sağlamak için hem fiziksel mekanizmada hem de kodda mevcut olmalıdır.