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

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

СуперСтар ***
62 года (43 года за рулем), Херсон
Сообщения: 4461
С нами с 05.07.2001

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

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

Распечатать   Напомнить!   Уведомить модератора   Отправить по E-mail
Hombre Rayo **
Киев
Сообщения: 24787
С нами с 08.05.2005

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

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

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


Распечатать   Напомнить!   Уведомить модератора   Отправить по E-mail
СуперСтар ***
62 года (43 года за рулем), Херсон
Сообщения: 4461
С нами с 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 пользователей и 1 пожелавших остаться неизвестными читают этот форум.

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

Распечатать всю тему

Права
      Вы не можете создавать новые темы
      Вы не можете отвечать на сообщения
      HTML разрешен
      UBBCode разрешен

Рейтинг:
Просмотров темы: 4469

Оцените эту тему

Перейти в

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

Заметили ошибку? Выделите и нажмите Ctrl+Enter