autoua
×
Autoua.netФорумРадіо

Энкодер KY-040, интересная проблема

СуперСтар ***
66 лет (47 лет за рулем), Херсон
Сообщения: 4485
С нами с 05.07.2001

Энкодер KY-040, интересная проблема
      18 февраля 2019 в 09:44 Гілками

Суть проблемы в следующем. Кручу энкодер - первый щелчок ничего, второй - срабатывание. Что влево, что вправо. Тоесть, иформативный каждый второй поворот энкодера. Ставил второй - без разницы. Программы разные использовал для тестирования - везде одинаковый результат. ( Подключаю к Ардуино Уно ).

Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Hombre Rayo **
Киев
Сообщения: 25170
С нами с 08.05.2005

Re: Энкодер KY-040, интересная проблема [Re: Mistreated]
      18 февраля 2019 в 17:46 Гілками

Как он включен аппаратно (вроде есть ли RC low pass для подавления дребезга или что-то еще "необычное")? Как происходит опрос входов (просто цикл и все)? Или предусмотрено прерывание на обработку энкодера (тогда надо задействовать те немногочисленные ноги, изменение уровня на которых задает внешнее прерывание)? Потому что по описанию выглядит так, что первое действие включает опрос входов и тогда второе действие обрабатывается как должно, но пока что это не более чем фантазии, а не ответ на вопрос.

Как мне кажется, тема скорее для "Информатики и бытовой электроники", а не для "Радио" - там больше общих электронщиков и программистов, а здесь больше связисты.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
СуперСтар ***
66 лет (47 лет за рулем), Херсон
Сообщения: 4485
С нами с 05.07.2001

Re: Энкодер KY-040, интересная проблема [Re: El Erizo]
      18 февраля 2019 в 23:18 Гілками

UT7UX 18.02.2019 17:46 пишет:

но пока что это не более чем фантазии, а не ответ на вопрос.

Как мне кажется, тема скорее для "Информатики и бытовой электроники", а не для "Радио" - там больше общих электронщиков и программистов, а здесь больше связисты.



Изначально проверялось на схеме синтезатора на Si5351. После обнаружения этого явления работа энкодера проверялась на простой программе проверки. Результат одинаковый.
/*
Rotary Encoder - Interrupt Example

The circuit:
* encoder pin A to Arduino pin 2
* encoder pin B to Arduino pin 3
* encoder ground pin to ground (GND)
*/

#include "Rotary.h"

Rotary r = Rotary(2, 3);

void setup() {
Serial.begin(57600);
r.begin();
PCICR |= (1 << PCIE2);
PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);
sei();
}

void loop() {

}

ISR(PCINT2_vect) {
unsigned char result = r.process();
if (result == DIR_NONE) {
// do nothing
}
else if (result == DIR_CW) {
Serial.println("ClockWise");
}
else if (result == DIR_CCW) {
Serial.println("CounterClockWise");
}
}

Если изменить выводы подключения ( поменять местами ) то меняется направления отсчета, а черезшаговость остается. Оно вроде и не сильно напрягает, но непонятно с чего бы так ?
Ладно, буду копать дальше..


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Autoua.netФорумРадіо
Додаткова інформація
0 користувачів і 32 що побажали залишитися невідомими читають цей форум.

Модератор:  plexmen, moderator 

Роздрукувати всю тему

Права
      Ви не можете створювати нові теми
      Ви не можете відповідати на повідомлення
      HTML дозволений
      UBBCode дозволений

Рейтинг:
Переглядів теми: 27321

Оціните цю тему

Перейти в

Правила конференції | Календар | FAQ | Карта розділу | Мобільна версія