Как использовать 3 цифровых входных контакта на Arduino Uno для частотных входов и суммарного выхода?

Я работаю над тахометром Arduino, который считывает частоту вращения двигателя BLDC. Схема двигателя не использует датчики Холла, поэтому я хотел бы использовать их для датчиков оборотов. Я уже подключил плату Uno, используя один вывод в качестве входного, с включенным внутренним подключением, и она отлично работает.Причина, по которой я хочу использовать все 3 датчика Холла, заключается в увеличении количества импульсов на оборот, чтобы поддерживать показания на ЖК-дисплее на более низких скоростях. Я искал информацию о том, как считывать 3 входа и суммировать импульсы для этой цели, но не смог найти информацию.

, 👍1

Обсуждение

если датчики имеют выходы с открытым коллектором, то вы можете подключить их все вместе к одному входу, @jsotola


2 ответа


1

Предполагая, что каждый раз будет срабатывать только один датчик, затем (как предложил Джсотола) свяжите их вместе и подключите общий вывод к выводу прерывания. Arduino UNO имеет функцию прерывания на выводах 2, 3.

В качестве примера для подсчета импульсов с помощью pin2 на падающем краю (изменено с https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/):

const byte interruptPin = 2;
volatile int numPulses = 0; // измените тип переменной в соответствии с вашими потребностями

void setup() {
    pinMode(interruptPin, INPUT_PULLUP);
    attachInterrupt(digitalPinToInterrupt(interruptPin), sumPulses, FALLING);
    Serial.begin(9600);
}

void loop() {
    Serial.println(numPulses);
    delay(500);
}

 void sumPulses { // сделайте ISR как можно короче
    numPulses++;
 }
,

Выходы Холла на двигателях BLDC снижаются, поэтому два выхода в любое время находятся на высоком уровне, поэтому параллель не будет работать. Возможно, мне придется приобрести двухвальный двигатель и добавить датчик с более высоким показателем PPR на заднем валу, чтобы достичь желаемых результатов. Тем не менее, спасибо вам за ваши предложения., @Jerry Rowe


0

Альтернативным методом определения частоты является измерение периода и получение обратной зависимости. Он может быть чрезвычайно точным и отзывчивым на очень низких частотах, поэтому вам не нужно объединять несколько датчиков просто для увеличения скорости.

Обратите внимание, что вы не ограничены измерением одного периода; вы можете считать микросекунды за N периодов, чтобы увеличить разрешение на высоких частотах.

,