Датчик скорости LM393 - подсчет импульсов

Я пытаюсь рассчитать скорость вращения двигателя постоянного тока.

Я использую датчик, показанный на рисунке, и диск с прорезями, прикрепленный к двигателю. Результаты, которые я получал, не имели смысла, и после нескольких тестов я понял следующее:

В большинстве случаев, когда я вручную блокировал или разблокировал датчик, было подсчитано два импульса. Это означало бы, что на каждый зубец щелевого диска подсчитывалось до четырех импульсов вместо одного.

Bellow – это тестовый код. Я считаю импульсы на обработчике прерываний и сбрасываю счетчик при расчете скорости двигателя.

Я делаю что-то не так или датчик страдает от дребезга сигналов?

int encoderCounter = 0;
int encoderDiscSlots = 21;

int encoderPin = 19;

void encoderIncrementISR()
{
  encoderCounter++;
}

double calculateMotorSpeed(int interval)
{
  Serial.print("enc ");
  Serial.println(encoderCounter);
  double rpm = (encoderCounter*1.0/encoderDiscSlots)*60000/interval;

  encoderCounter = 0;
  return rpm;
}

void setup() {
  Serial.begin(9600);

  pinMode(encoderPin, INPUT_PULLUP);

  attachInterrupt(digitalPinToInterrupt(encoderPin), encoderIncrementISR, RISING);
}

void loop() {
  // поместите сюда ваш основной код для многократного запуска:

  delay(1000);
  double rpm = calculateMotorSpeed(1000);
  Serial.print("rpm ");
  Serial.println(rpm);
}

Датчик использует микросхему LM393 от TI, спецификацию можно найти здесь

, 👍2

Обсуждение

изображение ничего не говорит нам о датчике, кроме подтверждения типа датчика .... добавьте ссылку на таблицу данных в ваш вопрос выше, @jsotola

@jsotola добавил в вопрос дополнительную информацию о датчиках., @Gnomo


1 ответ


Лучший ответ:

2

Я еще немного поискал в Интернете и нашел кого-то (на испанском языке) с описанием той же проблемы. У этого человека есть осциллограф, и он может подтвердить, что в сигнале данных есть некоторые колебания как вверх, так и вниз.

Представленное аппаратное решение заключается в размещении конденсатора емкостью 100 нФ между сигнальным контактом и землей.

Я попробовал, и это работает.

,