Heim > Web-Frontend > HTML-Tutorial > Verschiedene Möglichkeiten, die absolute Positionierung von Encodern zu verstehen

Verschiedene Möglichkeiten, die absolute Positionierung von Encodern zu verstehen

王林
Freigeben: 2024-01-18 09:50:07
Original
566 Leute haben es durchsucht

Verschiedene Möglichkeiten, die absolute Positionierung von Encodern zu verstehen

Ein Encoder ist ein häufig verwendeter Positionssensor, mit dem die Verschiebung von Rotation und linearer Bewegung gemessen und in ein digitales Signal umgewandelt werden kann. Die absolute Positionierungsfunktion des Encoders ermöglicht es uns, die Position des Objekts genau zu kennen, sodass er in vielen Bereichen wie Robotern, Automobilen, medizinischen Instrumenten usw. weit verbreitet ist.

Es gibt viele Möglichkeiten, die absolute Positionierung von Encodern zu verstehen. Die gebräuchlichsten sind die folgenden:

  1. Binäre Kodierungsmethode

Die binäre Kodierungsmethode ist eine Möglichkeit, physische Bewegung in digitale Signale umzuwandeln. Der Encoder erkennt über einen Positionssensor, ob sich das Objekt bewegt, und ändert den von ihm ausgegebenen digitalen Code basierend auf der Position der Objektbewegung. Jeder digitale Code entspricht einem eindeutigen physischen Standort, sodass wir den Standort des Objekts bestimmen können, indem wir die Ausgabe des Encoders lesen.

Hier ist ein Beispielcode für einen mit Arduino implementierten Binär-Encoder:

const int encoderPinA = 2;
const int encoderPinB = 3;
volatile int encoderPos = 0;
volatile bool aSet = false;
volatile bool bSet = false;

void setup() {
  pinMode(encoderPinA, INPUT);
  pinMode(encoderPinB, INPUT);
  attachInterrupt(digitalPinToInterrupt(encoderPinA), updateEncoderA, CHANGE);
  attachInterrupt(digitalPinToInterrupt(encoderPinB), updateEncoderB, CHANGE);
}

void loop() {
  // 读取编码器当前位置
  int newPos = encoderPos;
  Serial.println(newPos);
}

void updateEncoderA() {
  aSet = digitalRead(encoderPinA);
  if (aSet && !bSet) {
    encoderPos++;
  } else if (!aSet && bSet) {
    encoderPos--;
  }
  bSet = digitalRead(encoderPinB);
}

void updateEncoderB() {
  bSet = digitalRead(encoderPinB);
  if (bSet && !aSet) {
    encoderPos--;
  } else if (!bSet && aSet) {
    encoderPos++;
  }
  aSet = digitalRead(encoderPinA);
}
Nach dem Login kopieren
  1. Gray-Code-Kodierungsmethode

Gray-Code ist eine Variante der Binärkodierung. Ihr Vorteil besteht darin, dass nur eine Positionsänderung zu einem Kodierungsbit führt Änderungen. Die Ausgabe eines Gray-Code-Encoders ähnelt der eines Binär-Encoders, die Kodierung muss jedoch in eine binäre Darstellung konvertiert werden, bevor sie dekodiert werden kann. Dies kann durch Nachschlagen einer Konvertierungstabelle oder durch die Verwendung eines bestimmten Decoder-Chips zur automatischen Konvertierung erfolgen. 🔜 Pulssignal. Jede Impulsbreite entspricht einer Position, sodass wir die Position durch Ablesen der Impulsbreite bestimmen können.

Das Folgende ist ein Beispielcode für einen PWM-Encoder, der mit dem PWM-Modul von ESP32 implementiert wurde:

const int encoderPinClock = 4;
const int encoderPinData = 5;
const int encoderPinLatch = 6;

unsigned int encoderValue = 0;

void setup() {
  pinMode(encoderPinClock, OUTPUT);
  pinMode(encoderPinData, OUTPUT);
  pinMode(encoderPinLatch, OUTPUT);
}

void loop() {
  // 读取编码器当前位置
  unsigned int newPos = 0;
  for (int i = 0; i < 16; i++) {
    digitalWrite(encoderPinLatch, LOW);
    shiftOut(encoderPinData, encoderPinClock, MSBFIRST, 1 << i);
    digitalWrite(encoderPinLatch, HIGH);
    delayMicroseconds(10);
    newPos |= digitalRead(encoderPinData) << i;
  }
  encoderValue = newPos;
  Serial.println(encoderValue);
}
Nach dem Login kopieren
    Zusammenfassung
  1. Das Obige sind Codebeispiele für drei gängige absolute Encoder-Positionierungsmethoden. Wenn wir verstehen, wie ein Encoder funktioniert, können wir besser verstehen, wie wir ihn einsetzen, um eine präzise Positionierung zu erreichen und so die Produktionseffizienz und -qualität in Bereichen wie Robotik, Automobilen und medizinischen Instrumenten zu verbessern.

Das obige ist der detaillierte Inhalt vonVerschiedene Möglichkeiten, die absolute Positionierung von Encodern zu verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage